struct mm_struct { struct { struct vm_area_struct * mmap; /* 0 8 */ struct rb_root mm_rb; /* 8 8 */ u64 vmacache_seqnum; /* 16 8 */ long unsigned int (*get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); /* 24 8 */ long unsigned int mmap_base; /* 32 8 */ long unsigned int mmap_legacy_base; /* 40 8 */ long unsigned int mmap_compat_base; /* 48 8 */ long unsigned int mmap_compat_legacy_base; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ long unsigned int task_size; /* 64 8 */ long unsigned int highest_vm_end; /* 72 8 */ pgd_t * pgd; /* 80 8 */ atomic_t membarrier_state; /* 88 4 */ atomic_t mm_users; /* 92 4 */ atomic_t mm_count; /* 96 4 */ atomic_t has_pinned; /* 100 4 */ seqcount_t write_protect_seq; /* 104 4 */ /* XXX 4 bytes hole, try to pack */ atomic_long_t pgtables_bytes; /* 112 8 */ int map_count; /* 120 4 */ spinlock_t page_table_lock; /* 124 4 */ /* --- cacheline 2 boundary (128 bytes) --- */ struct rw_semaphore mmap_lock; /* 128 40 */ struct list_head mmlist; /* 168 16 */ long unsigned int hiwater_rss; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ long unsigned int hiwater_vm; /* 192 8 */ long unsigned int total_vm; /* 200 8 */ long unsigned int locked_vm; /* 208 8 */ atomic64_t pinned_vm; /* 216 8 */ long unsigned int data_vm; /* 224 8 */ long unsigned int exec_vm; /* 232 8 */ long unsigned int stack_vm; /* 240 8 */ long unsigned int def_flags; /* 248 8 */ /* --- cacheline 4 boundary (256 bytes) --- */ spinlock_t arg_lock; /* 256 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int start_code; /* 264 8 */ long unsigned int end_code; /* 272 8 */ long unsigned int start_data; /* 280 8 */ long unsigned int end_data; /* 288 8 */ long unsigned int start_brk; /* 296 8 */ long unsigned int brk; /* 304 8 */ long unsigned int start_stack; /* 312 8 */ /* --- cacheline 5 boundary (320 bytes) --- */ long unsigned int arg_start; /* 320 8 */ long unsigned int arg_end; /* 328 8 */ long unsigned int env_start; /* 336 8 */ long unsigned int env_end; /* 344 8 */ long unsigned int saved_auxv[46]; /* 352 368 */ /* --- cacheline 11 boundary (704 bytes) was 16 bytes ago --- */ struct mm_rss_stat rss_stat; /* 720 32 */ struct linux_binfmt * binfmt; /* 752 8 */ mm_context_t context; /* 760 128 */ /* --- cacheline 13 boundary (832 bytes) was 56 bytes ago --- */ long unsigned int flags; /* 888 8 */ /* --- cacheline 14 boundary (896 bytes) --- */ struct core_state * core_state; /* 896 8 */ spinlock_t ioctx_lock; /* 904 4 */ /* XXX 4 bytes hole, try to pack */ struct kioctx_table * ioctx_table; /* 912 8 */ struct task_struct * owner; /* 920 8 */ struct user_namespace * user_ns; /* 928 8 */ struct file * exe_file; /* 936 8 */ struct mmu_notifier_subscriptions * notifier_subscriptions; /* 944 8 */ long unsigned int numa_next_scan; /* 952 8 */ /* --- cacheline 15 boundary (960 bytes) --- */ long unsigned int numa_scan_offset; /* 960 8 */ int numa_scan_seq; /* 968 4 */ atomic_t tlb_flush_pending; /* 972 4 */ bool tlb_flush_batched; /* 976 1 */ /* XXX 7 bytes hole, try to pack */ struct uprobes_state uprobes_state; /* 984 8 */ atomic_long_t hugetlb_usage; /* 992 8 */ struct work_struct async_put_work; /* 1000 32 */ /* --- cacheline 16 boundary (1024 bytes) was 8 bytes ago --- */ u32 pasid; /* 1032 4 */ }; /* 0 1040 */