struct thread { struct mtx * td_lock; /* 0 8 */ struct proc * td_proc; /* 8 8 */ struct td_plist; /* 16 16 */ struct td_runq; /* 32 16 */ struct td_slpq; /* 48 16 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct td_lockq; /* 64 16 */ struct td_hash; /* 80 16 */ struct cpuset * td_cpuset; /* 96 8 */ struct seltd * td_sel; /* 104 8 */ struct sleepqueue * td_sleepqueue; /* 112 8 */ struct turnstile * td_turnstile; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ struct rl_q_entry * td_rlqe; /* 128 8 */ struct umtx_q * td_umtxq; /* 136 8 */ struct vm_domain_policy td_vm_dom_policy; /* 144 12 */ int td_tid; /* 156 4 */ struct sigqueue td_sigqueue; /* 160 80 */ /* --- cacheline 3 boundary (192 bytes) was 48 bytes ago --- */ unsigned char td_lend_user_pri; /* 240 1 */ /* XXX 3 bytes hole, try to pack */ int td_flags; /* 244 4 */ int td_inhibitors; /* 248 4 */ int td_pflags; /* 252 4 */ /* --- cacheline 4 boundary (256 bytes) --- */ int td_dupfd; /* 256 4 */ int td_sqqueue; /* 260 4 */ * td_wchan; /* 264 8 */ !!! XXX ignored pointer qualifier TAG 0x26 char * td_wmesg; /* 272 8 */ unsigned char td_owepreempt; /* 280 1 */ unsigned char td_tsqueue; /* 281 1 */ short td_locks; /* 282 2 */ short td_rw_rlocks; /* 284 2 */ short td_lk_slocks; /* 286 2 */ short td_stopsched; /* 288 2 */ /* XXX 6 bytes hole, try to pack */ struct turnstile * td_blocked; /* 296 8 */ !!! XXX ignored pointer qualifier TAG 0x26 char * td_lockname; /* 304 8 */ struct td_contested; /* 312 8 */ /* --- cacheline 5 boundary (320 bytes) --- */ struct lock_list_entry * td_sleeplocks; /* 320 8 */ int td_intr_nesting_level; /* 328 4 */ int td_pinned; /* 332 4 */ struct ucred * td_ucred; /* 336 8 */ struct plimit * td_limit; /* 344 8 */ int td_slptick; /* 352 4 */ int td_blktick; /* 356 4 */ int td_swvoltick; /* 360 4 */ int td_swinvoltick; /* 364 4 */ unsigned int td_cow; /* 368 4 */ /* XXX 4 bytes hole, try to pack */ struct rusage td_ru; /* 376 144 */ /* --- cacheline 8 boundary (512 bytes) was 8 bytes ago --- */ struct rusage_ext td_rux; /* 520 56 */ /* --- cacheline 9 boundary (576 bytes) --- */ long unsigned int td_incruntime; /* 576 8 */ long unsigned int td_runtime; /* 584 8 */ unsigned int td_pticks; /* 592 4 */ unsigned int td_sticks; /* 596 4 */ unsigned int td_iticks; /* 600 4 */ unsigned int td_uticks; /* 604 4 */ int td_intrval; /* 608 4 */ struct __sigset td_oldsigmask; /* 612 16 */ unsigned int td_generation; /* 628 4 */ struct sigaltstack td_sigstk; /* 632 24 */ /* --- cacheline 10 boundary (640 bytes) was 16 bytes ago --- */ int td_xsig; /* 656 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int td_profil_addr; /* 664 8 */ unsigned int td_profil_ticks; /* 672 4 */ td_name; /* 676 20 */ struct file * td_fpop; /* 696 8 */ /* --- cacheline 11 boundary (704 bytes) --- */ int td_dbgflags; /* 704 4 */ /* XXX 4 bytes hole, try to pack */ struct __siginfo td_si; /* 712 80 */ /* --- cacheline 12 boundary (768 bytes) was 24 bytes ago --- */ int td_ng_outbound; /* 792 4 */ /* XXX 4 bytes hole, try to pack */ struct osd td_osd; /* 800 32 */ /* --- cacheline 13 boundary (832 bytes) --- */ struct vm_map_entry * td_map_def_user; /* 832 8 */ int td_dbg_forked; /* 840 4 */ unsigned int td_vp_reserv; /* 844 4 */ int td_no_sleeping; /* 848 4 */ int td_dom_rr_idx; /* 852 4 */ * td_su; /* 856 8 */ long int td_sleeptimo; /* 864 8 */ int td_rtcgen; /* 872 4 */ struct __sigset td_sigmask; /* 876 16 */ unsigned char td_rqindex; /* 892 1 */ unsigned char td_base_pri; /* 893 1 */ unsigned char td_priority; /* 894 1 */ unsigned char td_pri_class; /* 895 1 */ /* --- cacheline 14 boundary (896 bytes) --- */ unsigned char td_user_pri; /* 896 1 */ unsigned char td_base_user_pri; /* 897 1 */ /* XXX 6 bytes hole, try to pack */ long unsigned int td_rb_list; /* 904 8 */ long unsigned int td_rbp_list; /* 912 8 */ long unsigned int td_rb_inact; /* 920 8 */ struct syscall_args td_sa; /* 928 88 */ /* --- cacheline 15 boundary (960 bytes) was 56 bytes ago --- */ struct pcb * td_pcb; /* 1016 8 */ /* --- cacheline 16 boundary (1024 bytes) --- */ enum td_state; /* 1024 4 */ /* XXX 4 bytes hole, try to pack */ td_uretoff; /* 1032 16 */ unsigned int td_cowgen; /* 1048 4 */ /* XXX 4 bytes hole, try to pack */ struct callout td_slpcallout; /* 1056 64 */ /* --- cacheline 17 boundary (1088 bytes) was 32 bytes ago --- */ struct trapframe * td_frame; /* 1120 8 */ struct vm_object * td_kstack_obj; /* 1128 8 */ long unsigned int td_kstack; /* 1136 8 */ int td_kstack_pages; /* 1144 4 */ unsigned int td_critnest; /* 1148 4 */ /* --- cacheline 18 boundary (1152 bytes) --- */ struct mdthread td_md; /* 1152 48 */ struct kaudit_record * td_ar; /* 1200 8 */ td_lprof; /* 1208 16 */ /* --- cacheline 19 boundary (1216 bytes) was 8 bytes ago --- */ struct kdtrace_thread * td_dtrace; /* 1224 8 */ int td_errno; /* 1232 4 */ /* XXX 4 bytes hole, try to pack */ struct vnet * td_vnet; /* 1240 8 */ !!! XXX ignored pointer qualifier TAG 0x26 char * td_vnet_lpush; /* 1248 8 */ struct trapframe * td_intr_frame; /* 1256 8 */ struct proc * td_rfppwait_p; /* 1264 8 */ struct vm_page ** td_ma; /* 1272 8 */ /* --- cacheline 20 boundary (1280 bytes) --- */ int td_ma_cnt; /* 1280 4 */ /* XXX 4 bytes hole, try to pack */ * td_emuldata; /* 1288 8 */ int td_lastcpu; /* 1296 4 */ int td_oncpu; /* 1300 4 */ * td_lkpi_task; /* 1304 8 */ /* size: 1312, cachelines: 21, members: 108 */ /* sum members: 1265, holes: 11, sum holes: 47 */ /* last cacheline: 32 bytes */ };