die__process_inline_expansion: tag not supported (INVALID)! struct list_head { struct list_head * next; /* 0 8 */ struct list_head * prev; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct hlist_head { struct hlist_node * first; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct hlist_node { struct hlist_node * next; /* 0 8 */ struct hlist_node * * pprev; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct callback_head { struct callback_head * next; /* 0 8 */ void (*func)(struct callback_head *); /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_name { const unsigned char * name; /* 0 8 */ int len; /* 8 4 */ int type; /* 12 4 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; struct user_pt_regs { __u64 regs[31]; /* 0 248 */ /* --- cacheline 3 boundary (192 bytes) was 56 bytes ago --- */ __u64 sp; /* 248 8 */ /* --- cacheline 4 boundary (256 bytes) --- */ __u64 pc; /* 256 8 */ __u64 pstate; /* 264 8 */ /* size: 272, cachelines: 5, members: 4 */ /* last cacheline: 16 bytes */ }; struct user_fpsimd_state { __int128 unsigned vregs[32]; /* 0 512 */ /* --- cacheline 8 boundary (512 bytes) --- */ __u32 fpsr; /* 512 4 */ __u32 fpcr; /* 516 4 */ /* size: 528, cachelines: 9, members: 3 */ /* padding: 8 */ /* last cacheline: 16 bytes */ }; struct pt_regs { union { struct user_pt_regs user_regs; /* 272 */ struct { u64 regs[31]; /* 0 248 */ /* --- cacheline 3 boundary (192 bytes) was 56 bytes ago --- */ u64 sp; /* 248 8 */ /* --- cacheline 4 boundary (256 bytes) --- */ u64 pc; /* 256 8 */ u64 pstate; /* 264 8 */ }; /* 272 */ }; /* 0 272 */ /* --- cacheline 4 boundary (256 bytes) was 16 bytes ago --- */ u64 orig_x0; /* 272 8 */ u64 syscallno; /* 280 8 */ /* size: 288, cachelines: 5, members: 3 */ /* last cacheline: 32 bytes */ }; struct kernel_symbol { long unsigned int value; /* 0 8 */ const char * name; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct bug_entry { int bug_addr_disp; /* 0 4 */ int file_disp; /* 4 4 */ short unsigned int line; /* 8 2 */ short unsigned int flags; /* 10 2 */ /* size: 12, cachelines: 1, members: 4 */ /* last cacheline: 12 bytes */ }; struct timespec { __kernel_time_t tv_sec; /* 0 8 */ long int tv_nsec; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct pollfd { int fd; /* 0 4 */ short int events; /* 4 2 */ short int revents; /* 6 2 */ /* size: 8, cachelines: 1, members: 3 */ /* last cacheline: 8 bytes */ }; struct restart_block { long int (*fn)(struct restart_block *); /* 0 8 */ union { struct { u32 * uaddr; /* 8 8 */ u32 val; /* 16 4 */ u32 flags; /* 20 4 */ u32 bitset; /* 24 4 */ u64 time; /* 32 8 */ u32 * uaddr2; /* 40 8 */ } futex; /* 40 */ struct { clockid_t clockid; /* 8 4 */ struct timespec * rmtp; /* 16 8 */ u64 expires; /* 24 8 */ } nanosleep; /* 24 */ struct { struct pollfd * ufds; /* 8 8 */ int nfds; /* 16 4 */ int has_timeout; /* 20 4 */ long unsigned int tv_sec; /* 24 8 */ long unsigned int tv_nsec; /* 32 8 */ } poll; /* 32 */ }; /* 8 40 */ /* size: 48, cachelines: 1, members: 2 */ /* last cacheline: 48 bytes */ }; struct task_struct { volatile long int state; /* 0 8 */ void * stack; /* 8 8 */ atomic_t usage; /* 16 4 */ unsigned int flags; /* 20 4 */ unsigned int ptrace; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ struct llist_node wake_entry; /* 32 8 */ int on_cpu; /* 40 4 */ unsigned int wakee_flips; /* 44 4 */ long unsigned int wakee_flip_decay_ts; /* 48 8 */ struct task_struct * last_wakee; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int wake_cpu; /* 64 4 */ int on_rq; /* 68 4 */ int prio; /* 72 4 */ int static_prio; /* 76 4 */ int normal_prio; /* 80 4 */ unsigned int rt_priority; /* 84 4 */ const struct sched_class * sched_class; /* 88 8 */ /* XXX 32 bytes hole, try to pack */ /* --- cacheline 2 boundary (128 bytes) --- */ struct sched_entity se; /* 128 384 */ /* --- cacheline 8 boundary (512 bytes) --- */ struct sched_rt_entity rt; /* 512 72 */ /* --- cacheline 9 boundary (576 bytes) was 8 bytes ago --- */ struct task_group * sched_task_group; /* 584 8 */ struct sched_dl_entity dl; /* 592 184 */ /* --- cacheline 12 boundary (768 bytes) was 8 bytes ago --- */ struct hlist_head preempt_notifiers; /* 776 8 */ unsigned int btrace_seq; /* 784 4 */ unsigned int policy; /* 788 4 */ int nr_cpus_allowed; /* 792 4 */ /* XXX 4 bytes hole, try to pack */ cpumask_t cpus_allowed; /* 800 512 */ /* --- cacheline 20 boundary (1280 bytes) was 32 bytes ago --- */ struct sched_info sched_info; /* 1312 32 */ /* --- cacheline 21 boundary (1344 bytes) --- */ struct list_head tasks; /* 1344 16 */ struct plist_node pushable_tasks; /* 1360 40 */ struct rb_node pushable_dl_tasks; /* 1400 24 */ /* --- cacheline 22 boundary (1408 bytes) was 16 bytes ago --- */ struct mm_struct * mm; /* 1424 8 */ struct mm_struct * active_mm; /* 1432 8 */ u32 vmacache_seqnum; /* 1440 4 */ /* XXX 4 bytes hole, try to pack */ struct vm_area_struct * vmacache[4]; /* 1448 32 */ /* --- cacheline 23 boundary (1472 bytes) was 8 bytes ago --- */ struct task_rss_stat rss_stat; /* 1480 20 */ int exit_state; /* 1500 4 */ int exit_code; /* 1504 4 */ int exit_signal; /* 1508 4 */ int pdeath_signal; /* 1512 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int jobctl; /* 1520 8 */ unsigned int personality; /* 1528 4 */ unsigned int sched_reset_on_fork:1; /* 1532:31 4 */ unsigned int sched_contributes_to_load:1; /* 1532:30 4 */ unsigned int sched_migrated:1; /* 1532:29 4 */ /* XXX 29 bits hole, try to pack */ /* --- cacheline 24 boundary (1536 bytes) --- */ unsigned int in_execve:1; /* 1536:31 4 */ unsigned int in_iowait:1; /* 1536:30 4 */ unsigned int memcg_may_oom:1; /* 1536:29 4 */ unsigned int memcg_kmem_skip_account:1; /* 1536:28 4 */ /* XXX 28 bits hole, try to pack */ /* XXX 4 bytes hole, try to pack */ long unsigned int atomic_flags; /* 1544 8 */ struct restart_block restart_block; /* 1552 48 */ /* --- cacheline 25 boundary (1600 bytes) --- */ pid_t pid; /* 1600 4 */ pid_t tgid; /* 1604 4 */ struct task_struct * real_parent; /* 1608 8 */ struct task_struct * parent; /* 1616 8 */ struct list_head children; /* 1624 16 */ struct list_head sibling; /* 1640 16 */ struct task_struct * group_leader; /* 1656 8 */ /* --- cacheline 26 boundary (1664 bytes) --- */ struct list_head ptraced; /* 1664 16 */ struct list_head ptrace_entry; /* 1680 16 */ struct pid_link pids[3]; /* 1696 72 */ /* --- cacheline 27 boundary (1728 bytes) was 40 bytes ago --- */ struct list_head thread_group; /* 1768 16 */ struct list_head thread_node; /* 1784 16 */ /* --- cacheline 28 boundary (1792 bytes) was 8 bytes ago --- */ struct completion * vfork_done; /* 1800 8 */ int * set_child_tid; /* 1808 8 */ int * clear_child_tid; /* 1816 8 */ cputime_t utime; /* 1824 8 */ cputime_t stime; /* 1832 8 */ cputime_t utimescaled; /* 1840 8 */ cputime_t stimescaled; /* 1848 8 */ /* --- cacheline 29 boundary (1856 bytes) --- */ cputime_t gtime; /* 1856 8 */ struct prev_cputime prev_cputime; /* 1864 24 */ long unsigned int nvcsw; /* 1888 8 */ long unsigned int nivcsw; /* 1896 8 */ u64 start_time; /* 1904 8 */ u64 real_start_time; /* 1912 8 */ /* --- cacheline 30 boundary (1920 bytes) --- */ long unsigned int min_flt; /* 1920 8 */ long unsigned int maj_flt; /* 1928 8 */ struct task_cputime cputime_expires; /* 1936 24 */ struct list_head cpu_timers[3]; /* 1960 48 */ /* --- cacheline 31 boundary (1984 bytes) was 24 bytes ago --- */ const struct cred * real_cred; /* 2008 8 */ const struct cred * cred; /* 2016 8 */ char comm[16]; /* 2024 16 */ struct nameidata * nameidata; /* 2040 8 */ /* --- cacheline 32 boundary (2048 bytes) --- */ struct sysv_sem sysvsem; /* 2048 8 */ struct sysv_shm sysvshm; /* 2056 16 */ long unsigned int last_switch_count; /* 2072 8 */ struct fs_struct * fs; /* 2080 8 */ struct files_struct * files; /* 2088 8 */ struct nsproxy * nsproxy; /* 2096 8 */ struct signal_struct * signal; /* 2104 8 */ /* --- cacheline 33 boundary (2112 bytes) --- */ struct sighand_struct * sighand; /* 2112 8 */ sigset_t blocked; /* 2120 8 */ sigset_t real_blocked; /* 2128 8 */ sigset_t saved_sigmask; /* 2136 8 */ struct sigpending pending; /* 2144 24 */ long unsigned int sas_ss_sp; /* 2168 8 */ /* --- cacheline 34 boundary (2176 bytes) --- */ size_t sas_ss_size; /* 2176 8 */ struct callback_head * task_works; /* 2184 8 */ struct audit_context * audit_context; /* 2192 8 */ kuid_t loginuid; /* 2200 4 */ unsigned int sessionid; /* 2204 4 */ struct seccomp seccomp; /* 2208 16 */ u32 parent_exec_id; /* 2224 4 */ u32 self_exec_id; /* 2228 4 */ spinlock_t alloc_lock; /* 2232 4 */ raw_spinlock_t pi_lock; /* 2236 4 */ /* --- cacheline 35 boundary (2240 bytes) --- */ struct wake_q_node wake_q; /* 2240 8 */ struct rb_root pi_waiters; /* 2248 8 */ struct rb_node * pi_waiters_leftmost; /* 2256 8 */ struct rt_mutex_waiter * pi_blocked_on; /* 2264 8 */ void * journal_info; /* 2272 8 */ struct bio_list * bio_list; /* 2280 8 */ struct blk_plug * plug; /* 2288 8 */ struct reclaim_state * reclaim_state; /* 2296 8 */ /* --- cacheline 36 boundary (2304 bytes) --- */ struct backing_dev_info * backing_dev_info; /* 2304 8 */ struct io_context * io_context; /* 2312 8 */ long unsigned int ptrace_message; /* 2320 8 */ siginfo_t * last_siginfo; /* 2328 8 */ struct task_io_accounting ioac; /* 2336 56 */ /* --- cacheline 37 boundary (2368 bytes) was 24 bytes ago --- */ u64 acct_rss_mem1; /* 2392 8 */ u64 acct_vm_mem1; /* 2400 8 */ cputime_t acct_timexpd; /* 2408 8 */ nodemask_t mems_allowed; /* 2416 8 */ seqcount_t mems_allowed_seq; /* 2424 4 */ int cpuset_mem_spread_rotor; /* 2428 4 */ /* --- cacheline 38 boundary (2432 bytes) --- */ int cpuset_slab_spread_rotor; /* 2432 4 */ /* XXX 4 bytes hole, try to pack */ struct css_set * cgroups; /* 2440 8 */ struct list_head cg_list; /* 2448 16 */ struct robust_list_head * robust_list; /* 2464 8 */ struct list_head pi_state_list; /* 2472 16 */ struct futex_pi_state * pi_state_cache; /* 2488 8 */ /* --- cacheline 39 boundary (2496 bytes) --- */ struct perf_event_context * perf_event_ctxp[2]; /* 2496 16 */ struct mutex perf_event_mutex; /* 2512 40 */ struct list_head perf_event_list; /* 2552 16 */ /* --- cacheline 40 boundary (2560 bytes) was 8 bytes ago --- */ struct callback_head rcu; /* 2568 16 */ struct pipe_inode_info * splice_pipe; /* 2584 8 */ struct page_frag task_frag; /* 2592 16 */ struct task_delay_info * delays; /* 2608 8 */ int nr_dirtied; /* 2616 4 */ int nr_dirtied_pause; /* 2620 4 */ /* --- cacheline 41 boundary (2624 bytes) --- */ long unsigned int dirty_paused_when; /* 2624 8 */ long unsigned int timer_slack_ns; /* 2632 8 */ long unsigned int default_timer_slack_ns; /* 2640 8 */ int curr_ret_stack; /* 2648 4 */ /* XXX 4 bytes hole, try to pack */ struct ftrace_ret_stack * ret_stack; /* 2656 8 */ long long unsigned int ftrace_timestamp; /* 2664 8 */ atomic_t trace_overrun; /* 2672 4 */ atomic_t tracing_graph_pause; /* 2676 4 */ long unsigned int trace; /* 2680 8 */ /* --- cacheline 42 boundary (2688 bytes) --- */ long unsigned int trace_recursion; /* 2688 8 */ struct mem_cgroup * memcg_in_oom; /* 2696 8 */ gfp_t memcg_oom_gfp_mask; /* 2704 4 */ int memcg_oom_order; /* 2708 4 */ unsigned int memcg_nr_pages_over_high; /* 2712 4 */ /* XXX 4 bytes hole, try to pack */ struct uprobe_task * utask; /* 2720 8 */ int pagefault_disabled; /* 2728 4 */ /* XXX 4 bytes hole, try to pack */ struct thread_struct thread; /* 2736 944 */ /* --- cacheline 57 boundary (3648 bytes) was 32 bytes ago --- */ /* size: 3712, cachelines: 58, members: 157 */ /* sum members: 3612, holes: 10, sum holes: 68 */ /* bit holes: 2, sum bit holes: 57 bits */ /* padding: 32 */ }; struct lock_class_key { /* size: 0, cachelines: 0, members: 0 */ }; struct raw_spinlock { arch_spinlock_t raw_lock; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct spinlock { union { struct raw_spinlock rlock; /* 4 */ }; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct fpsimd_state { union { struct user_fpsimd_state user_fpsimd; /* 528 */ struct { __int128 unsigned vregs[32]; /* 0 512 */ /* --- cacheline 8 boundary (512 bytes) --- */ u32 fpsr; /* 512 4 */ u32 fpcr; /* 516 4 */ }; /* 528 */ }; /* 0 528 */ /* --- cacheline 8 boundary (512 bytes) was 16 bytes ago --- */ unsigned int cpu; /* 528 4 */ /* size: 544, cachelines: 9, members: 2 */ /* padding: 12 */ /* last cacheline: 32 bytes */ }; struct arch_hw_breakpoint_ctrl { u32 __reserved:19; /* 0:13 4 */ u32 len:8; /* 0: 5 4 */ u32 type:2; /* 0: 3 4 */ u32 privilege:2; /* 0: 1 4 */ u32 enabled:1; /* 0: 0 4 */ /* size: 4, cachelines: 1, members: 5 */ /* last cacheline: 4 bytes */ }; struct arch_hw_breakpoint { u64 address; /* 0 8 */ u64 trigger; /* 8 8 */ struct arch_hw_breakpoint_ctrl ctrl; /* 16 4 */ /* size: 24, cachelines: 1, members: 3 */ /* padding: 4 */ /* last cacheline: 24 bytes */ }; struct debug_info { int suspended_step; /* 0 4 */ int bps_disabled; /* 4 4 */ int wps_disabled; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct perf_event * hbp_break[16]; /* 16 128 */ /* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */ struct perf_event * hbp_watch[16]; /* 144 128 */ /* --- cacheline 4 boundary (256 bytes) was 16 bytes ago --- */ /* size: 272, cachelines: 5, members: 5 */ /* sum members: 268, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct perf_event { struct list_head event_entry; /* 0 16 */ struct list_head group_entry; /* 16 16 */ struct list_head sibling_list; /* 32 16 */ struct list_head migrate_entry; /* 48 16 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct hlist_node hlist_entry; /* 64 16 */ struct list_head active_entry; /* 80 16 */ int nr_siblings; /* 96 4 */ int group_flags; /* 100 4 */ struct perf_event * group_leader; /* 104 8 */ struct pmu * pmu; /* 112 8 */ enum perf_event_active_state state; /* 120 4 */ unsigned int attach_state; /* 124 4 */ /* --- cacheline 2 boundary (128 bytes) --- */ local64_t count; /* 128 8 */ atomic64_t child_count; /* 136 8 */ u64 total_time_enabled; /* 144 8 */ u64 total_time_running; /* 152 8 */ u64 tstamp_enabled; /* 160 8 */ u64 tstamp_running; /* 168 8 */ u64 tstamp_stopped; /* 176 8 */ u64 shadow_ctx_time; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ struct perf_event_attr attr; /* 192 112 */ /* --- cacheline 4 boundary (256 bytes) was 48 bytes ago --- */ u16 header_size; /* 304 2 */ u16 id_header_size; /* 306 2 */ u16 read_size; /* 308 2 */ /* XXX 2 bytes hole, try to pack */ struct hw_perf_event hw; /* 312 176 */ /* --- cacheline 7 boundary (448 bytes) was 40 bytes ago --- */ struct perf_event_context * ctx; /* 488 8 */ atomic_long_t refcount; /* 496 8 */ atomic64_t child_total_time_enabled; /* 504 8 */ /* --- cacheline 8 boundary (512 bytes) --- */ atomic64_t child_total_time_running; /* 512 8 */ struct mutex child_mutex; /* 520 40 */ struct list_head child_list; /* 560 16 */ /* --- cacheline 9 boundary (576 bytes) --- */ struct perf_event * parent; /* 576 8 */ int oncpu; /* 584 4 */ int cpu; /* 588 4 */ struct list_head owner_entry; /* 592 16 */ struct task_struct * owner; /* 608 8 */ struct mutex mmap_mutex; /* 616 40 */ /* --- cacheline 10 boundary (640 bytes) was 16 bytes ago --- */ atomic_t mmap_count; /* 656 4 */ /* XXX 4 bytes hole, try to pack */ struct ring_buffer * rb; /* 664 8 */ struct list_head rb_entry; /* 672 16 */ long unsigned int rcu_batches; /* 688 8 */ int rcu_pending; /* 696 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 11 boundary (704 bytes) --- */ wait_queue_head_t waitq; /* 704 24 */ struct fasync_struct * fasync; /* 728 8 */ int pending_wakeup; /* 736 4 */ int pending_kill; /* 740 4 */ int pending_disable; /* 744 4 */ /* XXX 4 bytes hole, try to pack */ struct irq_work pending; /* 752 24 */ /* --- cacheline 12 boundary (768 bytes) was 8 bytes ago --- */ atomic_t event_limit; /* 776 4 */ /* XXX 4 bytes hole, try to pack */ void (*destroy)(struct perf_event *); /* 784 8 */ struct callback_head callback_head; /* 792 16 */ struct pid_namespace * ns; /* 808 8 */ u64 id; /* 816 8 */ u64 (*clock)(void); /* 824 8 */ /* --- cacheline 13 boundary (832 bytes) --- */ perf_overflow_handler_t overflow_handler; /* 832 8 */ void * overflow_handler_context; /* 840 8 */ struct trace_event_call * tp_event; /* 848 8 */ struct event_filter * filter; /* 856 8 */ struct ftrace_ops ftrace_ops; /* 864 184 */ /* --- cacheline 16 boundary (1024 bytes) was 24 bytes ago --- */ struct perf_cgroup * cgrp; /* 1048 8 */ int cgrp_defer_enabled; /* 1056 4 */ /* size: 1064, cachelines: 17, members: 61 */ /* sum members: 1042, holes: 5, sum holes: 18 */ /* padding: 4 */ /* last cacheline: 40 bytes */ }; struct cpu_context { long unsigned int x19; /* 0 8 */ long unsigned int x20; /* 8 8 */ long unsigned int x21; /* 16 8 */ long unsigned int x22; /* 24 8 */ long unsigned int x23; /* 32 8 */ long unsigned int x24; /* 40 8 */ long unsigned int x25; /* 48 8 */ long unsigned int x26; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ long unsigned int x27; /* 64 8 */ long unsigned int x28; /* 72 8 */ long unsigned int fp; /* 80 8 */ long unsigned int sp; /* 88 8 */ long unsigned int pc; /* 96 8 */ /* size: 104, cachelines: 2, members: 13 */ /* last cacheline: 40 bytes */ }; struct thread_struct { struct cpu_context cpu_context; /* 0 104 */ /* --- cacheline 1 boundary (64 bytes) was 40 bytes ago --- */ long unsigned int tp_value; /* 104 8 */ struct fpsimd_state fpsimd_state; /* 112 544 */ /* XXX last struct has 12 bytes of padding */ /* --- cacheline 10 boundary (640 bytes) was 16 bytes ago --- */ long unsigned int fault_address; /* 656 8 */ long unsigned int fault_code; /* 664 8 */ struct debug_info debug; /* 672 272 */ /* --- cacheline 14 boundary (896 bytes) was 48 bytes ago --- */ /* size: 944, cachelines: 15, members: 6 */ /* paddings: 1, sum paddings: 12 */ /* last cacheline: 48 bytes */ }; struct __wait_queue_head { spinlock_t lock; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head task_list; /* 8 16 */ /* size: 24, cachelines: 1, members: 2 */ /* sum members: 20, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; struct seqcount { unsigned int sequence; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct page { long unsigned int flags; /* 0 8 */ union { struct address_space * mapping; /* 8 */ void * s_mem; /* 8 */ atomic_t compound_mapcount; /* 4 */ }; /* 8 8 */ struct { union { long unsigned int index; /* 8 */ void * freelist; /* 8 */ }; /* 16 8 */ union { long unsigned int counters; /* 8 */ struct { union { atomic_t _mapcount; /* 4 */ struct { unsigned int inuse:16; /* 24:16 4 */ unsigned int objects:15; /* 24: 1 4 */ unsigned int frozen:1; /* 24: 0 4 */ }; /* 4 */ int units; /* 4 */ }; /* 24 4 */ atomic_t _count; /* 28 4 */ }; /* 8 */ unsigned int active; /* 4 */ }; /* 24 8 */ }; /* 16 16 */ union { struct list_head lru; /* 16 */ struct dev_pagemap * pgmap; /* 8 */ struct { struct page * next; /* 32 8 */ int pages; /* 40 4 */ int pobjects; /* 44 4 */ }; /* 16 */ struct callback_head callback_head; /* 16 */ struct { long unsigned int compound_head; /* 32 8 */ unsigned int compound_dtor; /* 40 4 */ unsigned int compound_order; /* 44 4 */ }; /* 16 */ }; /* 32 16 */ union { long unsigned int private; /* 8 */ spinlock_t ptl; /* 4 */ struct kmem_cache * slab_cache; /* 8 */ }; /* 48 8 */ struct mem_cgroup * mem_cgroup; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 6 */ }; struct free_area { struct list_head free_list[6]; /* 0 96 */ /* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */ long unsigned int nr_free; /* 96 8 */ /* size: 104, cachelines: 2, members: 2 */ /* last cacheline: 40 bytes */ }; struct zone_padding { char x[0]; /* 0 0 */ /* size: 0, cachelines: 0, members: 1 */ }; struct zone_reclaim_stat { long unsigned int recent_rotated[2]; /* 0 16 */ long unsigned int recent_scanned[2]; /* 16 16 */ /* size: 32, cachelines: 1, members: 2 */ /* last cacheline: 32 bytes */ }; struct lruvec { struct list_head lists[5]; /* 0 80 */ /* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */ struct zone_reclaim_stat reclaim_stat; /* 80 32 */ struct zone * zone; /* 112 8 */ /* size: 120, cachelines: 2, members: 3 */ /* last cacheline: 56 bytes */ }; struct zone { long unsigned int watermark[3]; /* 0 24 */ long unsigned int nr_reserved_highatomic; /* 24 8 */ long int lowmem_reserve[3]; /* 32 24 */ unsigned int inactive_ratio; /* 56 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 1 boundary (64 bytes) --- */ struct pglist_data * zone_pgdat; /* 64 8 */ struct per_cpu_pageset * pageset; /* 72 8 */ long unsigned int totalreserve_pages; /* 80 8 */ long unsigned int zone_start_pfn; /* 88 8 */ long unsigned int managed_pages; /* 96 8 */ long unsigned int spanned_pages; /* 104 8 */ long unsigned int present_pages; /* 112 8 */ const char * name; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ long unsigned int nr_isolate_pageblock; /* 128 8 */ wait_queue_head_t * wait_table; /* 136 8 */ long unsigned int wait_table_hash_nr_entries; /* 144 8 */ long unsigned int wait_table_bits; /* 152 8 */ /* XXX 96 bytes hole, try to pack */ /* --- cacheline 4 boundary (256 bytes) --- */ struct zone_padding _pad1_; /* 256 0 */ struct free_area free_area[11]; /* 256 1144 */ /* --- cacheline 21 boundary (1344 bytes) was 56 bytes ago --- */ long unsigned int flags; /* 1400 8 */ /* --- cacheline 22 boundary (1408 bytes) --- */ spinlock_t lock; /* 1408 4 */ /* XXX 124 bytes hole, try to pack */ /* --- cacheline 24 boundary (1536 bytes) --- */ struct zone_padding _pad2_; /* 1536 0 */ spinlock_t lru_lock; /* 1536 4 */ /* XXX 4 bytes hole, try to pack */ struct lruvec lruvec; /* 1544 120 */ /* --- cacheline 26 boundary (1664 bytes) --- */ atomic_long_t inactive_age; /* 1664 8 */ long unsigned int percpu_drift_mark; /* 1672 8 */ long unsigned int compact_cached_free_pfn; /* 1680 8 */ long unsigned int compact_cached_migrate_pfn[2]; /* 1688 16 */ unsigned int compact_considered; /* 1704 4 */ unsigned int compact_defer_shift; /* 1708 4 */ int compact_order_failed; /* 1712 4 */ bool compact_blockskip_flush; /* 1716 1 */ /* XXX 75 bytes hole, try to pack */ /* --- cacheline 28 boundary (1792 bytes) --- */ struct zone_padding _pad3_; /* 1792 0 */ atomic_long_t vm_stat[33]; /* 1792 264 */ /* --- cacheline 32 boundary (2048 bytes) was 8 bytes ago --- */ /* size: 2176, cachelines: 34, members: 33 */ /* sum members: 1753, holes: 5, sum holes: 303 */ /* padding: 120 */ }; struct per_cpu_pages { int count; /* 0 4 */ int high; /* 4 4 */ int batch; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head lists[3]; /* 16 48 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 4 */ /* sum members: 60, holes: 1, sum holes: 4 */ }; struct per_cpu_pageset { struct per_cpu_pages pcp; /* 0 64 */ /* --- cacheline 1 boundary (64 bytes) --- */ s8 stat_threshold; /* 64 1 */ s8 vm_stat_diff[33]; /* 65 33 */ /* size: 104, cachelines: 2, members: 3 */ /* padding: 6 */ /* last cacheline: 40 bytes */ }; struct pglist_data { struct zone node_zones[3]; /* 0 6528 */ /* --- cacheline 102 boundary (6528 bytes) --- */ struct zonelist node_zonelists[1]; /* 6528 64 */ /* --- cacheline 103 boundary (6592 bytes) --- */ int nr_zones; /* 6592 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int node_start_pfn; /* 6600 8 */ long unsigned int node_present_pages; /* 6608 8 */ long unsigned int node_spanned_pages; /* 6616 8 */ int node_id; /* 6624 4 */ /* XXX 4 bytes hole, try to pack */ wait_queue_head_t kswapd_wait; /* 6632 24 */ /* --- cacheline 104 boundary (6656 bytes) --- */ wait_queue_head_t pfmemalloc_wait; /* 6656 24 */ struct task_struct * kswapd; /* 6680 8 */ int kswapd_max_order; /* 6688 4 */ enum zone_type classzone_idx; /* 6692 4 */ /* size: 6784, cachelines: 106, members: 12 */ /* sum members: 6688, holes: 2, sum holes: 8 */ /* padding: 88 */ }; struct zoneref { struct zone * zone; /* 0 8 */ int zone_idx; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct zonelist { struct zoneref _zonerefs[4]; /* 0 64 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 1 */ }; struct optimistic_spin_queue { atomic_t tail; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct mutex { atomic_t count; /* 0 4 */ spinlock_t wait_lock; /* 4 4 */ struct list_head wait_list; /* 8 16 */ struct task_struct * owner; /* 24 8 */ struct optimistic_spin_queue osq; /* 32 4 */ /* size: 40, cachelines: 1, members: 5 */ /* padding: 4 */ /* last cacheline: 40 bytes */ }; struct rw_semaphore { long int count; /* 0 8 */ struct list_head wait_list; /* 8 16 */ raw_spinlock_t wait_lock; /* 24 4 */ struct optimistic_spin_queue osq; /* 28 4 */ struct task_struct * owner; /* 32 8 */ /* size: 40, cachelines: 1, members: 5 */ /* last cacheline: 40 bytes */ }; struct cpumask { long unsigned int bits[64]; /* 0 512 */ /* --- cacheline 8 boundary (512 bytes) --- */ /* size: 512, cachelines: 8, members: 1 */ }; struct completion { unsigned int done; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ wait_queue_head_t wait; /* 8 24 */ /* size: 32, cachelines: 1, members: 2 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct timer_list { struct hlist_node entry; /* 0 16 */ long unsigned int expires; /* 16 8 */ void (*function)(long unsigned int); /* 24 8 */ long unsigned int data; /* 32 8 */ u32 flags; /* 40 4 */ int slack; /* 44 4 */ int start_pid; /* 48 4 */ /* XXX 4 bytes hole, try to pack */ void * start_site; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ char start_comm[16]; /* 64 16 */ /* size: 80, cachelines: 2, members: 9 */ /* sum members: 76, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct rb_node { long unsigned int __rb_parent_color; /* 0 8 */ struct rb_node * rb_right; /* 8 8 */ struct rb_node * rb_left; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct rb_root { struct rb_node * rb_node; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct nsproxy { atomic_t count; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct uts_namespace * uts_ns; /* 8 8 */ struct ipc_namespace * ipc_ns; /* 16 8 */ struct mnt_namespace * mnt_ns; /* 24 8 */ struct pid_namespace * pid_ns_for_children; /* 32 8 */ struct net * net_ns; /* 40 8 */ /* size: 48, cachelines: 1, members: 6 */ /* sum members: 44, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct work_struct { atomic_long_t data; /* 0 8 */ struct list_head entry; /* 8 16 */ work_func_t func; /* 24 8 */ /* size: 32, cachelines: 1, members: 3 */ /* last cacheline: 32 bytes */ }; struct delayed_work { struct work_struct work; /* 0 32 */ struct timer_list timer; /* 32 80 */ /* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */ struct workqueue_struct * wq; /* 112 8 */ int cpu; /* 120 4 */ /* size: 128, cachelines: 2, members: 4 */ /* padding: 4 */ }; struct mem_section { long unsigned int section_mem_map; /* 0 8 */ long unsigned int * pageblock_flags; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct llist_node { struct llist_node * next; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct call_single_data { struct llist_node llist; /* 0 8 */ smp_call_func_t func; /* 8 8 */ void * info; /* 16 8 */ unsigned int flags; /* 24 4 */ /* size: 32, cachelines: 1, members: 4 */ /* padding: 4 */ /* last cacheline: 32 bytes */ }; struct cpu_topology { int thread_id; /* 0 4 */ int core_id; /* 4 4 */ int cluster_id; /* 8 4 */ int physical_package_id; /* 12 4 */ cpumask_t thread_sibling; /* 16 512 */ /* --- cacheline 8 boundary (512 bytes) was 16 bytes ago --- */ cpumask_t core_sibling; /* 528 512 */ /* --- cacheline 16 boundary (1024 bytes) was 16 bytes ago --- */ /* size: 1040, cachelines: 17, members: 6 */ /* last cacheline: 16 bytes */ }; struct mem_cgroup { struct cgroup_subsys_state css; /* 0 184 */ /* --- cacheline 2 boundary (128 bytes) was 56 bytes ago --- */ struct page_counter memory; /* 184 40 */ /* --- cacheline 3 boundary (192 bytes) was 32 bytes ago --- */ struct page_counter swap; /* 224 40 */ /* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */ struct page_counter memsw; /* 264 40 */ struct page_counter kmem; /* 304 40 */ /* --- cacheline 5 boundary (320 bytes) was 24 bytes ago --- */ struct page_counter tcpmem; /* 344 40 */ /* --- cacheline 6 boundary (384 bytes) --- */ long unsigned int low; /* 384 8 */ long unsigned int high; /* 392 8 */ struct work_struct high_work; /* 400 32 */ long unsigned int soft_limit; /* 432 8 */ struct vmpressure vmpressure; /* 440 128 */ /* --- cacheline 8 boundary (512 bytes) was 56 bytes ago --- */ bool use_hierarchy; /* 568 1 */ bool oom_lock; /* 569 1 */ /* XXX 2 bytes hole, try to pack */ int under_oom; /* 572 4 */ /* --- cacheline 9 boundary (576 bytes) --- */ int swappiness; /* 576 4 */ int oom_kill_disable; /* 580 4 */ struct cgroup_file events_file; /* 584 8 */ struct mutex thresholds_lock; /* 592 40 */ /* XXX last struct has 4 bytes of padding */ struct mem_cgroup_thresholds thresholds; /* 632 16 */ /* --- cacheline 10 boundary (640 bytes) was 8 bytes ago --- */ struct mem_cgroup_thresholds memsw_thresholds; /* 648 16 */ struct list_head oom_notify; /* 664 16 */ long unsigned int move_charge_at_immigrate; /* 680 8 */ atomic_t moving_account; /* 688 4 */ spinlock_t move_lock; /* 692 4 */ struct task_struct * move_lock_task; /* 696 8 */ /* --- cacheline 11 boundary (704 bytes) --- */ long unsigned int move_lock_flags; /* 704 8 */ struct mem_cgroup_stat_cpu * stat; /* 712 8 */ long unsigned int socket_pressure; /* 720 8 */ bool tcpmem_active; /* 728 1 */ /* XXX 3 bytes hole, try to pack */ int tcpmem_pressure; /* 732 4 */ int kmemcg_id; /* 736 4 */ enum memcg_kmem_state kmem_state; /* 740 4 */ int last_scanned_node; /* 744 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head cgwb_list; /* 752 16 */ /* --- cacheline 12 boundary (768 bytes) --- */ struct wb_domain cgwb_domain; /* 768 160 */ /* --- cacheline 14 boundary (896 bytes) was 32 bytes ago --- */ struct list_head event_list; /* 928 16 */ spinlock_t event_list_lock; /* 944 4 */ /* XXX 4 bytes hole, try to pack */ struct mem_cgroup_per_node * nodeinfo[0]; /* 952 0 */ /* size: 952, cachelines: 15, members: 38 */ /* sum members: 939, holes: 4, sum holes: 13 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 56 bytes */ }; struct kernel_cap_struct { __u32 cap[2]; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct plist_node { int prio; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head prio_list; /* 8 16 */ struct list_head node_list; /* 24 16 */ /* size: 40, cachelines: 1, members: 3 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct mm_struct { struct vm_area_struct * mmap; /* 0 8 */ struct rb_root mm_rb; /* 8 8 */ u32 vmacache_seqnum; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ 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 task_size; /* 48 8 */ long unsigned int highest_vm_end; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ pgd_t * pgd; /* 64 8 */ atomic_t mm_users; /* 72 4 */ atomic_t mm_count; /* 76 4 */ atomic_long_t nr_ptes; /* 80 8 */ int map_count; /* 88 4 */ spinlock_t page_table_lock; /* 92 4 */ struct rw_semaphore mmap_sem; /* 96 40 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ struct list_head mmlist; /* 136 16 */ long unsigned int hiwater_rss; /* 152 8 */ long unsigned int hiwater_vm; /* 160 8 */ long unsigned int total_vm; /* 168 8 */ long unsigned int locked_vm; /* 176 8 */ long unsigned int pinned_vm; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ long unsigned int data_vm; /* 192 8 */ long unsigned int exec_vm; /* 200 8 */ long unsigned int stack_vm; /* 208 8 */ long unsigned int def_flags; /* 216 8 */ long unsigned int start_code; /* 224 8 */ long unsigned int end_code; /* 232 8 */ long unsigned int start_data; /* 240 8 */ long unsigned int end_data; /* 248 8 */ /* --- cacheline 4 boundary (256 bytes) --- */ long unsigned int start_brk; /* 256 8 */ long unsigned int brk; /* 264 8 */ long unsigned int start_stack; /* 272 8 */ long unsigned int arg_start; /* 280 8 */ long unsigned int arg_end; /* 288 8 */ long unsigned int env_start; /* 296 8 */ long unsigned int env_end; /* 304 8 */ long unsigned int saved_auxv[42]; /* 312 336 */ /* --- cacheline 10 boundary (640 bytes) was 8 bytes ago --- */ struct mm_rss_stat rss_stat; /* 648 32 */ struct linux_binfmt * binfmt; /* 680 8 */ cpumask_var_t cpu_vm_mask_var; /* 688 8 */ mm_context_t context; /* 696 16 */ /* --- cacheline 11 boundary (704 bytes) was 8 bytes ago --- */ long unsigned int flags; /* 712 8 */ struct core_state * core_state; /* 720 8 */ spinlock_t ioctx_lock; /* 728 4 */ /* XXX 4 bytes hole, try to pack */ struct kioctx_table * ioctx_table; /* 736 8 */ struct task_struct * owner; /* 744 8 */ struct file * exe_file; /* 752 8 */ struct mmu_notifier_mm * mmu_notifier_mm; /* 760 8 */ /* --- cacheline 12 boundary (768 bytes) --- */ struct cpumask cpumask_allocation; /* 768 512 */ /* --- cacheline 20 boundary (1280 bytes) --- */ bool tlb_flush_pending; /* 1280 1 */ /* XXX 7 bytes hole, try to pack */ struct uprobes_state uprobes_state; /* 1288 8 */ atomic_long_t hugetlb_usage; /* 1296 8 */ /* size: 1304, cachelines: 21, members: 52 */ /* sum members: 1289, holes: 3, sum holes: 15 */ /* last cacheline: 24 bytes */ }; struct arch_uprobe_task { long unsigned int saved_fault_code; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct uprobe_task { enum uprobe_task_state state; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ union { struct { struct arch_uprobe_task autask; /* 8 8 */ long unsigned int vaddr; /* 16 8 */ }; /* 16 */ struct { struct callback_head dup_xol_work; /* 8 16 */ long unsigned int dup_xol_addr; /* 24 8 */ }; /* 24 */ }; /* 8 24 */ struct uprobe * active_uprobe; /* 32 8 */ long unsigned int xol_vaddr; /* 40 8 */ struct return_instance * return_instances; /* 48 8 */ unsigned int depth; /* 56 4 */ /* size: 64, cachelines: 1, members: 6 */ /* sum members: 56, holes: 1, sum holes: 4 */ /* padding: 4 */ }; struct return_instance { struct uprobe * uprobe; /* 0 8 */ long unsigned int func; /* 8 8 */ long unsigned int stack; /* 16 8 */ long unsigned int orig_ret_vaddr; /* 24 8 */ bool chained; /* 32 1 */ /* XXX 7 bytes hole, try to pack */ struct return_instance * next; /* 40 8 */ /* size: 48, cachelines: 1, members: 6 */ /* sum members: 41, holes: 1, sum holes: 7 */ /* last cacheline: 48 bytes */ }; struct uprobes_state { struct xol_area * xol_area; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct address_space { struct inode * host; /* 0 8 */ struct radix_tree_root page_tree; /* 8 16 */ spinlock_t tree_lock; /* 24 4 */ atomic_t i_mmap_writable; /* 28 4 */ struct rb_root i_mmap; /* 32 8 */ struct rw_semaphore i_mmap_rwsem; /* 40 40 */ /* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */ long unsigned int nrpages; /* 80 8 */ long unsigned int nrexceptional; /* 88 8 */ long unsigned int writeback_index; /* 96 8 */ const struct address_space_operations * a_ops; /* 104 8 */ long unsigned int flags; /* 112 8 */ spinlock_t private_lock; /* 120 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 2 boundary (128 bytes) --- */ struct list_head private_list; /* 128 16 */ void * private_data; /* 144 8 */ /* size: 152, cachelines: 3, members: 14 */ /* sum members: 148, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; struct page_frag { struct page * page; /* 0 8 */ __u32 offset; /* 8 4 */ __u32 size; /* 12 4 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; struct file { union { struct llist_node fu_llist; /* 8 */ struct callback_head fu_rcuhead; /* 16 */ } f_u; /* 0 16 */ struct path f_path; /* 16 16 */ struct inode * f_inode; /* 32 8 */ const struct file_operations * f_op; /* 40 8 */ spinlock_t f_lock; /* 48 4 */ /* XXX 4 bytes hole, try to pack */ atomic_long_t f_count; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ unsigned int f_flags; /* 64 4 */ fmode_t f_mode; /* 68 4 */ struct mutex f_pos_lock; /* 72 40 */ /* XXX last struct has 4 bytes of padding */ loff_t f_pos; /* 112 8 */ struct fown_struct f_owner; /* 120 32 */ /* --- cacheline 2 boundary (128 bytes) was 24 bytes ago --- */ const struct cred * f_cred; /* 152 8 */ struct file_ra_state f_ra; /* 160 32 */ /* --- cacheline 3 boundary (192 bytes) --- */ u64 f_version; /* 192 8 */ void * f_security; /* 200 8 */ void * private_data; /* 208 8 */ struct list_head f_ep_links; /* 216 16 */ struct list_head f_tfile_llink; /* 232 16 */ struct address_space * f_mapping; /* 248 8 */ /* --- cacheline 4 boundary (256 bytes) --- */ /* size: 256, cachelines: 4, members: 19 */ /* sum members: 252, holes: 1, sum holes: 4 */ /* paddings: 1, sum paddings: 4 */ }; struct vm_userfaultfd_ctx { struct userfaultfd_ctx * ctx; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct vm_area_struct { long unsigned int vm_start; /* 0 8 */ long unsigned int vm_end; /* 8 8 */ struct vm_area_struct * vm_next; /* 16 8 */ struct vm_area_struct * vm_prev; /* 24 8 */ struct rb_node vm_rb; /* 32 24 */ long unsigned int rb_subtree_gap; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct mm_struct * vm_mm; /* 64 8 */ pgprot_t vm_page_prot; /* 72 8 */ long unsigned int vm_flags; /* 80 8 */ struct { struct rb_node rb; /* 88 24 */ long unsigned int rb_subtree_last; /* 112 8 */ } shared; /* 88 32 */ struct list_head anon_vma_chain; /* 120 16 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ struct anon_vma * anon_vma; /* 136 8 */ const struct vm_operations_struct * vm_ops; /* 144 8 */ long unsigned int vm_pgoff; /* 152 8 */ struct file * vm_file; /* 160 8 */ void * vm_private_data; /* 168 8 */ struct vm_userfaultfd_ctx vm_userfaultfd_ctx; /* 176 8 */ /* size: 184, cachelines: 3, members: 17 */ /* last cacheline: 56 bytes */ }; struct vm_operations_struct { void (*open)(struct vm_area_struct *); /* 0 8 */ void (*close)(struct vm_area_struct *); /* 8 8 */ int (*mremap)(struct vm_area_struct *); /* 16 8 */ int (*fault)(struct vm_area_struct *, struct vm_fault *); /* 24 8 */ int (*pmd_fault)(struct vm_area_struct *, long unsigned int, pmd_t *, unsigned int); /* 32 8 */ void (*map_pages)(struct vm_area_struct *, struct vm_fault *); /* 40 8 */ int (*page_mkwrite)(struct vm_area_struct *, struct vm_fault *); /* 48 8 */ int (*pfn_mkwrite)(struct vm_area_struct *, struct vm_fault *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*access)(struct vm_area_struct *, long unsigned int, void *, int, int); /* 64 8 */ const char * (*name)(struct vm_area_struct *); /* 72 8 */ struct page * (*find_special_page)(struct vm_area_struct *, long unsigned int); /* 80 8 */ /* size: 88, cachelines: 2, members: 11 */ /* last cacheline: 24 bytes */ }; struct core_thread { struct task_struct * task; /* 0 8 */ struct core_thread * next; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct core_state { atomic_t nr_threads; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct core_thread dumper; /* 8 16 */ struct completion startup; /* 24 32 */ /* size: 56, cachelines: 1, members: 3 */ /* sum members: 52, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct task_rss_stat { int events; /* 0 4 */ int count[4]; /* 4 16 */ /* size: 20, cachelines: 1, members: 2 */ /* last cacheline: 20 bytes */ }; struct mm_rss_stat { atomic_long_t count[4]; /* 0 32 */ /* size: 32, cachelines: 1, members: 1 */ /* last cacheline: 32 bytes */ }; struct sysv_sem { struct sem_undo_list * undo_list; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct user_struct { atomic_t __count; /* 0 4 */ atomic_t processes; /* 4 4 */ atomic_t sigpending; /* 8 4 */ atomic_t inotify_watches; /* 12 4 */ atomic_t inotify_devs; /* 16 4 */ atomic_t fanotify_listeners; /* 20 4 */ atomic_long_t epoll_watches; /* 24 8 */ long unsigned int mq_bytes; /* 32 8 */ long unsigned int locked_shm; /* 40 8 */ long unsigned int unix_inflight; /* 48 8 */ atomic_long_t pipe_bufs; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct key * uid_keyring; /* 64 8 */ struct key * session_keyring; /* 72 8 */ struct hlist_node uidhash_node; /* 80 16 */ kuid_t uid; /* 96 4 */ /* XXX 4 bytes hole, try to pack */ atomic_long_t locked_vm; /* 104 8 */ /* size: 112, cachelines: 2, members: 16 */ /* sum members: 108, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct sysv_shm { struct list_head shm_clist; /* 0 16 */ /* size: 16, cachelines: 1, members: 1 */ /* last cacheline: 16 bytes */ }; struct siginfo { int si_signo; /* 0 4 */ int si_errno; /* 4 4 */ int si_code; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ union { int _pad[28]; /* 112 */ struct { __kernel_pid_t _pid; /* 16 4 */ __kernel_uid32_t _uid; /* 20 4 */ } _kill; /* 8 */ struct { __kernel_timer_t _tid; /* 16 4 */ int _overrun; /* 20 4 */ char _pad[0]; /* 24 0 */ sigval_t _sigval; /* 24 8 */ int _sys_private; /* 32 4 */ } _timer; /* 24 */ struct { __kernel_pid_t _pid; /* 16 4 */ __kernel_uid32_t _uid; /* 20 4 */ sigval_t _sigval; /* 24 8 */ } _rt; /* 16 */ struct { __kernel_pid_t _pid; /* 16 4 */ __kernel_uid32_t _uid; /* 20 4 */ int _status; /* 24 4 */ __kernel_clock_t _utime; /* 32 8 */ __kernel_clock_t _stime; /* 40 8 */ } _sigchld; /* 32 */ struct { void * _addr; /* 16 8 */ short int _addr_lsb; /* 24 2 */ struct { void * _lower; /* 32 8 */ void * _upper; /* 40 8 */ } _addr_bnd; /* 32 16 */ } _sigfault; /* 32 */ struct { long int _band; /* 16 8 */ int _fd; /* 24 4 */ } _sigpoll; /* 16 */ struct { void * _call_addr; /* 16 8 */ int _syscall; /* 24 4 */ unsigned int _arch; /* 28 4 */ } _sigsys; /* 16 */ } _sifields; /* 16 112 */ /* --- cacheline 2 boundary (128 bytes) --- */ /* size: 128, cachelines: 2, members: 4 */ /* sum members: 124, holes: 1, sum holes: 4 */ }; struct sigpending { struct list_head list; /* 0 16 */ sigset_t signal; /* 16 8 */ /* size: 24, cachelines: 1, members: 2 */ /* last cacheline: 24 bytes */ }; struct sigaction { __sighandler_t sa_handler; /* 0 8 */ long unsigned int sa_flags; /* 8 8 */ __sigrestore_t sa_restorer; /* 16 8 */ sigset_t sa_mask; /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* last cacheline: 32 bytes */ }; struct k_sigaction { struct sigaction sa; /* 0 32 */ /* size: 32, cachelines: 1, members: 1 */ /* last cacheline: 32 bytes */ }; struct upid { int nr; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct pid_namespace * ns; /* 8 8 */ struct hlist_node pid_chain; /* 16 16 */ /* size: 32, cachelines: 1, members: 3 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct pid_namespace { struct kref kref; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct pidmap pidmap[8]; /* 8 128 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ struct callback_head rcu; /* 136 16 */ int last_pid; /* 152 4 */ unsigned int nr_hashed; /* 156 4 */ struct task_struct * child_reaper; /* 160 8 */ struct kmem_cache * pid_cachep; /* 168 8 */ unsigned int level; /* 176 4 */ /* XXX 4 bytes hole, try to pack */ struct pid_namespace * parent; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ struct vfsmount * proc_mnt; /* 192 8 */ struct dentry * proc_self; /* 200 8 */ struct dentry * proc_thread_self; /* 208 8 */ struct fs_pin * bacct; /* 216 8 */ struct user_namespace * user_ns; /* 224 8 */ struct work_struct proc_work; /* 232 32 */ /* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */ kgid_t pid_gid; /* 264 4 */ int hide_pid; /* 268 4 */ int reboot; /* 272 4 */ /* XXX 4 bytes hole, try to pack */ struct ns_common ns; /* 280 24 */ /* size: 304, cachelines: 5, members: 19 */ /* sum members: 292, holes: 3, sum holes: 12 */ /* last cacheline: 48 bytes */ }; struct pid { atomic_t count; /* 0 4 */ unsigned int level; /* 4 4 */ struct hlist_head tasks[3]; /* 8 24 */ struct callback_head rcu; /* 32 16 */ struct upid numbers[1]; /* 48 32 */ /* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */ /* size: 80, cachelines: 2, members: 5 */ /* last cacheline: 16 bytes */ }; struct pid_link { struct hlist_node node; /* 0 16 */ struct pid * pid; /* 16 8 */ /* size: 24, cachelines: 1, members: 2 */ /* last cacheline: 24 bytes */ }; struct percpu_counter { raw_spinlock_t lock; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ s64 count; /* 8 8 */ struct list_head list; /* 16 16 */ s32 * counters; /* 32 8 */ /* size: 40, cachelines: 1, members: 4 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct seccomp { int mode; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct seccomp_filter * filter; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* sum members: 12, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct rlimit { __kernel_ulong_t rlim_cur; /* 0 8 */ __kernel_ulong_t rlim_max; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct timerqueue_node { struct rb_node node; /* 0 24 */ ktime_t expires; /* 24 8 */ /* size: 32, cachelines: 1, members: 2 */ /* last cacheline: 32 bytes */ }; struct timerqueue_head { struct rb_root head; /* 0 8 */ struct timerqueue_node * next; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct hrtimer { struct timerqueue_node node; /* 0 32 */ ktime_t _softexpires; /* 32 8 */ enum hrtimer_restart (*function)(struct hrtimer *); /* 40 8 */ struct hrtimer_clock_base * base; /* 48 8 */ u8 state; /* 56 1 */ u8 is_rel; /* 57 1 */ /* XXX 2 bytes hole, try to pack */ int start_pid; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ void * start_site; /* 64 8 */ char start_comm[16]; /* 72 16 */ /* size: 88, cachelines: 2, members: 9 */ /* sum members: 86, holes: 1, sum holes: 2 */ /* last cacheline: 24 bytes */ }; struct hrtimer_clock_base { struct hrtimer_cpu_base * cpu_base; /* 0 8 */ int index; /* 8 4 */ clockid_t clockid; /* 12 4 */ struct timerqueue_head active; /* 16 16 */ ktime_t (*get_time)(void); /* 32 8 */ ktime_t offset; /* 40 8 */ /* size: 64, cachelines: 1, members: 6 */ /* padding: 16 */ }; struct hrtimer_cpu_base { raw_spinlock_t lock; /* 0 4 */ seqcount_t seq; /* 4 4 */ struct hrtimer * running; /* 8 8 */ unsigned int cpu; /* 16 4 */ unsigned int active_bases; /* 20 4 */ unsigned int clock_was_set_seq; /* 24 4 */ bool migration_enabled; /* 28 1 */ bool nohz_active; /* 29 1 */ /* Bitfield combined with previous fields */ unsigned int in_hrtirq:1; /* 28:15 4 */ unsigned int hres_active:1; /* 28:14 4 */ unsigned int hang_detected:1; /* 28:13 4 */ /* XXX 13 bits hole, try to pack */ ktime_t expires_next; /* 32 8 */ struct hrtimer * next_timer; /* 40 8 */ unsigned int nr_events; /* 48 4 */ unsigned int nr_retries; /* 52 4 */ unsigned int nr_hangs; /* 56 4 */ unsigned int max_hang_time; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct hrtimer_clock_base clock_base[4]; /* 64 256 */ /* --- cacheline 5 boundary (320 bytes) --- */ /* size: 384, cachelines: 6, members: 18 */ /* bit holes: 1, sum bit holes: 13 bits */ /* padding: 64 */ }; struct task_io_accounting { u64 rchar; /* 0 8 */ u64 wchar; /* 8 8 */ u64 syscr; /* 16 8 */ u64 syscw; /* 24 8 */ u64 read_bytes; /* 32 8 */ u64 write_bytes; /* 40 8 */ u64 cancelled_write_bytes; /* 48 8 */ /* size: 56, cachelines: 1, members: 7 */ /* last cacheline: 56 bytes */ }; struct assoc_array { struct assoc_array_ptr * root; /* 0 8 */ long unsigned int nr_leaves_on_tree; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct keyring_index_key { struct key_type * type; /* 0 8 */ const char * description; /* 8 8 */ size_t desc_len; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct key { atomic_t usage; /* 0 4 */ key_serial_t serial; /* 4 4 */ union { struct list_head graveyard_link; /* 16 */ struct rb_node serial_node; /* 24 */ }; /* 8 24 */ struct rw_semaphore sem; /* 32 40 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct key_user * user; /* 72 8 */ void * security; /* 80 8 */ union { time_t expiry; /* 8 */ time_t revoked_at; /* 8 */ }; /* 88 8 */ time_t last_used_at; /* 96 8 */ kuid_t uid; /* 104 4 */ kgid_t gid; /* 108 4 */ key_perm_t perm; /* 112 4 */ short unsigned int quotalen; /* 116 2 */ short unsigned int datalen; /* 118 2 */ long unsigned int flags; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ union { struct keyring_index_key index_key; /* 24 */ struct { struct key_type * type; /* 128 8 */ char * description; /* 136 8 */ }; /* 16 */ }; /* 128 24 */ union { union key_payload payload; /* 32 */ struct { struct list_head name_link; /* 152 16 */ struct assoc_array keys; /* 168 16 */ }; /* 32 */ int reject_error; /* 4 */ }; /* 152 32 */ /* size: 184, cachelines: 3, members: 16 */ /* last cacheline: 56 bytes */ }; struct group_info { atomic_t usage; /* 0 4 */ int ngroups; /* 4 4 */ int nblocks; /* 8 4 */ kgid_t small_block[32]; /* 12 128 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */ kgid_t * blocks[0]; /* 144 0 */ /* size: 144, cachelines: 3, members: 5 */ /* sum members: 140, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct cred { atomic_t usage; /* 0 4 */ kuid_t uid; /* 4 4 */ kgid_t gid; /* 8 4 */ kuid_t suid; /* 12 4 */ kgid_t sgid; /* 16 4 */ kuid_t euid; /* 20 4 */ kgid_t egid; /* 24 4 */ kuid_t fsuid; /* 28 4 */ kgid_t fsgid; /* 32 4 */ unsigned int securebits; /* 36 4 */ kernel_cap_t cap_inheritable; /* 40 8 */ kernel_cap_t cap_permitted; /* 48 8 */ kernel_cap_t cap_effective; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ kernel_cap_t cap_bset; /* 64 8 */ kernel_cap_t cap_ambient; /* 72 8 */ unsigned char jit_keyring; /* 80 1 */ /* XXX 7 bytes hole, try to pack */ struct key * session_keyring; /* 88 8 */ struct key * process_keyring; /* 96 8 */ struct key * thread_keyring; /* 104 8 */ struct key * request_key_auth; /* 112 8 */ void * security; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ struct user_struct * user; /* 128 8 */ struct user_namespace * user_ns; /* 136 8 */ struct group_info * group_info; /* 144 8 */ struct callback_head rcu; /* 152 16 */ /* size: 168, cachelines: 3, members: 25 */ /* sum members: 161, holes: 1, sum holes: 7 */ /* last cacheline: 40 bytes */ }; struct idr_layer { int prefix; /* 0 4 */ int layer; /* 4 4 */ struct idr_layer * ary[256]; /* 8 2048 */ /* --- cacheline 32 boundary (2048 bytes) was 8 bytes ago --- */ int count; /* 2056 4 */ /* XXX 4 bytes hole, try to pack */ union { long unsigned int bitmap[4]; /* 32 */ struct callback_head callback_head; /* 16 */ }; /* 2064 32 */ /* size: 2096, cachelines: 33, members: 5 */ /* sum members: 2092, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct idr { struct idr_layer * hint; /* 0 8 */ struct idr_layer * top; /* 8 8 */ int layers; /* 16 4 */ int cur; /* 20 4 */ spinlock_t lock; /* 24 4 */ int id_free_cnt; /* 28 4 */ struct idr_layer * id_free; /* 32 8 */ /* size: 40, cachelines: 1, members: 7 */ /* last cacheline: 40 bytes */ }; struct ida_bitmap { long int nr_busy; /* 0 8 */ long unsigned int bitmap[15]; /* 8 120 */ /* --- cacheline 2 boundary (128 bytes) --- */ /* size: 128, cachelines: 2, members: 2 */ }; struct ida { struct idr idr; /* 0 40 */ struct ida_bitmap * free_bitmap; /* 40 8 */ /* size: 48, cachelines: 1, members: 2 */ /* last cacheline: 48 bytes */ }; struct percpu_ref { atomic_long_t count; /* 0 8 */ long unsigned int percpu_count_ptr; /* 8 8 */ percpu_ref_func_t * release; /* 16 8 */ percpu_ref_func_t * confirm_switch; /* 24 8 */ bool force_atomic:1; /* 32: 7 1 */ /* XXX 7 bits hole, try to pack */ /* XXX 7 bytes hole, try to pack */ struct callback_head rcu; /* 40 16 */ /* size: 56, cachelines: 1, members: 6 */ /* sum members: 49, holes: 1, sum holes: 7 */ /* bit holes: 1, sum bit holes: 7 bits */ /* last cacheline: 56 bytes */ }; struct rcu_sync { int gp_state; /* 0 4 */ int gp_count; /* 4 4 */ wait_queue_head_t gp_wait; /* 8 24 */ int cb_state; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ struct callback_head cb_head; /* 40 16 */ enum rcu_sync_type gp_type; /* 56 4 */ /* size: 64, cachelines: 1, members: 6 */ /* sum members: 56, holes: 1, sum holes: 4 */ /* padding: 4 */ }; struct percpu_rw_semaphore { struct rcu_sync rss; /* 0 64 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 1 boundary (64 bytes) --- */ unsigned int * fast_read_ctr; /* 64 8 */ struct rw_semaphore rw_sem; /* 72 40 */ atomic_t slow_read_ctr; /* 112 4 */ /* XXX 4 bytes hole, try to pack */ wait_queue_head_t write_waitq; /* 120 24 */ /* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */ /* size: 144, cachelines: 3, members: 5 */ /* sum members: 140, holes: 1, sum holes: 4 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 16 bytes */ }; struct cgroup_file { struct kernfs_node * kn; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct kernfs_node { atomic_t count; /* 0 4 */ atomic_t active; /* 4 4 */ struct kernfs_node * parent; /* 8 8 */ const char * name; /* 16 8 */ struct rb_node rb; /* 24 24 */ const void * ns; /* 48 8 */ unsigned int hash; /* 56 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 1 boundary (64 bytes) --- */ union { struct kernfs_elem_dir dir; /* 24 */ struct kernfs_elem_symlink symlink; /* 8 */ struct kernfs_elem_attr attr; /* 32 */ }; /* 64 32 */ void * priv; /* 96 8 */ short unsigned int flags; /* 104 2 */ umode_t mode; /* 106 2 */ unsigned int ino; /* 108 4 */ struct kernfs_iattrs * iattr; /* 112 8 */ /* size: 120, cachelines: 2, members: 13 */ /* sum members: 116, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct cgroup_subsys_state { struct cgroup * cgroup; /* 0 8 */ struct cgroup_subsys * ss; /* 8 8 */ struct percpu_ref refcnt; /* 16 56 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct cgroup_subsys_state * parent; /* 72 8 */ struct list_head sibling; /* 80 16 */ struct list_head children; /* 96 16 */ int id; /* 112 4 */ unsigned int flags; /* 116 4 */ u64 serial_nr; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ atomic_t online_cnt; /* 128 4 */ /* XXX 4 bytes hole, try to pack */ struct callback_head callback_head; /* 136 16 */ struct work_struct destroy_work; /* 152 32 */ /* size: 184, cachelines: 3, members: 12 */ /* sum members: 180, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct cgroup { struct cgroup_subsys_state self; /* 0 184 */ /* --- cacheline 2 boundary (128 bytes) was 56 bytes ago --- */ long unsigned int flags; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ int id; /* 192 4 */ int level; /* 196 4 */ int populated_cnt; /* 200 4 */ /* XXX 4 bytes hole, try to pack */ struct kernfs_node * kn; /* 208 8 */ struct cgroup_file procs_file; /* 216 8 */ struct cgroup_file events_file; /* 224 8 */ unsigned int subtree_control; /* 232 4 */ unsigned int child_subsys_mask; /* 236 4 */ struct cgroup_subsys_state * subsys[11]; /* 240 88 */ /* --- cacheline 5 boundary (320 bytes) was 8 bytes ago --- */ struct cgroup_root * root; /* 328 8 */ struct list_head cset_links; /* 336 16 */ struct list_head e_csets[11]; /* 352 176 */ /* --- cacheline 8 boundary (512 bytes) was 16 bytes ago --- */ struct list_head pidlists; /* 528 16 */ struct mutex pidlist_mutex; /* 544 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 9 boundary (576 bytes) was 8 bytes ago --- */ wait_queue_head_t offline_waitq; /* 584 24 */ struct work_struct release_agent_work; /* 608 32 */ /* --- cacheline 10 boundary (640 bytes) --- */ int ancestor_ids[0]; /* 640 0 */ /* size: 640, cachelines: 10, members: 19 */ /* sum members: 636, holes: 1, sum holes: 4 */ /* paddings: 1, sum paddings: 4 */ }; struct cgroup_subsys { struct cgroup_subsys_state * (*css_alloc)(struct cgroup_subsys_state *); /* 0 8 */ int (*css_online)(struct cgroup_subsys_state *); /* 8 8 */ void (*css_offline)(struct cgroup_subsys_state *); /* 16 8 */ void (*css_released)(struct cgroup_subsys_state *); /* 24 8 */ void (*css_free)(struct cgroup_subsys_state *); /* 32 8 */ void (*css_reset)(struct cgroup_subsys_state *); /* 40 8 */ void (*css_e_css_changed)(struct cgroup_subsys_state *); /* 48 8 */ int (*can_attach)(struct cgroup_taskset *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ void (*cancel_attach)(struct cgroup_taskset *); /* 64 8 */ void (*attach)(struct cgroup_taskset *); /* 72 8 */ int (*can_fork)(struct task_struct *); /* 80 8 */ void (*cancel_fork)(struct task_struct *); /* 88 8 */ void (*fork)(struct task_struct *); /* 96 8 */ void (*exit)(struct task_struct *); /* 104 8 */ void (*free)(struct task_struct *); /* 112 8 */ void (*bind)(struct cgroup_subsys_state *); /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ int early_init; /* 128 4 */ bool broken_hierarchy; /* 132 1 */ bool warned_broken_hierarchy; /* 133 1 */ /* XXX 2 bytes hole, try to pack */ int id; /* 136 4 */ /* XXX 4 bytes hole, try to pack */ const char * name; /* 144 8 */ const char * legacy_name; /* 152 8 */ struct cgroup_root * root; /* 160 8 */ struct idr css_idr; /* 168 40 */ /* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */ struct list_head cfts; /* 208 16 */ struct cftype * dfl_cftypes; /* 224 8 */ struct cftype * legacy_cftypes; /* 232 8 */ unsigned int depends_on; /* 240 4 */ /* size: 248, cachelines: 4, members: 28 */ /* sum members: 238, holes: 2, sum holes: 6 */ /* padding: 4 */ /* last cacheline: 56 bytes */ }; struct css_set { atomic_t refcount; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct hlist_node hlist; /* 8 16 */ struct list_head tasks; /* 24 16 */ struct list_head mg_tasks; /* 40 16 */ struct list_head cgrp_links; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct cgroup * dfl_cgrp; /* 72 8 */ struct cgroup_subsys_state * subsys[11]; /* 80 88 */ /* --- cacheline 2 boundary (128 bytes) was 40 bytes ago --- */ struct list_head mg_preload_node; /* 168 16 */ struct list_head mg_node; /* 184 16 */ /* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */ struct cgroup * mg_src_cgrp; /* 200 8 */ struct css_set * mg_dst_cset; /* 208 8 */ struct list_head e_cset_node[11]; /* 216 176 */ /* --- cacheline 6 boundary (384 bytes) was 8 bytes ago --- */ struct list_head task_iters; /* 392 16 */ struct callback_head callback_head; /* 408 16 */ /* size: 424, cachelines: 7, members: 14 */ /* sum members: 420, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct cgroup_root { struct kernfs_root * kf_root; /* 0 8 */ unsigned int subsys_mask; /* 8 4 */ int hierarchy_id; /* 12 4 */ struct cgroup cgrp; /* 16 640 */ /* --- cacheline 10 boundary (640 bytes) was 16 bytes ago --- */ int cgrp_ancestor_id_storage; /* 656 4 */ atomic_t nr_cgrps; /* 660 4 */ struct list_head root_list; /* 664 16 */ unsigned int flags; /* 680 4 */ /* XXX 4 bytes hole, try to pack */ struct idr cgroup_idr; /* 688 40 */ /* --- cacheline 11 boundary (704 bytes) was 24 bytes ago --- */ char release_agent_path[4096]; /* 728 4096 */ /* --- cacheline 75 boundary (4800 bytes) was 24 bytes ago --- */ char name[64]; /* 4824 64 */ /* --- cacheline 76 boundary (4864 bytes) was 24 bytes ago --- */ /* size: 4888, cachelines: 77, members: 11 */ /* sum members: 4884, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; struct kernfs_root { struct kernfs_node * kn; /* 0 8 */ unsigned int flags; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct ida ino_ida; /* 16 48 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct kernfs_syscall_ops * syscall_ops; /* 64 8 */ struct list_head supers; /* 72 16 */ wait_queue_head_t deactivate_waitq; /* 88 24 */ /* size: 112, cachelines: 2, members: 6 */ /* sum members: 108, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct cftype { char name[64]; /* 0 64 */ /* --- cacheline 1 boundary (64 bytes) --- */ long unsigned int private; /* 64 8 */ size_t max_write_len; /* 72 8 */ unsigned int flags; /* 80 4 */ unsigned int file_offset; /* 84 4 */ struct cgroup_subsys * ss; /* 88 8 */ struct list_head node; /* 96 16 */ struct kernfs_ops * kf_ops; /* 112 8 */ u64 (*read_u64)(struct cgroup_subsys_state *, struct cftype *); /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ s64 (*read_s64)(struct cgroup_subsys_state *, struct cftype *); /* 128 8 */ int (*seq_show)(struct seq_file *, void *); /* 136 8 */ void * (*seq_start)(struct seq_file *, loff_t *); /* 144 8 */ void * (*seq_next)(struct seq_file *, void *, loff_t *); /* 152 8 */ void (*seq_stop)(struct seq_file *, void *); /* 160 8 */ int (*write_u64)(struct cgroup_subsys_state *, struct cftype *, u64); /* 168 8 */ int (*write_s64)(struct cgroup_subsys_state *, struct cftype *, s64); /* 176 8 */ ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t); /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ /* size: 192, cachelines: 3, members: 17 */ }; struct kernfs_ops { int (*seq_show)(struct seq_file *, void *); /* 0 8 */ void * (*seq_start)(struct seq_file *, loff_t *); /* 8 8 */ void * (*seq_next)(struct seq_file *, void *, loff_t *); /* 16 8 */ void (*seq_stop)(struct seq_file *, void *); /* 24 8 */ ssize_t (*read)(struct kernfs_open_file *, char *, size_t, loff_t); /* 32 8 */ size_t atomic_write_len; /* 40 8 */ bool prealloc; /* 48 1 */ /* XXX 7 bytes hole, try to pack */ ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*mmap)(struct kernfs_open_file *, struct vm_area_struct *); /* 64 8 */ /* size: 72, cachelines: 2, members: 9 */ /* sum members: 65, holes: 1, sum holes: 7 */ /* last cacheline: 8 bytes */ }; struct seq_file { char * buf; /* 0 8 */ size_t size; /* 8 8 */ size_t from; /* 16 8 */ size_t count; /* 24 8 */ size_t pad_until; /* 32 8 */ loff_t index; /* 40 8 */ loff_t read_pos; /* 48 8 */ u64 version; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct mutex lock; /* 64 40 */ /* XXX last struct has 4 bytes of padding */ const struct seq_operations * op; /* 104 8 */ int poll_event; /* 112 4 */ /* XXX 4 bytes hole, try to pack */ void * private; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ /* size: 128, cachelines: 2, members: 12 */ /* sum members: 124, holes: 1, sum holes: 4 */ /* paddings: 1, sum paddings: 4 */ }; struct kernfs_open_file { struct kernfs_node * kn; /* 0 8 */ struct file * file; /* 8 8 */ void * priv; /* 16 8 */ struct mutex mutex; /* 24 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 1 boundary (64 bytes) --- */ int event; /* 64 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head list; /* 72 16 */ char * prealloc_buf; /* 88 8 */ size_t atomic_write_len; /* 96 8 */ bool mmapped; /* 104 1 */ /* XXX 7 bytes hole, try to pack */ const struct vm_operations_struct * vm_ops; /* 112 8 */ /* size: 120, cachelines: 2, members: 10 */ /* sum members: 109, holes: 2, sum holes: 11 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 56 bytes */ }; struct sighand_struct { atomic_t count; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct k_sigaction action[64]; /* 8 2048 */ /* --- cacheline 32 boundary (2048 bytes) was 8 bytes ago --- */ spinlock_t siglock; /* 2056 4 */ /* XXX 4 bytes hole, try to pack */ wait_queue_head_t signalfd_wqh; /* 2064 24 */ /* size: 2088, cachelines: 33, members: 4 */ /* sum members: 2080, holes: 2, sum holes: 8 */ /* last cacheline: 40 bytes */ }; struct pacct_struct { int ac_flag; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ long int ac_exitcode; /* 8 8 */ long unsigned int ac_mem; /* 16 8 */ cputime_t ac_utime; /* 24 8 */ cputime_t ac_stime; /* 32 8 */ long unsigned int ac_minflt; /* 40 8 */ long unsigned int ac_majflt; /* 48 8 */ /* size: 56, cachelines: 1, members: 7 */ /* sum members: 52, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct cpu_itimer { cputime_t expires; /* 0 8 */ cputime_t incr; /* 8 8 */ u32 error; /* 16 4 */ u32 incr_error; /* 20 4 */ /* size: 24, cachelines: 1, members: 4 */ /* last cacheline: 24 bytes */ }; struct prev_cputime { cputime_t utime; /* 0 8 */ cputime_t stime; /* 8 8 */ raw_spinlock_t lock; /* 16 4 */ /* size: 24, cachelines: 1, members: 3 */ /* padding: 4 */ /* last cacheline: 24 bytes */ }; struct task_cputime { cputime_t utime; /* 0 8 */ cputime_t stime; /* 8 8 */ long long unsigned int sum_exec_runtime; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct task_cputime_atomic { atomic64_t utime; /* 0 8 */ atomic64_t stime; /* 8 8 */ atomic64_t sum_exec_runtime; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct thread_group_cputimer { struct task_cputime_atomic cputime_atomic; /* 0 24 */ bool running; /* 24 1 */ bool checking_timer; /* 25 1 */ /* size: 32, cachelines: 1, members: 3 */ /* padding: 6 */ /* last cacheline: 32 bytes */ }; struct signal_struct { atomic_t sigcnt; /* 0 4 */ atomic_t live; /* 4 4 */ int nr_threads; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head thread_head; /* 16 16 */ wait_queue_head_t wait_chldexit; /* 32 24 */ struct task_struct * curr_target; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct sigpending shared_pending; /* 64 24 */ int group_exit_code; /* 88 4 */ int notify_count; /* 92 4 */ struct task_struct * group_exit_task; /* 96 8 */ int group_stop_count; /* 104 4 */ unsigned int flags; /* 108 4 */ unsigned int is_child_subreaper:1; /* 112:31 4 */ unsigned int has_child_subreaper:1; /* 112:30 4 */ /* XXX 30 bits hole, try to pack */ int posix_timer_id; /* 116 4 */ struct list_head posix_timers; /* 120 16 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ struct hrtimer real_timer; /* 136 88 */ /* --- cacheline 3 boundary (192 bytes) was 32 bytes ago --- */ struct pid * leader_pid; /* 224 8 */ ktime_t it_real_incr; /* 232 8 */ struct cpu_itimer it[2]; /* 240 48 */ /* --- cacheline 4 boundary (256 bytes) was 32 bytes ago --- */ struct thread_group_cputimer cputimer; /* 288 32 */ /* XXX last struct has 6 bytes of padding */ /* --- cacheline 5 boundary (320 bytes) --- */ struct task_cputime cputime_expires; /* 320 24 */ struct list_head cpu_timers[3]; /* 344 48 */ /* --- cacheline 6 boundary (384 bytes) was 8 bytes ago --- */ struct pid * tty_old_pgrp; /* 392 8 */ int leader; /* 400 4 */ /* XXX 4 bytes hole, try to pack */ struct tty_struct * tty; /* 408 8 */ struct autogroup * autogroup; /* 416 8 */ seqlock_t stats_lock; /* 424 8 */ cputime_t utime; /* 432 8 */ cputime_t stime; /* 440 8 */ /* --- cacheline 7 boundary (448 bytes) --- */ cputime_t cutime; /* 448 8 */ cputime_t cstime; /* 456 8 */ cputime_t gtime; /* 464 8 */ cputime_t cgtime; /* 472 8 */ struct prev_cputime prev_cputime; /* 480 24 */ /* XXX last struct has 4 bytes of padding */ long unsigned int nvcsw; /* 504 8 */ /* --- cacheline 8 boundary (512 bytes) --- */ long unsigned int nivcsw; /* 512 8 */ long unsigned int cnvcsw; /* 520 8 */ long unsigned int cnivcsw; /* 528 8 */ long unsigned int min_flt; /* 536 8 */ long unsigned int maj_flt; /* 544 8 */ long unsigned int cmin_flt; /* 552 8 */ long unsigned int cmaj_flt; /* 560 8 */ long unsigned int inblock; /* 568 8 */ /* --- cacheline 9 boundary (576 bytes) --- */ long unsigned int oublock; /* 576 8 */ long unsigned int cinblock; /* 584 8 */ long unsigned int coublock; /* 592 8 */ long unsigned int maxrss; /* 600 8 */ long unsigned int cmaxrss; /* 608 8 */ struct task_io_accounting ioac; /* 616 56 */ /* --- cacheline 10 boundary (640 bytes) was 32 bytes ago --- */ long long unsigned int sum_sched_runtime; /* 672 8 */ struct rlimit rlim[16]; /* 680 256 */ /* --- cacheline 14 boundary (896 bytes) was 40 bytes ago --- */ struct pacct_struct pacct; /* 936 56 */ /* --- cacheline 15 boundary (960 bytes) was 32 bytes ago --- */ struct taskstats * stats; /* 992 8 */ unsigned int audit_tty; /* 1000 4 */ unsigned int audit_tty_log_passwd; /* 1004 4 */ struct tty_audit_buf * tty_audit_buf; /* 1008 8 */ oom_flags_t oom_flags; /* 1016 4 */ short int oom_score_adj; /* 1020 2 */ short int oom_score_adj_min; /* 1022 2 */ /* --- cacheline 16 boundary (1024 bytes) --- */ struct mutex cred_guard_mutex; /* 1024 40 */ /* XXX last struct has 4 bytes of padding */ /* size: 1064, cachelines: 17, members: 61 */ /* sum members: 1056, holes: 2, sum holes: 8 */ /* bit holes: 1, sum bit holes: 30 bits */ /* paddings: 3, sum paddings: 14 */ /* last cacheline: 40 bytes */ }; struct taskstats { __u16 version; /* 0 2 */ /* XXX 2 bytes hole, try to pack */ __u32 ac_exitcode; /* 4 4 */ __u8 ac_flag; /* 8 1 */ __u8 ac_nice; /* 9 1 */ /* XXX 6 bytes hole, try to pack */ __u64 cpu_count; /* 16 8 */ __u64 cpu_delay_total; /* 24 8 */ __u64 blkio_count; /* 32 8 */ __u64 blkio_delay_total; /* 40 8 */ __u64 swapin_count; /* 48 8 */ __u64 swapin_delay_total; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ __u64 cpu_run_real_total; /* 64 8 */ __u64 cpu_run_virtual_total; /* 72 8 */ char ac_comm[32]; /* 80 32 */ __u8 ac_sched; /* 112 1 */ __u8 ac_pad[3]; /* 113 3 */ /* XXX 4 bytes hole, try to pack */ __u32 ac_uid; /* 120 4 */ __u32 ac_gid; /* 124 4 */ /* --- cacheline 2 boundary (128 bytes) --- */ __u32 ac_pid; /* 128 4 */ __u32 ac_ppid; /* 132 4 */ __u32 ac_btime; /* 136 4 */ /* XXX 4 bytes hole, try to pack */ __u64 ac_etime; /* 144 8 */ __u64 ac_utime; /* 152 8 */ __u64 ac_stime; /* 160 8 */ __u64 ac_minflt; /* 168 8 */ __u64 ac_majflt; /* 176 8 */ __u64 coremem; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ __u64 virtmem; /* 192 8 */ __u64 hiwater_rss; /* 200 8 */ __u64 hiwater_vm; /* 208 8 */ __u64 read_char; /* 216 8 */ __u64 write_char; /* 224 8 */ __u64 read_syscalls; /* 232 8 */ __u64 write_syscalls; /* 240 8 */ __u64 read_bytes; /* 248 8 */ /* --- cacheline 4 boundary (256 bytes) --- */ __u64 write_bytes; /* 256 8 */ __u64 cancelled_write_bytes; /* 264 8 */ __u64 nvcsw; /* 272 8 */ __u64 nivcsw; /* 280 8 */ __u64 ac_utimescaled; /* 288 8 */ __u64 ac_stimescaled; /* 296 8 */ __u64 cpu_scaled_run_real_total; /* 304 8 */ __u64 freepages_count; /* 312 8 */ /* --- cacheline 5 boundary (320 bytes) --- */ __u64 freepages_delay_total; /* 320 8 */ /* size: 328, cachelines: 6, members: 43 */ /* sum members: 312, holes: 4, sum holes: 16 */ /* last cacheline: 8 bytes */ }; struct sched_info { long unsigned int pcount; /* 0 8 */ long long unsigned int run_delay; /* 8 8 */ long long unsigned int last_arrival; /* 16 8 */ long long unsigned int last_queued; /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* last cacheline: 32 bytes */ }; struct task_delay_info { spinlock_t lock; /* 0 4 */ unsigned int flags; /* 4 4 */ u64 blkio_start; /* 8 8 */ u64 blkio_delay; /* 16 8 */ u64 swapin_delay; /* 24 8 */ u32 blkio_count; /* 32 4 */ u32 swapin_count; /* 36 4 */ u64 freepages_start; /* 40 8 */ u64 freepages_delay; /* 48 8 */ u32 freepages_count; /* 56 4 */ /* size: 64, cachelines: 1, members: 10 */ /* padding: 4 */ }; struct wake_q_node { struct wake_q_node * next; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct load_weight { long unsigned int weight; /* 0 8 */ u32 inv_weight; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct sched_avg { u64 last_update_time; /* 0 8 */ u64 load_sum; /* 8 8 */ u32 util_sum; /* 16 4 */ u32 period_contrib; /* 20 4 */ long unsigned int load_avg; /* 24 8 */ long unsigned int util_avg; /* 32 8 */ /* size: 40, cachelines: 1, members: 6 */ /* last cacheline: 40 bytes */ }; struct sched_entity { struct load_weight load; /* 0 16 */ /* XXX last struct has 4 bytes of padding */ struct rb_node run_node; /* 16 24 */ struct list_head group_node; /* 40 16 */ unsigned int on_rq; /* 56 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 1 boundary (64 bytes) --- */ u64 exec_start; /* 64 8 */ u64 sum_exec_runtime; /* 72 8 */ u64 vruntime; /* 80 8 */ u64 prev_sum_exec_runtime; /* 88 8 */ u64 nr_migrations; /* 96 8 */ int depth; /* 104 4 */ /* XXX 4 bytes hole, try to pack */ struct sched_entity * parent; /* 112 8 */ struct cfs_rq * cfs_rq; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ struct cfs_rq * my_q; /* 128 8 */ /* XXX 120 bytes hole, try to pack */ /* --- cacheline 4 boundary (256 bytes) --- */ struct sched_avg avg; /* 256 40 */ /* size: 384, cachelines: 6, members: 14 */ /* sum members: 168, holes: 3, sum holes: 128 */ /* padding: 88 */ /* paddings: 1, sum paddings: 4 */ }; struct sched_rt_entity { struct list_head run_list; /* 0 16 */ long unsigned int timeout; /* 16 8 */ long unsigned int watchdog_stamp; /* 24 8 */ unsigned int time_slice; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ struct sched_rt_entity * back; /* 40 8 */ struct sched_rt_entity * parent; /* 48 8 */ struct rt_rq * rt_rq; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct rt_rq * my_q; /* 64 8 */ /* size: 72, cachelines: 2, members: 8 */ /* sum members: 68, holes: 1, sum holes: 4 */ /* last cacheline: 8 bytes */ }; struct sched_dl_entity { struct rb_node rb_node; /* 0 24 */ u64 dl_runtime; /* 24 8 */ u64 dl_deadline; /* 32 8 */ u64 dl_period; /* 40 8 */ u64 dl_bw; /* 48 8 */ s64 runtime; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ u64 deadline; /* 64 8 */ unsigned int flags; /* 72 4 */ int dl_throttled; /* 76 4 */ int dl_new; /* 80 4 */ int dl_boosted; /* 84 4 */ int dl_yielded; /* 88 4 */ /* XXX 4 bytes hole, try to pack */ struct hrtimer dl_timer; /* 96 88 */ /* --- cacheline 2 boundary (128 bytes) was 56 bytes ago --- */ /* size: 184, cachelines: 3, members: 13 */ /* sum members: 180, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct bio_list { struct bio * head; /* 0 8 */ struct bio * tail; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct blk_plug { struct list_head list; /* 0 16 */ struct list_head mq_list; /* 16 16 */ struct list_head cb_list; /* 32 16 */ /* size: 48, cachelines: 1, members: 3 */ /* last cacheline: 48 bytes */ }; struct reclaim_state { long unsigned int reclaimed_slab; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct backing_dev_info { struct list_head bdi_list; /* 0 16 */ long unsigned int ra_pages; /* 16 8 */ unsigned int capabilities; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ congested_fn * congested_fn; /* 32 8 */ void * congested_data; /* 40 8 */ char * name; /* 48 8 */ unsigned int min_ratio; /* 56 4 */ unsigned int max_ratio; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ unsigned int max_prop_frac; /* 64 4 */ /* XXX 4 bytes hole, try to pack */ atomic_long_t tot_write_bandwidth; /* 72 8 */ struct bdi_writeback wb; /* 80 720 */ /* --- cacheline 12 boundary (768 bytes) was 32 bytes ago --- */ struct list_head wb_list; /* 800 16 */ struct radix_tree_root cgwb_tree; /* 816 16 */ /* --- cacheline 13 boundary (832 bytes) --- */ struct rb_root cgwb_congested_tree; /* 832 8 */ atomic_t usage_cnt; /* 840 4 */ /* XXX 4 bytes hole, try to pack */ wait_queue_head_t wb_waitq; /* 848 24 */ struct device * dev; /* 872 8 */ struct timer_list laptop_mode_wb_timer; /* 880 80 */ /* --- cacheline 15 boundary (960 bytes) --- */ struct dentry * debug_dir; /* 960 8 */ struct dentry * debug_stats; /* 968 8 */ /* size: 976, cachelines: 16, members: 20 */ /* sum members: 964, holes: 3, sum holes: 12 */ /* last cacheline: 16 bytes */ }; struct io_context { atomic_long_t refcount; /* 0 8 */ atomic_t active_ref; /* 8 4 */ atomic_t nr_tasks; /* 12 4 */ spinlock_t lock; /* 16 4 */ short unsigned int ioprio; /* 20 2 */ /* XXX 2 bytes hole, try to pack */ int nr_batch_requests; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int last_waited; /* 32 8 */ struct radix_tree_root icq_tree; /* 40 16 */ struct io_cq * icq_hint; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct hlist_head icq_list; /* 64 8 */ struct work_struct release_work; /* 72 32 */ /* size: 104, cachelines: 2, members: 11 */ /* sum members: 98, holes: 2, sum holes: 6 */ /* last cacheline: 40 bytes */ }; struct perf_event_context { struct pmu * pmu; /* 0 8 */ raw_spinlock_t lock; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct mutex mutex; /* 16 40 */ /* XXX last struct has 4 bytes of padding */ struct list_head active_ctx_list; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct list_head pinned_groups; /* 72 16 */ struct list_head flexible_groups; /* 88 16 */ struct list_head event_list; /* 104 16 */ int nr_events; /* 120 4 */ int nr_active; /* 124 4 */ /* --- cacheline 2 boundary (128 bytes) --- */ int is_active; /* 128 4 */ int nr_stat; /* 132 4 */ int nr_freq; /* 136 4 */ int rotate_disable; /* 140 4 */ atomic_t refcount; /* 144 4 */ /* XXX 4 bytes hole, try to pack */ struct task_struct * task; /* 152 8 */ u64 time; /* 160 8 */ u64 timestamp; /* 168 8 */ struct perf_event_context * parent_ctx; /* 176 8 */ u64 parent_gen; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ u64 generation; /* 192 8 */ int pin_count; /* 200 4 */ int nr_cgroups; /* 204 4 */ void * task_ctx_data; /* 208 8 */ struct callback_head callback_head; /* 216 16 */ /* size: 232, cachelines: 4, members: 24 */ /* sum members: 224, holes: 2, sum holes: 8 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 40 bytes */ }; struct ftrace_ret_stack { long unsigned int ret; /* 0 8 */ long unsigned int func; /* 8 8 */ long long unsigned int calltime; /* 16 8 */ long long unsigned int subtime; /* 24 8 */ long unsigned int fp; /* 32 8 */ /* size: 40, cachelines: 1, members: 5 */ /* last cacheline: 40 bytes */ }; struct shrink_control { gfp_t gfp_mask; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int nr_to_scan; /* 8 8 */ int nid; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ struct mem_cgroup * memcg; /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* sum members: 24, holes: 2, sum holes: 8 */ /* last cacheline: 32 bytes */ }; struct shrinker { long unsigned int (*count_objects)(struct shrinker *, struct shrink_control *); /* 0 8 */ long unsigned int (*scan_objects)(struct shrinker *, struct shrink_control *); /* 8 8 */ int seeks; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ long int batch; /* 24 8 */ long unsigned int flags; /* 32 8 */ struct list_head list; /* 40 16 */ atomic_long_t * nr_deferred; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 7 */ /* sum members: 60, holes: 1, sum holes: 4 */ }; struct vm_fault { unsigned int flags; /* 0 4 */ gfp_t gfp_mask; /* 4 4 */ long unsigned int pgoff; /* 8 8 */ void * virtual_address; /* 16 8 */ struct page * cow_page; /* 24 8 */ struct page * page; /* 32 8 */ long unsigned int max_pgoff; /* 40 8 */ pte_t * pte; /* 48 8 */ /* size: 56, cachelines: 1, members: 8 */ /* last cacheline: 56 bytes */ }; struct vm_event_state { long unsigned int event[59]; /* 0 472 */ /* --- cacheline 7 boundary (448 bytes) was 24 bytes ago --- */ /* size: 472, cachelines: 8, members: 1 */ /* last cacheline: 24 bytes */ }; struct semaphore { raw_spinlock_t lock; /* 0 4 */ unsigned int count; /* 4 4 */ struct list_head wait_list; /* 8 16 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct kernfs_elem_dir { long unsigned int subdirs; /* 0 8 */ struct rb_root children; /* 8 8 */ struct kernfs_root * root; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct kernfs_elem_symlink { struct kernfs_node * target_kn; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct kernfs_elem_attr { const struct kernfs_ops * ops; /* 0 8 */ struct kernfs_open_node * open; /* 8 8 */ loff_t size; /* 16 8 */ struct kernfs_node * notify_next; /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* last cacheline: 32 bytes */ }; struct kernfs_syscall_ops { int (*remount_fs)(struct kernfs_root *, int *, char *); /* 0 8 */ int (*show_options)(struct seq_file *, struct kernfs_root *); /* 8 8 */ int (*mkdir)(struct kernfs_node *, const char *, umode_t); /* 16 8 */ int (*rmdir)(struct kernfs_node *); /* 24 8 */ int (*rename)(struct kernfs_node *, struct kernfs_node *, const char *); /* 32 8 */ /* size: 40, cachelines: 1, members: 5 */ /* last cacheline: 40 bytes */ }; struct kobj_ns_type_operations { enum kobj_ns_type type; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ bool (*current_may_mount)(void); /* 8 8 */ void * (*grab_current_ns)(void); /* 16 8 */ const void * (*netlink_ns)(struct sock *); /* 24 8 */ const void * (*initial_ns)(void); /* 32 8 */ void (*drop_ns)(void *); /* 40 8 */ /* size: 48, cachelines: 1, members: 6 */ /* sum members: 44, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct kstat { u64 ino; /* 0 8 */ dev_t dev; /* 8 4 */ umode_t mode; /* 12 2 */ /* XXX 2 bytes hole, try to pack */ unsigned int nlink; /* 16 4 */ kuid_t uid; /* 20 4 */ kgid_t gid; /* 24 4 */ dev_t rdev; /* 28 4 */ loff_t size; /* 32 8 */ struct timespec atime; /* 40 16 */ struct timespec mtime; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct timespec ctime; /* 72 16 */ long unsigned int blksize; /* 88 8 */ long long unsigned int blocks; /* 96 8 */ /* size: 104, cachelines: 2, members: 13 */ /* sum members: 102, holes: 1, sum holes: 2 */ /* last cacheline: 40 bytes */ }; struct attribute { const char * name; /* 0 8 */ umode_t mode; /* 8 2 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 6 */ /* last cacheline: 16 bytes */ }; struct attribute_group { const char * name; /* 0 8 */ umode_t (*is_visible)(struct kobject *, struct attribute *, int); /* 8 8 */ umode_t (*is_bin_visible)(struct kobject *, struct bin_attribute *, int); /* 16 8 */ struct attribute * * attrs; /* 24 8 */ struct bin_attribute * * bin_attrs; /* 32 8 */ /* size: 40, cachelines: 1, members: 5 */ /* last cacheline: 40 bytes */ }; struct kobject { const char * name; /* 0 8 */ struct list_head entry; /* 8 16 */ struct kobject * parent; /* 24 8 */ struct kset * kset; /* 32 8 */ struct kobj_type * ktype; /* 40 8 */ struct kernfs_node * sd; /* 48 8 */ struct kref kref; /* 56 4 */ unsigned int state_initialized:1; /* 60:31 4 */ unsigned int state_in_sysfs:1; /* 60:30 4 */ unsigned int state_add_uevent_sent:1; /* 60:29 4 */ unsigned int state_remove_uevent_sent:1; /* 60:28 4 */ unsigned int uevent_suppress:1; /* 60:27 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 12 */ /* bit_padding: 27 bits */ }; struct bin_attribute { struct attribute attr; /* 0 16 */ /* XXX last struct has 6 bytes of padding */ size_t size; /* 16 8 */ void * private; /* 24 8 */ ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); /* 32 8 */ ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); /* 40 8 */ int (*mmap)(struct file *, struct kobject *, struct bin_attribute *, struct vm_area_struct *); /* 48 8 */ /* size: 56, cachelines: 1, members: 6 */ /* paddings: 1, sum paddings: 6 */ /* last cacheline: 56 bytes */ }; struct sysfs_ops { ssize_t (*show)(struct kobject *, struct attribute *, char *); /* 0 8 */ ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct kref { atomic_t refcount; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct kset { struct list_head list; /* 0 16 */ spinlock_t list_lock; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ struct kobject kobj; /* 24 64 */ /* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */ const struct kset_uevent_ops * uevent_ops; /* 88 8 */ /* size: 96, cachelines: 2, members: 4 */ /* sum members: 92, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct kobj_type { void (*release)(struct kobject *); /* 0 8 */ const struct sysfs_ops * sysfs_ops; /* 8 8 */ struct attribute * * default_attrs; /* 16 8 */ const struct kobj_ns_type_operations * (*child_ns_type)(struct kobject *); /* 24 8 */ const void * (*namespace)(struct kobject *); /* 32 8 */ /* size: 40, cachelines: 1, members: 5 */ /* last cacheline: 40 bytes */ }; struct kobj_uevent_env { char * argv[3]; /* 0 24 */ char * envp[32]; /* 24 256 */ /* --- cacheline 4 boundary (256 bytes) was 24 bytes ago --- */ int envp_idx; /* 280 4 */ char buf[2048]; /* 284 2048 */ /* --- cacheline 36 boundary (2304 bytes) was 28 bytes ago --- */ int buflen; /* 2332 4 */ /* size: 2336, cachelines: 37, members: 5 */ /* last cacheline: 32 bytes */ }; struct kset_uevent_ops { int ()(struct kset *, struct kobject *) *const filter; /* 0 8 */ const char * ()(struct kset *, struct kobject *) *const name; /* 8 8 */ int ()(struct kset *, struct kobject *, struct kobj_uevent_env *) *const uevent; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct klist_node { void * n_klist; /* 0 8 */ struct list_head n_node; /* 8 16 */ struct kref n_ref; /* 24 4 */ /* size: 32, cachelines: 1, members: 3 */ /* padding: 4 */ /* last cacheline: 32 bytes */ }; struct pm_message { int event; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct dev_pm_ops { int (*prepare)(struct device *); /* 0 8 */ void (*complete)(struct device *); /* 8 8 */ int (*suspend)(struct device *); /* 16 8 */ int (*resume)(struct device *); /* 24 8 */ int (*freeze)(struct device *); /* 32 8 */ int (*thaw)(struct device *); /* 40 8 */ int (*poweroff)(struct device *); /* 48 8 */ int (*restore)(struct device *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*suspend_late)(struct device *); /* 64 8 */ int (*resume_early)(struct device *); /* 72 8 */ int (*freeze_late)(struct device *); /* 80 8 */ int (*thaw_early)(struct device *); /* 88 8 */ int (*poweroff_late)(struct device *); /* 96 8 */ int (*restore_early)(struct device *); /* 104 8 */ int (*suspend_noirq)(struct device *); /* 112 8 */ int (*resume_noirq)(struct device *); /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ int (*freeze_noirq)(struct device *); /* 128 8 */ int (*thaw_noirq)(struct device *); /* 136 8 */ int (*poweroff_noirq)(struct device *); /* 144 8 */ int (*restore_noirq)(struct device *); /* 152 8 */ int (*runtime_suspend)(struct device *); /* 160 8 */ int (*runtime_resume)(struct device *); /* 168 8 */ int (*runtime_idle)(struct device *); /* 176 8 */ /* size: 184, cachelines: 3, members: 23 */ /* last cacheline: 56 bytes */ }; struct device { struct device * parent; /* 0 8 */ struct device_private * p; /* 8 8 */ struct kobject kobj; /* 16 64 */ /* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */ const char * init_name; /* 80 8 */ const struct device_type * type; /* 88 8 */ struct mutex mutex; /* 96 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ struct bus_type * bus; /* 136 8 */ struct device_driver * driver; /* 144 8 */ void * platform_data; /* 152 8 */ void * driver_data; /* 160 8 */ struct dev_pm_info power; /* 168 320 */ /* --- cacheline 7 boundary (448 bytes) was 40 bytes ago --- */ struct dev_pm_domain * pm_domain; /* 488 8 */ struct irq_domain * msi_domain; /* 496 8 */ struct list_head msi_list; /* 504 16 */ /* --- cacheline 8 boundary (512 bytes) was 8 bytes ago --- */ u64 * dma_mask; /* 520 8 */ u64 coherent_dma_mask; /* 528 8 */ long unsigned int dma_pfn_offset; /* 536 8 */ struct device_dma_parameters * dma_parms; /* 544 8 */ struct list_head dma_pools; /* 552 16 */ struct dma_coherent_mem * dma_mem; /* 568 8 */ /* --- cacheline 9 boundary (576 bytes) --- */ struct cma * cma_area; /* 576 8 */ struct dev_archdata archdata; /* 584 24 */ struct device_node * of_node; /* 608 8 */ struct fwnode_handle * fwnode; /* 616 8 */ dev_t devt; /* 624 4 */ u32 id; /* 628 4 */ spinlock_t devres_lock; /* 632 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 10 boundary (640 bytes) --- */ struct list_head devres_head; /* 640 16 */ struct klist_node knode_class; /* 656 32 */ /* XXX last struct has 4 bytes of padding */ struct class * class; /* 688 8 */ const struct attribute_group * * groups; /* 696 8 */ /* --- cacheline 11 boundary (704 bytes) --- */ void (*release)(struct device *); /* 704 8 */ struct iommu_group * iommu_group; /* 712 8 */ bool offline_disabled:1; /* 720: 7 1 */ bool offline:1; /* 720: 6 1 */ /* size: 728, cachelines: 12, members: 35 */ /* sum members: 717, holes: 1, sum holes: 4 */ /* padding: 7 */ /* paddings: 2, sum paddings: 8 */ /* bit_padding: 6 bits */ /* last cacheline: 24 bytes */ }; struct pm_subsys_data { spinlock_t lock; /* 0 4 */ unsigned int refcount; /* 4 4 */ struct list_head clock_list; /* 8 16 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct dev_pm_info { pm_message_t power_state; /* 0 4 */ unsigned int can_wakeup:1; /* 4:31 4 */ unsigned int async_suspend:1; /* 4:30 4 */ bool is_prepared:1; /* 4: 5 1 */ bool is_suspended:1; /* 4: 4 1 */ bool is_noirq_suspended:1; /* 4: 3 1 */ bool is_late_suspended:1; /* 4: 2 1 */ bool ignore_children:1; /* 4: 1 1 */ bool early_init:1; /* 4: 0 1 */ /* Bitfield combined with next fields */ bool direct_complete:1; /* 5: 7 1 */ /* XXX 7 bits hole, try to pack */ /* XXX 2 bytes hole, try to pack */ spinlock_t lock; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head entry; /* 16 16 */ struct completion completion; /* 32 32 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct wakeup_source * wakeup; /* 64 8 */ bool wakeup_path:1; /* 72: 7 1 */ bool syscore:1; /* 72: 6 1 */ bool no_pm_callbacks:1; /* 72: 5 1 */ /* XXX 5 bits hole, try to pack */ /* XXX 7 bytes hole, try to pack */ struct timer_list suspend_timer; /* 80 80 */ /* --- cacheline 2 boundary (128 bytes) was 32 bytes ago --- */ long unsigned int timer_expires; /* 160 8 */ struct work_struct work; /* 168 32 */ /* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */ wait_queue_head_t wait_queue; /* 200 24 */ struct wake_irq * wakeirq; /* 224 8 */ atomic_t usage_count; /* 232 4 */ atomic_t child_count; /* 236 4 */ unsigned int disable_depth:3; /* 240:29 4 */ unsigned int idle_notification:1; /* 240:28 4 */ unsigned int request_pending:1; /* 240:27 4 */ unsigned int deferred_resume:1; /* 240:26 4 */ unsigned int run_wake:1; /* 240:25 4 */ unsigned int runtime_auto:1; /* 240:24 4 */ unsigned int no_callbacks:1; /* 240:23 4 */ unsigned int irq_safe:1; /* 240:22 4 */ unsigned int use_autosuspend:1; /* 240:21 4 */ unsigned int timer_autosuspends:1; /* 240:20 4 */ unsigned int memalloc_noio:1; /* 240:19 4 */ /* XXX 19 bits hole, try to pack */ enum rpm_request request; /* 244 4 */ enum rpm_status runtime_status; /* 248 4 */ int runtime_error; /* 252 4 */ /* --- cacheline 4 boundary (256 bytes) --- */ int autosuspend_delay; /* 256 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int last_busy; /* 264 8 */ long unsigned int active_jiffies; /* 272 8 */ long unsigned int suspended_jiffies; /* 280 8 */ long unsigned int accounting_timestamp; /* 288 8 */ struct pm_subsys_data * subsys_data; /* 296 8 */ void (*set_latency_tolerance)(struct device *, s32); /* 304 8 */ struct dev_pm_qos * qos; /* 312 8 */ /* --- cacheline 5 boundary (320 bytes) --- */ /* size: 320, cachelines: 5, members: 46 */ /* sum members: 303, holes: 4, sum holes: 17 */ /* bit holes: 3, sum bit holes: 31 bits */ }; struct wakeup_source { const char * name; /* 0 8 */ struct list_head entry; /* 8 16 */ spinlock_t lock; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ struct wake_irq * wakeirq; /* 32 8 */ struct timer_list timer; /* 40 80 */ /* --- cacheline 1 boundary (64 bytes) was 56 bytes ago --- */ long unsigned int timer_expires; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ ktime_t total_time; /* 128 8 */ ktime_t max_time; /* 136 8 */ ktime_t last_time; /* 144 8 */ ktime_t start_prevent_time; /* 152 8 */ ktime_t prevent_sleep_time; /* 160 8 */ long unsigned int event_count; /* 168 8 */ long unsigned int active_count; /* 176 8 */ long unsigned int relax_count; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ long unsigned int expire_count; /* 192 8 */ long unsigned int wakeup_count; /* 200 8 */ bool active:1; /* 208: 7 1 */ bool autosleep_enabled:1; /* 208: 6 1 */ /* size: 216, cachelines: 4, members: 18 */ /* sum members: 205, holes: 1, sum holes: 4 */ /* padding: 7 */ /* bit_padding: 6 bits */ /* last cacheline: 24 bytes */ }; struct dev_pm_domain { struct dev_pm_ops ops; /* 0 184 */ /* --- cacheline 2 boundary (128 bytes) was 56 bytes ago --- */ void (*detach)(struct device *, bool); /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ int (*activate)(struct device *); /* 192 8 */ void (*sync)(struct device *); /* 200 8 */ void (*dismiss)(struct device *); /* 208 8 */ /* size: 216, cachelines: 4, members: 5 */ /* last cacheline: 24 bytes */ }; struct dev_archdata { struct dma_map_ops * dma_ops; /* 0 8 */ void * iommu; /* 8 8 */ bool dma_coherent; /* 16 1 */ /* size: 24, cachelines: 1, members: 3 */ /* padding: 7 */ /* last cacheline: 24 bytes */ }; struct bus_type { const char * name; /* 0 8 */ const char * dev_name; /* 8 8 */ struct device * dev_root; /* 16 8 */ struct device_attribute * dev_attrs; /* 24 8 */ const struct attribute_group * * bus_groups; /* 32 8 */ const struct attribute_group * * dev_groups; /* 40 8 */ const struct attribute_group * * drv_groups; /* 48 8 */ int (*match)(struct device *, struct device_driver *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*uevent)(struct device *, struct kobj_uevent_env *); /* 64 8 */ int (*probe)(struct device *); /* 72 8 */ int (*remove)(struct device *); /* 80 8 */ void (*shutdown)(struct device *); /* 88 8 */ int (*online)(struct device *); /* 96 8 */ int (*offline)(struct device *); /* 104 8 */ int (*suspend)(struct device *, pm_message_t); /* 112 8 */ int (*resume)(struct device *); /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ const struct dev_pm_ops * pm; /* 128 8 */ const struct iommu_ops * iommu_ops; /* 136 8 */ struct subsys_private * p; /* 144 8 */ struct lock_class_key lock_key; /* 152 0 */ /* size: 152, cachelines: 3, members: 20 */ /* last cacheline: 24 bytes */ }; struct device_attribute { struct attribute attr; /* 0 16 */ /* XXX last struct has 6 bytes of padding */ ssize_t (*show)(struct device *, struct device_attribute *, char *); /* 16 8 */ ssize_t (*store)(struct device *, struct device_attribute *, const char *, size_t); /* 24 8 */ /* size: 32, cachelines: 1, members: 3 */ /* paddings: 1, sum paddings: 6 */ /* last cacheline: 32 bytes */ }; struct device_driver { const char * name; /* 0 8 */ struct bus_type * bus; /* 8 8 */ struct module * owner; /* 16 8 */ const char * mod_name; /* 24 8 */ bool suppress_bind_attrs; /* 32 1 */ /* XXX 3 bytes hole, try to pack */ enum probe_type probe_type; /* 36 4 */ const struct of_device_id * of_match_table; /* 40 8 */ const struct acpi_device_id * acpi_match_table; /* 48 8 */ int (*probe)(struct device *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*remove)(struct device *); /* 64 8 */ void (*shutdown)(struct device *); /* 72 8 */ int (*suspend)(struct device *, pm_message_t); /* 80 8 */ int (*resume)(struct device *); /* 88 8 */ const struct attribute_group * * groups; /* 96 8 */ const struct dev_pm_ops * pm; /* 104 8 */ struct driver_private * p; /* 112 8 */ /* size: 120, cachelines: 2, members: 16 */ /* sum members: 117, holes: 1, sum holes: 3 */ /* last cacheline: 56 bytes */ }; struct device_type { const char * name; /* 0 8 */ const struct attribute_group * * groups; /* 8 8 */ int (*uevent)(struct device *, struct kobj_uevent_env *); /* 16 8 */ char * (*devnode)(struct device *, umode_t *, kuid_t *, kgid_t *); /* 24 8 */ void (*release)(struct device *); /* 32 8 */ const struct dev_pm_ops * pm; /* 40 8 */ /* size: 48, cachelines: 1, members: 6 */ /* last cacheline: 48 bytes */ }; struct module { enum module_state state; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head list; /* 8 16 */ char name[56]; /* 24 56 */ /* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */ struct module_kobject mkobj; /* 80 96 */ /* --- cacheline 2 boundary (128 bytes) was 48 bytes ago --- */ struct module_attribute * modinfo_attrs; /* 176 8 */ const char * version; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ const char * srcversion; /* 192 8 */ struct kobject * holders_dir; /* 200 8 */ const struct kernel_symbol * syms; /* 208 8 */ const long unsigned int * crcs; /* 216 8 */ unsigned int num_syms; /* 224 4 */ /* XXX 4 bytes hole, try to pack */ struct mutex param_lock; /* 232 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 4 boundary (256 bytes) was 16 bytes ago --- */ struct kernel_param * kp; /* 272 8 */ unsigned int num_kp; /* 280 4 */ unsigned int num_gpl_syms; /* 284 4 */ const struct kernel_symbol * gpl_syms; /* 288 8 */ const long unsigned int * gpl_crcs; /* 296 8 */ bool sig_ok; /* 304 1 */ bool async_probe_requested; /* 305 1 */ /* XXX 6 bytes hole, try to pack */ const struct kernel_symbol * gpl_future_syms; /* 312 8 */ /* --- cacheline 5 boundary (320 bytes) --- */ const long unsigned int * gpl_future_crcs; /* 320 8 */ unsigned int num_gpl_future_syms; /* 328 4 */ unsigned int num_exentries; /* 332 4 */ struct exception_table_entry * extable; /* 336 8 */ int (*init)(void); /* 344 8 */ /* XXX 32 bytes hole, try to pack */ /* --- cacheline 6 boundary (384 bytes) --- */ struct module_layout core_layout; /* 384 80 */ /* --- cacheline 7 boundary (448 bytes) was 16 bytes ago --- */ struct module_layout init_layout; /* 464 80 */ /* --- cacheline 8 boundary (512 bytes) was 32 bytes ago --- */ struct mod_arch_specific arch; /* 544 0 */ unsigned int taints; /* 544 4 */ unsigned int num_bugs; /* 548 4 */ struct list_head bug_list; /* 552 16 */ struct bug_entry * bug_table; /* 568 8 */ /* --- cacheline 9 boundary (576 bytes) --- */ struct mod_kallsyms * kallsyms; /* 576 8 */ struct mod_kallsyms core_kallsyms; /* 584 24 */ struct module_sect_attrs * sect_attrs; /* 608 8 */ struct module_notes_attrs * notes_attrs; /* 616 8 */ char * args; /* 624 8 */ void * percpu; /* 632 8 */ /* --- cacheline 10 boundary (640 bytes) --- */ unsigned int percpu_size; /* 640 4 */ unsigned int num_tracepoints; /* 644 4 */ const struct tracepoint * * tracepoints_ptrs; /* 648 8 */ unsigned int num_trace_bprintk_fmt; /* 656 4 */ /* XXX 4 bytes hole, try to pack */ const char * * trace_bprintk_fmt_start; /* 664 8 */ struct trace_event_call * * trace_events; /* 672 8 */ unsigned int num_trace_events; /* 680 4 */ /* XXX 4 bytes hole, try to pack */ struct trace_enum_map * * trace_enums; /* 688 8 */ unsigned int num_trace_enums; /* 696 4 */ unsigned int num_ftrace_callsites; /* 700 4 */ /* --- cacheline 11 boundary (704 bytes) --- */ long unsigned int * ftrace_callsites; /* 704 8 */ struct list_head source_list; /* 712 16 */ struct list_head target_list; /* 728 16 */ void (*exit)(void); /* 744 8 */ atomic_t refcnt; /* 752 4 */ /* size: 768, cachelines: 12, members: 53 */ /* sum members: 702, holes: 6, sum holes: 54 */ /* padding: 12 */ /* paddings: 1, sum paddings: 4 */ }; struct class { const char * name; /* 0 8 */ struct module * owner; /* 8 8 */ struct class_attribute * class_attrs; /* 16 8 */ const struct attribute_group * * dev_groups; /* 24 8 */ struct kobject * dev_kobj; /* 32 8 */ int (*dev_uevent)(struct device *, struct kobj_uevent_env *); /* 40 8 */ char * (*devnode)(struct device *, umode_t *); /* 48 8 */ void (*class_release)(struct class *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ void (*dev_release)(struct device *); /* 64 8 */ int (*suspend)(struct device *, pm_message_t); /* 72 8 */ int (*resume)(struct device *); /* 80 8 */ const struct kobj_ns_type_operations * ns_type; /* 88 8 */ const void * (*namespace)(struct device *); /* 96 8 */ const struct dev_pm_ops * pm; /* 104 8 */ struct subsys_private * p; /* 112 8 */ /* size: 120, cachelines: 2, members: 15 */ /* last cacheline: 56 bytes */ }; struct class_attribute { struct attribute attr; /* 0 16 */ /* XXX last struct has 6 bytes of padding */ ssize_t (*show)(struct class *, struct class_attribute *, char *); /* 16 8 */ ssize_t (*store)(struct class *, struct class_attribute *, const char *, size_t); /* 24 8 */ /* size: 32, cachelines: 1, members: 3 */ /* paddings: 1, sum paddings: 6 */ /* last cacheline: 32 bytes */ }; struct device_dma_parameters { unsigned int max_segment_size; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int segment_boundary_mask; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* sum members: 12, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct hlist_bl_head { struct hlist_bl_node * first; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct hlist_bl_node { struct hlist_bl_node * next; /* 0 8 */ struct hlist_bl_node * * pprev; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct lockref { union { __u64 lock_count; /* 8 */ struct { spinlock_t lock; /* 0 4 */ int count; /* 4 4 */ }; /* 8 */ }; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct qstr { union { struct { u32 hash; /* 0 4 */ u32 len; /* 4 4 */ }; /* 8 */ u64 hash_len; /* 8 */ }; /* 0 8 */ const unsigned char * name; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct dentry { unsigned int d_flags; /* 0 4 */ seqcount_t d_seq; /* 4 4 */ struct hlist_bl_node d_hash; /* 8 16 */ struct dentry * d_parent; /* 24 8 */ struct qstr d_name; /* 32 16 */ struct inode * d_inode; /* 48 8 */ unsigned char d_iname[32]; /* 56 32 */ /* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */ struct lockref d_lockref; /* 88 8 */ const struct dentry_operations * d_op; /* 96 8 */ struct super_block * d_sb; /* 104 8 */ long unsigned int d_time; /* 112 8 */ void * d_fsdata; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ struct list_head d_lru; /* 128 16 */ struct list_head d_child; /* 144 16 */ struct list_head d_subdirs; /* 160 16 */ union { struct hlist_node d_alias; /* 16 */ struct callback_head d_rcu; /* 16 */ } d_u; /* 176 16 */ /* --- cacheline 3 boundary (192 bytes) --- */ /* size: 192, cachelines: 3, members: 16 */ }; struct inode { umode_t i_mode; /* 0 2 */ short unsigned int i_opflags; /* 2 2 */ kuid_t i_uid; /* 4 4 */ kgid_t i_gid; /* 8 4 */ unsigned int i_flags; /* 12 4 */ struct posix_acl * i_acl; /* 16 8 */ struct posix_acl * i_default_acl; /* 24 8 */ const struct inode_operations * i_op; /* 32 8 */ struct super_block * i_sb; /* 40 8 */ struct address_space * i_mapping; /* 48 8 */ void * i_security; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ long unsigned int i_ino; /* 64 8 */ union { unsigned intconst i_nlink; /* 4 */ unsigned int __i_nlink; /* 4 */ }; /* 72 4 */ dev_t i_rdev; /* 76 4 */ loff_t i_size; /* 80 8 */ struct timespec i_atime; /* 88 16 */ struct timespec i_mtime; /* 104 16 */ struct timespec i_ctime; /* 120 16 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ spinlock_t i_lock; /* 136 4 */ short unsigned int i_bytes; /* 140 2 */ /* XXX 2 bytes hole, try to pack */ unsigned int i_blkbits; /* 144 4 */ /* XXX 4 bytes hole, try to pack */ blkcnt_t i_blocks; /* 152 8 */ long unsigned int i_state; /* 160 8 */ struct mutex i_mutex; /* 168 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */ long unsigned int dirtied_when; /* 208 8 */ long unsigned int dirtied_time_when; /* 216 8 */ struct hlist_node i_hash; /* 224 16 */ struct list_head i_io_list; /* 240 16 */ /* --- cacheline 4 boundary (256 bytes) --- */ struct bdi_writeback * i_wb; /* 256 8 */ int i_wb_frn_winner; /* 264 4 */ u16 i_wb_frn_avg_time; /* 268 2 */ u16 i_wb_frn_history; /* 270 2 */ struct list_head i_lru; /* 272 16 */ struct list_head i_sb_list; /* 288 16 */ union { struct hlist_head i_dentry; /* 8 */ struct callback_head i_rcu; /* 16 */ }; /* 304 16 */ /* --- cacheline 5 boundary (320 bytes) --- */ u64 i_version; /* 320 8 */ atomic_t i_count; /* 328 4 */ atomic_t i_dio_count; /* 332 4 */ atomic_t i_writecount; /* 336 4 */ /* XXX 4 bytes hole, try to pack */ const struct file_operations * i_fop; /* 344 8 */ struct file_lock_context * i_flctx; /* 352 8 */ struct address_space i_data; /* 360 152 */ /* --- cacheline 8 boundary (512 bytes) --- */ struct list_head i_devices; /* 512 16 */ union { struct pipe_inode_info * i_pipe; /* 8 */ struct block_device * i_bdev; /* 8 */ struct cdev * i_cdev; /* 8 */ char * i_link; /* 8 */ }; /* 528 8 */ __u32 i_generation; /* 536 4 */ __u32 i_fsnotify_mask; /* 540 4 */ struct hlist_head i_fsnotify_marks; /* 544 8 */ void * i_private; /* 552 8 */ /* size: 560, cachelines: 9, members: 48 */ /* sum members: 550, holes: 3, sum holes: 10 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 48 bytes */ }; struct dentry_operations { int (*d_revalidate)(struct dentry *, unsigned int); /* 0 8 */ int (*d_weak_revalidate)(struct dentry *, unsigned int); /* 8 8 */ int (*d_hash)(const struct dentry *, struct qstr *); /* 16 8 */ int (*d_compare)(const struct dentry *, const struct dentry *, unsigned int, const char *, const struct qstr *); /* 24 8 */ int (*d_delete)(const struct dentry *); /* 32 8 */ void (*d_release)(struct dentry *); /* 40 8 */ void (*d_prune)(struct dentry *); /* 48 8 */ void (*d_iput)(struct dentry *, struct inode *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ char * (*d_dname)(struct dentry *, char *, int); /* 64 8 */ struct vfsmount * (*d_automount)(struct path *); /* 72 8 */ int (*d_manage)(struct dentry *, bool); /* 80 8 */ struct inode * (*d_select_inode)(struct dentry *, unsigned int); /* 88 8 */ /* size: 128, cachelines: 2, members: 12 */ /* padding: 32 */ }; struct super_block { struct list_head s_list; /* 0 16 */ dev_t s_dev; /* 16 4 */ unsigned char s_blocksize_bits; /* 20 1 */ /* XXX 3 bytes hole, try to pack */ long unsigned int s_blocksize; /* 24 8 */ loff_t s_maxbytes; /* 32 8 */ struct file_system_type * s_type; /* 40 8 */ const struct super_operations * s_op; /* 48 8 */ const struct dquot_operations * dq_op; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ const struct quotactl_ops * s_qcop; /* 64 8 */ const struct export_operations * s_export_op; /* 72 8 */ long unsigned int s_flags; /* 80 8 */ long unsigned int s_iflags; /* 88 8 */ long unsigned int s_magic; /* 96 8 */ struct dentry * s_root; /* 104 8 */ struct rw_semaphore s_umount; /* 112 40 */ /* --- cacheline 2 boundary (128 bytes) was 24 bytes ago --- */ int s_count; /* 152 4 */ atomic_t s_active; /* 156 4 */ void * s_security; /* 160 8 */ const struct xattr_handler * * s_xattr; /* 168 8 */ struct hlist_bl_head s_anon; /* 176 8 */ struct list_head s_mounts; /* 184 16 */ /* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */ struct block_device * s_bdev; /* 200 8 */ struct backing_dev_info * s_bdi; /* 208 8 */ struct mtd_info * s_mtd; /* 216 8 */ struct hlist_node s_instances; /* 224 16 */ unsigned int s_quota_types; /* 240 4 */ /* XXX 4 bytes hole, try to pack */ struct quota_info s_dquot; /* 248 352 */ /* --- cacheline 9 boundary (576 bytes) was 24 bytes ago --- */ struct sb_writers s_writers; /* 600 464 */ /* --- cacheline 16 boundary (1024 bytes) was 40 bytes ago --- */ char s_id[32]; /* 1064 32 */ /* --- cacheline 17 boundary (1088 bytes) was 8 bytes ago --- */ u8 s_uuid[16]; /* 1096 16 */ void * s_fs_info; /* 1112 8 */ unsigned int s_max_links; /* 1120 4 */ fmode_t s_mode; /* 1124 4 */ u32 s_time_gran; /* 1128 4 */ /* XXX 4 bytes hole, try to pack */ struct mutex s_vfs_rename_mutex; /* 1136 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 18 boundary (1152 bytes) was 24 bytes ago --- */ char * s_subtype; /* 1176 8 */ char * s_options; /* 1184 8 */ const struct dentry_operations * s_d_op; /* 1192 8 */ int cleancache_poolid; /* 1200 4 */ /* XXX 4 bytes hole, try to pack */ struct shrinker s_shrink; /* 1208 64 */ /* --- cacheline 19 boundary (1216 bytes) was 56 bytes ago --- */ atomic_long_t s_remove_count; /* 1272 8 */ /* --- cacheline 20 boundary (1280 bytes) --- */ int s_readonly_remount; /* 1280 4 */ /* XXX 4 bytes hole, try to pack */ struct workqueue_struct * s_dio_done_wq; /* 1288 8 */ struct hlist_head s_pins; /* 1296 8 */ /* XXX 104 bytes hole, try to pack */ /* --- cacheline 22 boundary (1408 bytes) --- */ struct list_lru s_dentry_lru; /* 1408 24 */ /* XXX 104 bytes hole, try to pack */ /* --- cacheline 24 boundary (1536 bytes) --- */ struct list_lru s_inode_lru; /* 1536 24 */ struct callback_head rcu; /* 1560 16 */ struct work_struct destroy_work; /* 1576 32 */ /* --- cacheline 25 boundary (1600 bytes) was 8 bytes ago --- */ struct mutex s_sync_lock; /* 1608 40 */ /* XXX last struct has 4 bytes of padding */ int s_stack_depth; /* 1648 4 */ /* XXX 12 bytes hole, try to pack */ /* --- cacheline 26 boundary (1664 bytes) --- */ spinlock_t s_inode_list_lock; /* 1664 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head s_inodes; /* 1672 16 */ /* size: 1792, cachelines: 28, members: 52 */ /* sum members: 1445, holes: 9, sum holes: 243 */ /* padding: 104 */ /* paddings: 2, sum paddings: 8 */ }; struct path { struct vfsmount * mnt; /* 0 8 */ struct dentry * dentry; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct list_lru_one { struct list_head list; /* 0 16 */ long int nr_items; /* 16 8 */ /* size: 24, cachelines: 1, members: 2 */ /* last cacheline: 24 bytes */ }; struct list_lru_memcg { struct list_lru_one * lru[0]; /* 0 0 */ /* size: 0, cachelines: 0, members: 1 */ }; struct list_lru_node { spinlock_t lock; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct list_lru_one lru; /* 8 24 */ struct list_lru_memcg * memcg_lrus; /* 32 8 */ /* size: 128, cachelines: 2, members: 3 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* padding: 88 */ }; struct list_lru { struct list_lru_node * node; /* 0 8 */ struct list_head list; /* 8 16 */ /* size: 24, cachelines: 1, members: 2 */ /* last cacheline: 24 bytes */ }; struct radix_tree_node { unsigned int path; /* 0 4 */ unsigned int count; /* 4 4 */ union { struct { struct radix_tree_node * parent; /* 8 8 */ void * private_data; /* 16 8 */ }; /* 16 */ struct callback_head callback_head; /* 16 */ }; /* 8 16 */ struct list_head private_list; /* 24 16 */ void * slots[64]; /* 40 512 */ /* --- cacheline 8 boundary (512 bytes) was 40 bytes ago --- */ long unsigned int tags[3][1]; /* 552 24 */ /* --- cacheline 9 boundary (576 bytes) --- */ /* size: 576, cachelines: 9, members: 6 */ }; struct radix_tree_root { unsigned int height; /* 0 4 */ gfp_t gfp_mask; /* 4 4 */ struct radix_tree_node * rnode; /* 8 8 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; struct fiemap_extent { __u64 fe_logical; /* 0 8 */ __u64 fe_physical; /* 8 8 */ __u64 fe_length; /* 16 8 */ __u64 fe_reserved64[2]; /* 24 16 */ __u32 fe_flags; /* 40 4 */ __u32 fe_reserved[3]; /* 44 12 */ /* size: 56, cachelines: 1, members: 6 */ /* last cacheline: 56 bytes */ }; struct bio { struct bio * bi_next; /* 0 8 */ struct block_device * bi_bdev; /* 8 8 */ unsigned int bi_flags; /* 16 4 */ int bi_error; /* 20 4 */ long unsigned int bi_rw; /* 24 8 */ struct bvec_iter bi_iter; /* 32 24 */ unsigned int bi_phys_segments; /* 56 4 */ unsigned int bi_seg_front_size; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ unsigned int bi_seg_back_size; /* 64 4 */ atomic_t __bi_remaining; /* 68 4 */ bio_end_io_t * bi_end_io; /* 72 8 */ void * bi_private; /* 80 8 */ struct io_context * bi_ioc; /* 88 8 */ struct cgroup_subsys_state * bi_css; /* 96 8 */ union { struct bio_integrity_payload * bi_integrity; /* 8 */ }; /* 104 8 */ short unsigned int bi_vcnt; /* 112 2 */ short unsigned int bi_max_vecs; /* 114 2 */ atomic_t __bi_cnt; /* 116 4 */ struct bio_vec * bi_io_vec; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ struct bio_set * bi_pool; /* 128 8 */ struct bio_vec bi_inline_vecs[0]; /* 136 0 */ /* size: 136, cachelines: 3, members: 21 */ /* last cacheline: 8 bytes */ }; struct bio_vec { struct page * bv_page; /* 0 8 */ unsigned int bv_len; /* 8 4 */ unsigned int bv_offset; /* 12 4 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; struct bvec_iter { sector_t bi_sector; /* 0 8 */ unsigned int bi_size; /* 8 4 */ unsigned int bi_idx; /* 12 4 */ unsigned int bi_bvec_done; /* 16 4 */ /* size: 24, cachelines: 1, members: 4 */ /* padding: 4 */ /* last cacheline: 24 bytes */ }; struct bio_integrity_payload { struct bio * bip_bio; /* 0 8 */ struct bvec_iter bip_iter; /* 8 24 */ /* XXX last struct has 4 bytes of padding */ bio_end_io_t * bip_end_io; /* 32 8 */ short unsigned int bip_slab; /* 40 2 */ short unsigned int bip_vcnt; /* 42 2 */ short unsigned int bip_max_vcnt; /* 44 2 */ short unsigned int bip_flags; /* 46 2 */ struct work_struct bip_work; /* 48 32 */ /* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */ struct bio_vec * bip_vec; /* 80 8 */ struct bio_vec bip_inline_vecs[0]; /* 88 0 */ /* size: 88, cachelines: 2, members: 10 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 24 bytes */ }; struct block_device { dev_t bd_dev; /* 0 4 */ int bd_openers; /* 4 4 */ struct inode * bd_inode; /* 8 8 */ struct super_block * bd_super; /* 16 8 */ struct mutex bd_mutex; /* 24 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 1 boundary (64 bytes) --- */ struct list_head bd_inodes; /* 64 16 */ void * bd_claiming; /* 80 8 */ void * bd_holder; /* 88 8 */ int bd_holders; /* 96 4 */ bool bd_write_holder; /* 100 1 */ /* XXX 3 bytes hole, try to pack */ struct list_head bd_holder_disks; /* 104 16 */ struct block_device * bd_contains; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ unsigned int bd_block_size; /* 128 4 */ /* XXX 4 bytes hole, try to pack */ struct hd_struct * bd_part; /* 136 8 */ unsigned int bd_part_count; /* 144 4 */ int bd_invalidated; /* 148 4 */ struct gendisk * bd_disk; /* 152 8 */ struct request_queue * bd_queue; /* 160 8 */ struct list_head bd_list; /* 168 16 */ long unsigned int bd_private; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ int bd_fsfreeze_count; /* 192 4 */ /* XXX 4 bytes hole, try to pack */ struct mutex bd_fsfreeze_mutex; /* 200 40 */ /* XXX last struct has 4 bytes of padding */ /* size: 240, cachelines: 4, members: 22 */ /* sum members: 229, holes: 3, sum holes: 11 */ /* paddings: 2, sum paddings: 8 */ /* last cacheline: 48 bytes */ }; struct bio_set { struct kmem_cache * bio_slab; /* 0 8 */ unsigned int front_pad; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ mempool_t * bio_pool; /* 16 8 */ mempool_t * bvec_pool; /* 24 8 */ mempool_t * bio_integrity_pool; /* 32 8 */ mempool_t * bvec_integrity_pool; /* 40 8 */ spinlock_t rescue_lock; /* 48 4 */ /* XXX 4 bytes hole, try to pack */ struct bio_list rescue_list; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct work_struct rescue_work; /* 72 32 */ struct workqueue_struct * rescue_workqueue; /* 104 8 */ /* size: 112, cachelines: 2, members: 10 */ /* sum members: 104, holes: 2, sum holes: 8 */ /* last cacheline: 48 bytes */ }; struct delayed_call { void (*fn)(void *); /* 0 8 */ void * arg; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct kiocb { struct file * ki_filp; /* 0 8 */ loff_t ki_pos; /* 8 8 */ void (*ki_complete)(struct kiocb *, long int, long int); /* 16 8 */ void * private; /* 24 8 */ int ki_flags; /* 32 4 */ /* size: 40, cachelines: 1, members: 5 */ /* padding: 4 */ /* last cacheline: 40 bytes */ }; struct iattr { unsigned int ia_valid; /* 0 4 */ umode_t ia_mode; /* 4 2 */ /* XXX 2 bytes hole, try to pack */ kuid_t ia_uid; /* 8 4 */ kgid_t ia_gid; /* 12 4 */ loff_t ia_size; /* 16 8 */ struct timespec ia_atime; /* 24 16 */ struct timespec ia_mtime; /* 40 16 */ struct timespec ia_ctime; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct file * ia_file; /* 72 8 */ /* size: 80, cachelines: 2, members: 9 */ /* sum members: 78, holes: 1, sum holes: 2 */ /* last cacheline: 16 bytes */ }; struct dquot { struct hlist_node dq_hash; /* 0 16 */ struct list_head dq_inuse; /* 16 16 */ struct list_head dq_free; /* 32 16 */ struct list_head dq_dirty; /* 48 16 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct mutex dq_lock; /* 64 40 */ /* XXX last struct has 4 bytes of padding */ atomic_t dq_count; /* 104 4 */ /* XXX 4 bytes hole, try to pack */ wait_queue_head_t dq_wait_unused; /* 112 24 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ struct super_block * dq_sb; /* 136 8 */ struct kqid dq_id; /* 144 8 */ loff_t dq_off; /* 152 8 */ long unsigned int dq_flags; /* 160 8 */ struct mem_dqblk dq_dqb; /* 168 72 */ /* --- cacheline 3 boundary (192 bytes) was 48 bytes ago --- */ /* size: 240, cachelines: 4, members: 12 */ /* sum members: 236, holes: 1, sum holes: 4 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 48 bytes */ }; struct kqid { union { kuid_t uid; /* 4 */ kgid_t gid; /* 4 */ kprojid_t projid; /* 4 */ }; /* 0 4 */ enum quota_type type; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct mem_dqblk { qsize_t dqb_bhardlimit; /* 0 8 */ qsize_t dqb_bsoftlimit; /* 8 8 */ qsize_t dqb_curspace; /* 16 8 */ qsize_t dqb_rsvspace; /* 24 8 */ qsize_t dqb_ihardlimit; /* 32 8 */ qsize_t dqb_isoftlimit; /* 40 8 */ qsize_t dqb_curinodes; /* 48 8 */ time_t dqb_btime; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ time_t dqb_itime; /* 64 8 */ /* size: 72, cachelines: 2, members: 9 */ /* last cacheline: 8 bytes */ }; struct mem_dqinfo { struct quota_format_type * dqi_format; /* 0 8 */ int dqi_fmt_id; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head dqi_dirty_list; /* 16 16 */ long unsigned int dqi_flags; /* 32 8 */ unsigned int dqi_bgrace; /* 40 4 */ unsigned int dqi_igrace; /* 44 4 */ qsize_t dqi_max_spc_limit; /* 48 8 */ qsize_t dqi_max_ino_limit; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ void * dqi_priv; /* 64 8 */ /* size: 72, cachelines: 2, members: 9 */ /* sum members: 68, holes: 1, sum holes: 4 */ /* last cacheline: 8 bytes */ }; struct quota_format_type { int qf_fmt_id; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ const struct quota_format_ops * qf_ops; /* 8 8 */ struct module * qf_owner; /* 16 8 */ struct quota_format_type * qf_next; /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct dqstats { int stat[8]; /* 0 32 */ struct percpu_counter counter[8]; /* 32 320 */ /* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */ /* size: 352, cachelines: 6, members: 2 */ /* last cacheline: 32 bytes */ }; struct quota_format_ops { int (*check_quota_file)(struct super_block *, int); /* 0 8 */ int (*read_file_info)(struct super_block *, int); /* 8 8 */ int (*write_file_info)(struct super_block *, int); /* 16 8 */ int (*free_file_info)(struct super_block *, int); /* 24 8 */ int (*read_dqblk)(struct dquot *); /* 32 8 */ int (*commit_dqblk)(struct dquot *); /* 40 8 */ int (*release_dqblk)(struct dquot *); /* 48 8 */ /* size: 56, cachelines: 1, members: 7 */ /* last cacheline: 56 bytes */ }; struct dquot_operations { int (*write_dquot)(struct dquot *); /* 0 8 */ struct dquot * (*alloc_dquot)(struct super_block *, int); /* 8 8 */ void (*destroy_dquot)(struct dquot *); /* 16 8 */ int (*acquire_dquot)(struct dquot *); /* 24 8 */ int (*release_dquot)(struct dquot *); /* 32 8 */ int (*mark_dirty)(struct dquot *); /* 40 8 */ int (*write_info)(struct super_block *, int); /* 48 8 */ qsize_t * (*get_reserved_space)(struct inode *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*get_projid)(struct inode *, kprojid_t *); /* 64 8 */ /* size: 72, cachelines: 2, members: 9 */ /* last cacheline: 8 bytes */ }; struct qc_dqblk { int d_fieldmask; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ u64 d_spc_hardlimit; /* 8 8 */ u64 d_spc_softlimit; /* 16 8 */ u64 d_ino_hardlimit; /* 24 8 */ u64 d_ino_softlimit; /* 32 8 */ u64 d_space; /* 40 8 */ u64 d_ino_count; /* 48 8 */ s64 d_ino_timer; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ s64 d_spc_timer; /* 64 8 */ int d_ino_warns; /* 72 4 */ int d_spc_warns; /* 76 4 */ u64 d_rt_spc_hardlimit; /* 80 8 */ u64 d_rt_spc_softlimit; /* 88 8 */ u64 d_rt_space; /* 96 8 */ s64 d_rt_spc_timer; /* 104 8 */ int d_rt_spc_warns; /* 112 4 */ /* size: 120, cachelines: 2, members: 16 */ /* sum members: 112, holes: 1, sum holes: 4 */ /* padding: 4 */ /* last cacheline: 56 bytes */ }; struct qc_type_state { unsigned int flags; /* 0 4 */ unsigned int spc_timelimit; /* 4 4 */ unsigned int ino_timelimit; /* 8 4 */ unsigned int rt_spc_timelimit; /* 12 4 */ unsigned int spc_warnlimit; /* 16 4 */ unsigned int ino_warnlimit; /* 20 4 */ unsigned int rt_spc_warnlimit; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ long long unsigned int ino; /* 32 8 */ blkcnt_t blocks; /* 40 8 */ blkcnt_t nextents; /* 48 8 */ /* size: 56, cachelines: 1, members: 10 */ /* sum members: 52, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct qc_state { unsigned int s_incoredqs; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct qc_type_state s_state[3]; /* 8 168 */ /* --- cacheline 2 boundary (128 bytes) was 48 bytes ago --- */ /* size: 176, cachelines: 3, members: 2 */ /* sum members: 172, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct qc_info { int i_fieldmask; /* 0 4 */ unsigned int i_flags; /* 4 4 */ unsigned int i_spc_timelimit; /* 8 4 */ unsigned int i_ino_timelimit; /* 12 4 */ unsigned int i_rt_spc_timelimit; /* 16 4 */ unsigned int i_spc_warnlimit; /* 20 4 */ unsigned int i_ino_warnlimit; /* 24 4 */ unsigned int i_rt_spc_warnlimit; /* 28 4 */ /* size: 32, cachelines: 1, members: 8 */ /* last cacheline: 32 bytes */ }; struct quotactl_ops { int (*quota_on)(struct super_block *, int, int, struct path *); /* 0 8 */ int (*quota_off)(struct super_block *, int); /* 8 8 */ int (*quota_enable)(struct super_block *, unsigned int); /* 16 8 */ int (*quota_disable)(struct super_block *, unsigned int); /* 24 8 */ int (*quota_sync)(struct super_block *, int); /* 32 8 */ int (*set_info)(struct super_block *, int, struct qc_info *); /* 40 8 */ int (*get_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *); /* 48 8 */ int (*set_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*get_state)(struct super_block *, struct qc_state *); /* 64 8 */ int (*rm_xquota)(struct super_block *, unsigned int); /* 72 8 */ /* size: 80, cachelines: 2, members: 10 */ /* last cacheline: 16 bytes */ }; struct quota_info { unsigned int flags; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct mutex dqio_mutex; /* 8 40 */ /* XXX last struct has 4 bytes of padding */ struct mutex dqonoff_mutex; /* 48 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */ struct inode * files[3]; /* 88 24 */ struct mem_dqinfo info[3]; /* 112 216 */ /* --- cacheline 5 boundary (320 bytes) was 8 bytes ago --- */ const struct quota_format_ops * ops[3]; /* 328 24 */ /* size: 352, cachelines: 6, members: 6 */ /* sum members: 348, holes: 1, sum holes: 4 */ /* paddings: 2, sum paddings: 8 */ /* last cacheline: 32 bytes */ }; struct address_space_operations { int (*writepage)(struct page *, struct writeback_control *); /* 0 8 */ int (*readpage)(struct file *, struct page *); /* 8 8 */ int (*writepages)(struct address_space *, struct writeback_control *); /* 16 8 */ int (*set_page_dirty)(struct page *); /* 24 8 */ int (*readpages)(struct file *, struct address_space *, struct list_head *, unsigned int); /* 32 8 */ int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page * *, void * *); /* 40 8 */ int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *); /* 48 8 */ sector_t (*bmap)(struct address_space *, sector_t); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ void (*invalidatepage)(struct page *, unsigned int, unsigned int); /* 64 8 */ int (*releasepage)(struct page *, gfp_t); /* 72 8 */ void (*freepage)(struct page *); /* 80 8 */ ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *, loff_t); /* 88 8 */ int (*migratepage)(struct address_space *, struct page *, struct page *, enum migrate_mode); /* 96 8 */ int (*launder_page)(struct page *); /* 104 8 */ int (*is_partially_uptodate)(struct page *, long unsigned int, long unsigned int); /* 112 8 */ void (*is_dirty_writeback)(struct page *, bool *, bool *); /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ int (*error_remove_page)(struct address_space *, struct page *); /* 128 8 */ int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *); /* 136 8 */ void (*swap_deactivate)(struct file *); /* 144 8 */ /* size: 152, cachelines: 3, members: 19 */ /* last cacheline: 24 bytes */ }; struct writeback_control { long int nr_to_write; /* 0 8 */ long int pages_skipped; /* 8 8 */ loff_t range_start; /* 16 8 */ loff_t range_end; /* 24 8 */ enum writeback_sync_modes sync_mode; /* 32 4 */ unsigned int for_kupdate:1; /* 36:31 4 */ unsigned int for_background:1; /* 36:30 4 */ unsigned int tagged_writepages:1; /* 36:29 4 */ unsigned int for_reclaim:1; /* 36:28 4 */ unsigned int range_cyclic:1; /* 36:27 4 */ unsigned int for_sync:1; /* 36:26 4 */ /* XXX 26 bits hole, try to pack */ struct bdi_writeback * wb; /* 40 8 */ struct inode * inode; /* 48 8 */ int wb_id; /* 56 4 */ int wb_lcand_id; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ int wb_tcand_id; /* 64 4 */ /* XXX 4 bytes hole, try to pack */ size_t wb_bytes; /* 72 8 */ size_t wb_lcand_bytes; /* 80 8 */ size_t wb_tcand_bytes; /* 88 8 */ /* size: 96, cachelines: 2, members: 19 */ /* sum members: 92, holes: 1, sum holes: 4 */ /* bit holes: 1, sum bit holes: 26 bits */ /* last cacheline: 32 bytes */ }; struct iov_iter { int type; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ size_t iov_offset; /* 8 8 */ size_t count; /* 16 8 */ union { const struct iovec * iov; /* 8 */ const struct kvec * kvec; /* 8 */ const struct bio_vec * bvec; /* 8 */ }; /* 24 8 */ long unsigned int nr_segs; /* 32 8 */ /* size: 40, cachelines: 1, members: 5 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct swap_info_struct { long unsigned int flags; /* 0 8 */ short int prio; /* 8 2 */ /* XXX 6 bytes hole, try to pack */ struct plist_node list; /* 16 40 */ struct plist_node avail_list; /* 56 40 */ /* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */ signed char type; /* 96 1 */ /* XXX 3 bytes hole, try to pack */ unsigned int max; /* 100 4 */ unsigned char * swap_map; /* 104 8 */ struct swap_cluster_info * cluster_info; /* 112 8 */ struct swap_cluster_info free_cluster_head; /* 120 4 */ struct swap_cluster_info free_cluster_tail; /* 124 4 */ /* --- cacheline 2 boundary (128 bytes) --- */ unsigned int lowest_bit; /* 128 4 */ unsigned int highest_bit; /* 132 4 */ unsigned int pages; /* 136 4 */ unsigned int inuse_pages; /* 140 4 */ unsigned int cluster_next; /* 144 4 */ unsigned int cluster_nr; /* 148 4 */ struct percpu_cluster * percpu_cluster; /* 152 8 */ struct swap_extent * curr_swap_extent; /* 160 8 */ struct swap_extent first_swap_extent; /* 168 40 */ /* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */ struct block_device * bdev; /* 208 8 */ struct file * swap_file; /* 216 8 */ unsigned int old_block_size; /* 224 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int * frontswap_map; /* 232 8 */ atomic_t frontswap_pages; /* 240 4 */ spinlock_t lock; /* 244 4 */ struct work_struct discard_work; /* 248 32 */ /* --- cacheline 4 boundary (256 bytes) was 24 bytes ago --- */ struct swap_cluster_info discard_cluster_head; /* 280 4 */ struct swap_cluster_info discard_cluster_tail; /* 284 4 */ /* size: 288, cachelines: 5, members: 28 */ /* sum members: 275, holes: 3, sum holes: 13 */ /* last cacheline: 32 bytes */ }; struct hd_struct { sector_t start_sect; /* 0 8 */ sector_t nr_sects; /* 8 8 */ seqcount_t nr_sects_seq; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ sector_t alignment_offset; /* 24 8 */ unsigned int discard_alignment; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ struct device __dev; /* 40 728 */ /* XXX last struct has 7 bytes of padding */ /* --- cacheline 12 boundary (768 bytes) --- */ struct kobject * holder_dir; /* 768 8 */ int policy; /* 776 4 */ int partno; /* 780 4 */ struct partition_meta_info * info; /* 784 8 */ long unsigned int stamp; /* 792 8 */ atomic_t in_flight[2]; /* 800 8 */ struct disk_stats * dkstats; /* 808 8 */ struct percpu_ref ref; /* 816 56 */ /* --- cacheline 13 boundary (832 bytes) was 40 bytes ago --- */ struct callback_head callback_head; /* 872 16 */ /* size: 888, cachelines: 14, members: 15 */ /* sum members: 880, holes: 2, sum holes: 8 */ /* paddings: 1, sum paddings: 7 */ /* last cacheline: 56 bytes */ }; struct gendisk { int major; /* 0 4 */ int first_minor; /* 4 4 */ int minors; /* 8 4 */ char disk_name[32]; /* 12 32 */ /* XXX 4 bytes hole, try to pack */ char * (*devnode)(struct gendisk *, umode_t *); /* 48 8 */ unsigned int events; /* 56 4 */ unsigned int async_events; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct disk_part_tbl * part_tbl; /* 64 8 */ struct hd_struct part0; /* 72 888 */ /* --- cacheline 15 boundary (960 bytes) --- */ const struct block_device_operations * fops; /* 960 8 */ struct request_queue * queue; /* 968 8 */ void * private_data; /* 976 8 */ int flags; /* 984 4 */ /* XXX 4 bytes hole, try to pack */ struct device * driverfs_dev; /* 992 8 */ struct kobject * slave_dir; /* 1000 8 */ struct timer_rand_state * random; /* 1008 8 */ atomic_t sync_io; /* 1016 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 16 boundary (1024 bytes) --- */ struct disk_events * ev; /* 1024 8 */ struct kobject integrity_kobj; /* 1032 64 */ /* --- cacheline 17 boundary (1088 bytes) was 8 bytes ago --- */ int node_id; /* 1096 4 */ /* XXX 4 bytes hole, try to pack */ struct badblocks * bb; /* 1104 8 */ /* size: 1112, cachelines: 18, members: 21 */ /* sum members: 1096, holes: 4, sum holes: 16 */ /* last cacheline: 24 bytes */ }; struct request_queue { struct list_head queue_head; /* 0 16 */ struct request * last_merge; /* 16 8 */ struct elevator_queue * elevator; /* 24 8 */ int nr_rqs[2]; /* 32 8 */ int nr_rqs_elvpriv; /* 40 4 */ /* XXX 4 bytes hole, try to pack */ struct request_list root_rl; /* 48 96 */ /* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */ request_fn_proc * request_fn; /* 144 8 */ make_request_fn * make_request_fn; /* 152 8 */ prep_rq_fn * prep_rq_fn; /* 160 8 */ unprep_rq_fn * unprep_rq_fn; /* 168 8 */ softirq_done_fn * softirq_done_fn; /* 176 8 */ rq_timed_out_fn * rq_timed_out_fn; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ dma_drain_needed_fn * dma_drain_needed; /* 192 8 */ lld_busy_fn * lld_busy_fn; /* 200 8 */ struct blk_mq_ops * mq_ops; /* 208 8 */ unsigned int * mq_map; /* 216 8 */ struct blk_mq_ctx * queue_ctx; /* 224 8 */ unsigned int nr_queues; /* 232 4 */ /* XXX 4 bytes hole, try to pack */ struct blk_mq_hw_ctx * * queue_hw_ctx; /* 240 8 */ unsigned int nr_hw_queues; /* 248 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 4 boundary (256 bytes) --- */ sector_t end_sector; /* 256 8 */ struct request * boundary_rq; /* 264 8 */ struct delayed_work delay_work; /* 272 128 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 6 boundary (384 bytes) was 16 bytes ago --- */ struct backing_dev_info backing_dev_info; /* 400 976 */ /* --- cacheline 21 boundary (1344 bytes) was 32 bytes ago --- */ void * queuedata; /* 1376 8 */ long unsigned int queue_flags; /* 1384 8 */ int id; /* 1392 4 */ gfp_t bounce_gfp; /* 1396 4 */ spinlock_t __queue_lock; /* 1400 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 22 boundary (1408 bytes) --- */ spinlock_t * queue_lock; /* 1408 8 */ struct kobject kobj; /* 1416 64 */ /* --- cacheline 23 boundary (1472 bytes) was 8 bytes ago --- */ struct kobject mq_kobj; /* 1480 64 */ /* --- cacheline 24 boundary (1536 bytes) was 8 bytes ago --- */ struct blk_integrity integrity; /* 1544 16 */ struct device * dev; /* 1560 8 */ int rpm_status; /* 1568 4 */ unsigned int nr_pending; /* 1572 4 */ long unsigned int nr_requests; /* 1576 8 */ unsigned int nr_congestion_on; /* 1584 4 */ unsigned int nr_congestion_off; /* 1588 4 */ unsigned int nr_batching; /* 1592 4 */ unsigned int dma_drain_size; /* 1596 4 */ /* --- cacheline 25 boundary (1600 bytes) --- */ void * dma_drain_buffer; /* 1600 8 */ unsigned int dma_pad_mask; /* 1608 4 */ unsigned int dma_alignment; /* 1612 4 */ struct blk_queue_tag * queue_tags; /* 1616 8 */ struct list_head tag_busy_list; /* 1624 16 */ unsigned int nr_sorted; /* 1640 4 */ unsigned int in_flight[2]; /* 1644 8 */ unsigned int request_fn_active; /* 1652 4 */ unsigned int rq_timeout; /* 1656 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 26 boundary (1664 bytes) --- */ struct timer_list timeout; /* 1664 80 */ /* --- cacheline 27 boundary (1728 bytes) was 16 bytes ago --- */ struct work_struct timeout_work; /* 1744 32 */ struct list_head timeout_list; /* 1776 16 */ /* --- cacheline 28 boundary (1792 bytes) --- */ struct list_head icq_list; /* 1792 16 */ long unsigned int blkcg_pols[1]; /* 1808 8 */ struct blkcg_gq * root_blkg; /* 1816 8 */ struct list_head blkg_list; /* 1824 16 */ struct queue_limits limits; /* 1840 96 */ /* --- cacheline 30 boundary (1920 bytes) was 16 bytes ago --- */ unsigned int sg_timeout; /* 1936 4 */ unsigned int sg_reserved_size; /* 1940 4 */ int node; /* 1944 4 */ /* XXX 4 bytes hole, try to pack */ struct blk_trace * blk_trace; /* 1952 8 */ unsigned int flush_flags; /* 1960 4 */ unsigned int flush_not_queueable:1; /* 1964:31 4 */ /* XXX 31 bits hole, try to pack */ struct blk_flush_queue * fq; /* 1968 8 */ struct list_head requeue_list; /* 1976 16 */ /* --- cacheline 31 boundary (1984 bytes) was 8 bytes ago --- */ spinlock_t requeue_lock; /* 1992 4 */ /* XXX 4 bytes hole, try to pack */ struct work_struct requeue_work; /* 2000 32 */ struct mutex sysfs_lock; /* 2032 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 32 boundary (2048 bytes) was 24 bytes ago --- */ int bypass_depth; /* 2072 4 */ atomic_t mq_freeze_depth; /* 2076 4 */ bsg_job_fn * bsg_job_fn; /* 2080 8 */ int bsg_job_size; /* 2088 4 */ /* XXX 4 bytes hole, try to pack */ struct bsg_class_device bsg_dev; /* 2096 48 */ /* --- cacheline 33 boundary (2112 bytes) was 32 bytes ago --- */ struct throtl_data * td; /* 2144 8 */ struct callback_head callback_head; /* 2152 16 */ wait_queue_head_t mq_freeze_wq; /* 2168 24 */ /* --- cacheline 34 boundary (2176 bytes) was 16 bytes ago --- */ struct percpu_ref q_usage_counter; /* 2192 56 */ /* --- cacheline 35 boundary (2240 bytes) was 8 bytes ago --- */ struct list_head all_q_node; /* 2248 16 */ struct blk_mq_tag_set * tag_set; /* 2264 8 */ struct list_head tag_set_list; /* 2272 16 */ struct bio_set * bio_split; /* 2288 8 */ bool mq_sysfs_init_done; /* 2296 1 */ /* size: 2304, cachelines: 36, members: 83 */ /* sum members: 2265, holes: 8, sum holes: 32 */ /* bit holes: 1, sum bit holes: 31 bits */ /* padding: 7 */ /* paddings: 2, sum paddings: 8 */ }; struct inode_operations { struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int); /* 0 8 */ const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *); /* 8 8 */ int (*permission)(struct inode *, int); /* 16 8 */ struct posix_acl * (*get_acl)(struct inode *, int); /* 24 8 */ int (*readlink)(struct dentry *, char *, int); /* 32 8 */ int (*create)(struct inode *, struct dentry *, umode_t, bool); /* 40 8 */ int (*link)(struct dentry *, struct inode *, struct dentry *); /* 48 8 */ int (*unlink)(struct inode *, struct dentry *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*symlink)(struct inode *, struct dentry *, const char *); /* 64 8 */ int (*mkdir)(struct inode *, struct dentry *, umode_t); /* 72 8 */ int (*rmdir)(struct inode *, struct dentry *); /* 80 8 */ int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t); /* 88 8 */ int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *); /* 96 8 */ int (*rename2)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int); /* 104 8 */ int (*setattr)(struct dentry *, struct iattr *); /* 112 8 */ int (*getattr)(struct vfsmount *, struct dentry *, struct kstat *); /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ int (*setxattr)(struct dentry *, const char *, const void *, size_t, int); /* 128 8 */ ssize_t (*getxattr)(struct dentry *, const char *, void *, size_t); /* 136 8 */ ssize_t (*listxattr)(struct dentry *, char *, size_t); /* 144 8 */ int (*removexattr)(struct dentry *, const char *); /* 152 8 */ int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64); /* 160 8 */ int (*update_time)(struct inode *, struct timespec *, int); /* 168 8 */ int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t, int *); /* 176 8 */ int (*tmpfile)(struct inode *, struct dentry *, umode_t); /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ int (*set_acl)(struct inode *, struct posix_acl *, int); /* 192 8 */ /* size: 256, cachelines: 4, members: 25 */ /* padding: 56 */ }; struct bdi_writeback { struct backing_dev_info * bdi; /* 0 8 */ long unsigned int state; /* 8 8 */ long unsigned int last_old_flush; /* 16 8 */ struct list_head b_dirty; /* 24 16 */ struct list_head b_io; /* 40 16 */ struct list_head b_more_io; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct list_head b_dirty_time; /* 72 16 */ spinlock_t list_lock; /* 88 4 */ /* XXX 4 bytes hole, try to pack */ struct percpu_counter stat[4]; /* 96 160 */ /* --- cacheline 4 boundary (256 bytes) --- */ struct bdi_writeback_congested * congested; /* 256 8 */ long unsigned int bw_time_stamp; /* 264 8 */ long unsigned int dirtied_stamp; /* 272 8 */ long unsigned int written_stamp; /* 280 8 */ long unsigned int write_bandwidth; /* 288 8 */ long unsigned int avg_write_bandwidth; /* 296 8 */ long unsigned int dirty_ratelimit; /* 304 8 */ long unsigned int balanced_dirty_ratelimit; /* 312 8 */ /* --- cacheline 5 boundary (320 bytes) --- */ struct fprop_local_percpu completions; /* 320 48 */ int dirty_exceeded; /* 368 4 */ spinlock_t work_lock; /* 372 4 */ struct list_head work_list; /* 376 16 */ /* --- cacheline 6 boundary (384 bytes) was 8 bytes ago --- */ struct delayed_work dwork; /* 392 128 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 8 boundary (512 bytes) was 8 bytes ago --- */ struct list_head bdi_node; /* 520 16 */ struct percpu_ref refcnt; /* 536 56 */ /* --- cacheline 9 boundary (576 bytes) was 16 bytes ago --- */ struct fprop_local_percpu memcg_completions; /* 592 48 */ /* --- cacheline 10 boundary (640 bytes) --- */ struct cgroup_subsys_state * memcg_css; /* 640 8 */ struct cgroup_subsys_state * blkcg_css; /* 648 8 */ struct list_head memcg_node; /* 656 16 */ struct list_head blkcg_node; /* 672 16 */ union { struct work_struct release_work; /* 32 */ struct callback_head rcu; /* 16 */ }; /* 688 32 */ /* --- cacheline 11 boundary (704 bytes) was 16 bytes ago --- */ /* size: 720, cachelines: 12, members: 30 */ /* sum members: 716, holes: 1, sum holes: 4 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 16 bytes */ }; struct file_operations { struct module * owner; /* 0 8 */ loff_t (*llseek)(struct file *, loff_t, int); /* 8 8 */ ssize_t (*read)(struct file *, char *, size_t, loff_t *); /* 16 8 */ ssize_t (*write)(struct file *, const char *, size_t, loff_t *); /* 24 8 */ ssize_t (*read_iter)(struct kiocb *, struct iov_iter *); /* 32 8 */ ssize_t (*write_iter)(struct kiocb *, struct iov_iter *); /* 40 8 */ int (*iterate)(struct file *, struct dir_context *); /* 48 8 */ unsigned int (*poll)(struct file *, struct poll_table_struct *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ long int (*unlocked_ioctl)(struct file *, unsigned int, long unsigned int); /* 64 8 */ long int (*compat_ioctl)(struct file *, unsigned int, long unsigned int); /* 72 8 */ int (*mmap)(struct file *, struct vm_area_struct *); /* 80 8 */ int (*open)(struct inode *, struct file *); /* 88 8 */ int (*flush)(struct file *, fl_owner_t); /* 96 8 */ int (*release)(struct inode *, struct file *); /* 104 8 */ int (*fsync)(struct file *, loff_t, loff_t, int); /* 112 8 */ int (*aio_fsync)(struct kiocb *, int); /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ int (*fasync)(int, struct file *, int); /* 128 8 */ int (*lock)(struct file *, int, struct file_lock *); /* 136 8 */ ssize_t (*sendpage)(struct file *, struct page *, int, size_t, loff_t *, int); /* 144 8 */ long unsigned int (*get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); /* 152 8 */ int (*check_flags)(int); /* 160 8 */ int (*flock)(struct file *, int, struct file_lock *); /* 168 8 */ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); /* 176 8 */ ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ int (*setlease)(struct file *, long int, struct file_lock * *, void * *); /* 192 8 */ long int (*fallocate)(struct file *, int, loff_t, loff_t); /* 200 8 */ void (*show_fdinfo)(struct seq_file *, struct file *); /* 208 8 */ ssize_t (*copy_file_range)(struct file *, loff_t, struct file *, loff_t, size_t, unsigned int); /* 216 8 */ int (*clone_file_range)(struct file *, loff_t, struct file *, loff_t, u64); /* 224 8 */ ssize_t (*dedupe_file_range)(struct file *, u64, u64, struct file *, u64); /* 232 8 */ /* size: 240, cachelines: 4, members: 30 */ /* last cacheline: 48 bytes */ }; struct file_lock_context { spinlock_t flc_lock; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head flc_flock; /* 8 16 */ struct list_head flc_posix; /* 24 16 */ struct list_head flc_lease; /* 40 16 */ /* size: 56, cachelines: 1, members: 4 */ /* sum members: 52, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct fown_struct { rwlock_t lock; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct pid * pid; /* 8 8 */ enum pid_type pid_type; /* 16 4 */ kuid_t uid; /* 20 4 */ kuid_t euid; /* 24 4 */ int signum; /* 28 4 */ /* size: 32, cachelines: 1, members: 6 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct file_ra_state { long unsigned int start; /* 0 8 */ unsigned int size; /* 8 4 */ unsigned int async_size; /* 12 4 */ unsigned int ra_pages; /* 16 4 */ unsigned int mmap_miss; /* 20 4 */ loff_t prev_pos; /* 24 8 */ /* size: 32, cachelines: 1, members: 6 */ /* last cacheline: 32 bytes */ }; struct file_lock_operations { void (*fl_copy_lock)(struct file_lock *, struct file_lock *); /* 0 8 */ void (*fl_release_private)(struct file_lock *); /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct file_lock { struct file_lock * fl_next; /* 0 8 */ struct list_head fl_list; /* 8 16 */ struct hlist_node fl_link; /* 24 16 */ struct list_head fl_block; /* 40 16 */ fl_owner_t fl_owner; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ unsigned int fl_flags; /* 64 4 */ unsigned char fl_type; /* 68 1 */ /* XXX 3 bytes hole, try to pack */ unsigned int fl_pid; /* 72 4 */ int fl_link_cpu; /* 76 4 */ struct pid * fl_nspid; /* 80 8 */ wait_queue_head_t fl_wait; /* 88 24 */ struct file * fl_file; /* 112 8 */ loff_t fl_start; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ loff_t fl_end; /* 128 8 */ struct fasync_struct * fl_fasync; /* 136 8 */ long unsigned int fl_break_time; /* 144 8 */ long unsigned int fl_downgrade_time; /* 152 8 */ const struct file_lock_operations * fl_ops; /* 160 8 */ const struct lock_manager_operations * fl_lmops; /* 168 8 */ union { struct nfs_lock_info nfs_fl; /* 32 */ struct nfs4_lock_info nfs4_fl; /* 8 */ struct { struct list_head link; /* 176 16 */ int state; /* 192 4 */ } afs; /* 24 */ } fl_u; /* 176 32 */ /* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */ /* size: 208, cachelines: 4, members: 20 */ /* sum members: 205, holes: 1, sum holes: 3 */ /* last cacheline: 16 bytes */ }; struct lock_manager_operations { int (*lm_compare_owner)(struct file_lock *, struct file_lock *); /* 0 8 */ long unsigned int (*lm_owner_key)(struct file_lock *); /* 8 8 */ fl_owner_t (*lm_get_owner)(fl_owner_t); /* 16 8 */ void (*lm_put_owner)(fl_owner_t); /* 24 8 */ void (*lm_notify)(struct file_lock *); /* 32 8 */ int (*lm_grant)(struct file_lock *, int); /* 40 8 */ bool (*lm_break)(struct file_lock *); /* 48 8 */ int (*lm_change)(struct file_lock *, int, struct list_head *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ void (*lm_setup)(struct file_lock *, void * *); /* 64 8 */ /* size: 72, cachelines: 2, members: 9 */ /* last cacheline: 8 bytes */ }; struct nfs_lock_info { u32 state; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct nlm_lockowner * owner; /* 8 8 */ struct list_head list; /* 16 16 */ /* size: 32, cachelines: 1, members: 3 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct nfs4_lock_info { struct nfs4_lock_state * owner; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct fasync_struct { spinlock_t fa_lock; /* 0 4 */ int magic; /* 4 4 */ int fa_fd; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct fasync_struct * fa_next; /* 16 8 */ struct file * fa_file; /* 24 8 */ struct callback_head fa_rcu; /* 32 16 */ /* size: 48, cachelines: 1, members: 6 */ /* sum members: 44, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct sb_writers { int frozen; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ wait_queue_head_t wait_unfrozen; /* 8 24 */ struct percpu_rw_semaphore rw_sem[3]; /* 32 432 */ /* --- cacheline 7 boundary (448 bytes) was 16 bytes ago --- */ /* size: 464, cachelines: 8, members: 3 */ /* sum members: 460, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct file_system_type { const char * name; /* 0 8 */ int fs_flags; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct dentry * (*mount)(struct file_system_type *, int, const char *, void *); /* 16 8 */ void (*kill_sb)(struct super_block *); /* 24 8 */ struct module * owner; /* 32 8 */ struct file_system_type * next; /* 40 8 */ struct hlist_head fs_supers; /* 48 8 */ struct lock_class_key s_lock_key; /* 56 0 */ struct lock_class_key s_umount_key; /* 56 0 */ struct lock_class_key s_vfs_rename_key; /* 56 0 */ struct lock_class_key s_writers_key[3]; /* 56 0 */ struct lock_class_key i_lock_key; /* 56 0 */ struct lock_class_key i_mutex_key; /* 56 0 */ struct lock_class_key i_mutex_dir_key; /* 56 0 */ /* size: 56, cachelines: 1, members: 14 */ /* sum members: 52, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct super_operations { struct inode * (*alloc_inode)(struct super_block *); /* 0 8 */ void (*destroy_inode)(struct inode *); /* 8 8 */ void (*dirty_inode)(struct inode *, int); /* 16 8 */ int (*write_inode)(struct inode *, struct writeback_control *); /* 24 8 */ int (*drop_inode)(struct inode *); /* 32 8 */ void (*evict_inode)(struct inode *); /* 40 8 */ void (*put_super)(struct super_block *); /* 48 8 */ int (*sync_fs)(struct super_block *, int); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*freeze_super)(struct super_block *); /* 64 8 */ int (*freeze_fs)(struct super_block *); /* 72 8 */ int (*thaw_super)(struct super_block *); /* 80 8 */ int (*unfreeze_fs)(struct super_block *); /* 88 8 */ int (*statfs)(struct dentry *, struct kstatfs *); /* 96 8 */ int (*remount_fs)(struct super_block *, int *, char *); /* 104 8 */ void (*umount_begin)(struct super_block *); /* 112 8 */ int (*show_options)(struct seq_file *, struct dentry *); /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ int (*show_devname)(struct seq_file *, struct dentry *); /* 128 8 */ int (*show_path)(struct seq_file *, struct dentry *); /* 136 8 */ int (*show_stats)(struct seq_file *, struct dentry *); /* 144 8 */ ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); /* 152 8 */ ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); /* 160 8 */ struct dquot * * (*get_dquots)(struct inode *); /* 168 8 */ int (*bdev_try_to_free_page)(struct super_block *, struct page *, gfp_t); /* 176 8 */ long int (*nr_cached_objects)(struct super_block *, struct shrink_control *); /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ long int (*free_cached_objects)(struct super_block *, struct shrink_control *); /* 192 8 */ /* size: 200, cachelines: 4, members: 25 */ /* last cacheline: 8 bytes */ }; struct export_operations { int (*encode_fh)(struct inode *, __u32 *, int *, struct inode *); /* 0 8 */ struct dentry * (*fh_to_dentry)(struct super_block *, struct fid *, int, int); /* 8 8 */ struct dentry * (*fh_to_parent)(struct super_block *, struct fid *, int, int); /* 16 8 */ int (*get_name)(struct dentry *, char *, struct dentry *); /* 24 8 */ struct dentry * (*get_parent)(struct dentry *); /* 32 8 */ int (*commit_metadata)(struct inode *); /* 40 8 */ int (*get_uuid)(struct super_block *, u8 *, u32 *, u64 *); /* 48 8 */ int (*map_blocks)(struct inode *, loff_t, u64, struct iomap *, bool, u32 *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*commit_blocks)(struct inode *, struct iomap *, int, struct iattr *); /* 64 8 */ /* size: 72, cachelines: 2, members: 9 */ /* last cacheline: 8 bytes */ }; struct fiemap_extent_info { unsigned int fi_flags; /* 0 4 */ unsigned int fi_extents_mapped; /* 4 4 */ unsigned int fi_extents_max; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct fiemap_extent * fi_extents_start; /* 16 8 */ /* size: 24, cachelines: 1, members: 4 */ /* sum members: 20, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; struct dir_context { filldir_tconst actor; /* 0 8 */ loff_t pos; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct poll_table_struct { poll_queue_proc _qproc; /* 0 8 */ long unsigned int _key; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct kstatfs { long int f_type; /* 0 8 */ long int f_bsize; /* 8 8 */ u64 f_blocks; /* 16 8 */ u64 f_bfree; /* 24 8 */ u64 f_bavail; /* 32 8 */ u64 f_files; /* 40 8 */ u64 f_ffree; /* 48 8 */ __kernel_fsid_t f_fsid; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ long int f_namelen; /* 64 8 */ long int f_frsize; /* 72 8 */ long int f_flags; /* 80 8 */ long int f_spare[4]; /* 88 32 */ /* size: 120, cachelines: 2, members: 12 */ /* last cacheline: 56 bytes */ }; struct disk_stats { long unsigned int sectors[2]; /* 0 16 */ long unsigned int ios[2]; /* 16 16 */ long unsigned int merges[2]; /* 32 16 */ long unsigned int ticks[2]; /* 48 16 */ /* --- cacheline 1 boundary (64 bytes) --- */ long unsigned int io_ticks; /* 64 8 */ long unsigned int time_in_queue; /* 72 8 */ /* size: 80, cachelines: 2, members: 6 */ /* last cacheline: 16 bytes */ }; struct partition_meta_info { char uuid[37]; /* 0 37 */ u8 volname[64]; /* 37 64 */ /* --- cacheline 1 boundary (64 bytes) was 37 bytes ago --- */ /* size: 101, cachelines: 2, members: 2 */ /* last cacheline: 37 bytes */ }; struct disk_part_tbl { struct callback_head callback_head; /* 0 16 */ int len; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ struct hd_struct * last_lookup; /* 24 8 */ struct hd_struct * part[0]; /* 32 0 */ /* size: 32, cachelines: 1, members: 4 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct blk_integrity { struct blk_integrity_profile * profile; /* 0 8 */ unsigned char flags; /* 8 1 */ unsigned char tuple_size; /* 9 1 */ unsigned char interval_exp; /* 10 1 */ unsigned char tag_size; /* 11 1 */ /* size: 16, cachelines: 1, members: 5 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct blk_integrity_profile { integrity_processing_fn * generate_fn; /* 0 8 */ integrity_processing_fn * verify_fn; /* 8 8 */ const char * name; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct block_device_operations { int (*open)(struct block_device *, fmode_t); /* 0 8 */ void (*release)(struct gendisk *, fmode_t); /* 8 8 */ int (*rw_page)(struct block_device *, sector_t, struct page *, int); /* 16 8 */ int (*ioctl)(struct block_device *, fmode_t, unsigned int, long unsigned int); /* 24 8 */ int (*compat_ioctl)(struct block_device *, fmode_t, unsigned int, long unsigned int); /* 32 8 */ long int (*direct_access)(struct block_device *, sector_t, void * *, pfn_t *); /* 40 8 */ unsigned int (*check_events)(struct gendisk *, unsigned int); /* 48 8 */ int (*media_changed)(struct gendisk *); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ void (*unlock_native_capacity)(struct gendisk *); /* 64 8 */ int (*revalidate_disk)(struct gendisk *); /* 72 8 */ int (*getgeo)(struct block_device *, struct hd_geometry *); /* 80 8 */ void (*swap_slot_free_notify)(struct block_device *, long unsigned int); /* 88 8 */ struct module * owner; /* 96 8 */ const struct pr_ops * pr_ops; /* 104 8 */ /* size: 112, cachelines: 2, members: 14 */ /* last cacheline: 48 bytes */ }; struct exception_table_entry { long unsigned int insn; /* 0 8 */ long unsigned int fixup; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct static_key { atomic_t enabled; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct static_key_true { struct static_key key; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct static_key_false { struct static_key key; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct fprop_global { struct percpu_counter events; /* 0 40 */ unsigned int period; /* 40 4 */ seqcount_t sequence; /* 44 4 */ /* size: 48, cachelines: 1, members: 3 */ /* last cacheline: 48 bytes */ }; struct fprop_local_percpu { struct percpu_counter events; /* 0 40 */ unsigned int period; /* 40 4 */ raw_spinlock_t lock; /* 44 4 */ /* size: 48, cachelines: 1, members: 3 */ /* last cacheline: 48 bytes */ }; struct bdi_writeback_congested { long unsigned int state; /* 0 8 */ atomic_t refcnt; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct backing_dev_info * bdi; /* 16 8 */ int blkcg_id; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ struct rb_node rb_node; /* 32 24 */ /* size: 56, cachelines: 1, members: 5 */ /* sum members: 48, holes: 2, sum holes: 8 */ /* last cacheline: 56 bytes */ }; struct mempool_s { spinlock_t lock; /* 0 4 */ int min_nr; /* 4 4 */ int curr_nr; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ void * * elements; /* 16 8 */ void * pool_data; /* 24 8 */ mempool_alloc_t * alloc; /* 32 8 */ mempool_free_t * free; /* 40 8 */ wait_queue_head_t wait; /* 48 24 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ /* size: 72, cachelines: 2, members: 8 */ /* sum members: 68, holes: 1, sum holes: 4 */ /* last cacheline: 8 bytes */ }; struct io_cq { struct request_queue * q; /* 0 8 */ struct io_context * ioc; /* 8 8 */ union { struct list_head q_node; /* 16 */ struct kmem_cache * __rcu_icq_cache; /* 8 */ }; /* 16 16 */ union { struct hlist_node ioc_node; /* 16 */ struct callback_head __rcu_head; /* 16 */ }; /* 32 16 */ unsigned int flags; /* 48 4 */ /* size: 56, cachelines: 1, members: 5 */ /* padding: 4 */ /* last cacheline: 56 bytes */ }; struct bsg_class_device { struct device * class_dev; /* 0 8 */ struct device * parent; /* 8 8 */ int minor; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ struct request_queue * queue; /* 24 8 */ struct kref ref; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ void (*release)(struct device *); /* 40 8 */ /* size: 48, cachelines: 1, members: 6 */ /* sum members: 40, holes: 2, sum holes: 8 */ /* last cacheline: 48 bytes */ }; struct request { struct list_head queuelist; /* 0 16 */ union { struct call_single_data csd; /* 32 */ long unsigned int fifo_time; /* 8 */ }; /* 16 32 */ struct request_queue * q; /* 48 8 */ struct blk_mq_ctx * mq_ctx; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ u64 cmd_flags; /* 64 8 */ unsigned int cmd_type; /* 72 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int atomic_flags; /* 80 8 */ int cpu; /* 88 4 */ unsigned int __data_len; /* 92 4 */ sector_t __sector; /* 96 8 */ struct bio * bio; /* 104 8 */ struct bio * biotail; /* 112 8 */ union { struct hlist_node hash; /* 16 */ struct list_head ipi_list; /* 16 */ }; /* 120 16 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ union { struct rb_node rb_node; /* 24 */ void * completion_data; /* 8 */ }; /* 136 24 */ union { struct { struct io_cq * icq; /* 160 8 */ void * priv[2]; /* 168 16 */ } elv; /* 24 */ struct { unsigned int seq; /* 160 4 */ struct list_head list; /* 168 16 */ rq_end_io_fn * saved_end_io; /* 184 8 */ } flush; /* 32 */ }; /* 160 32 */ /* --- cacheline 3 boundary (192 bytes) --- */ struct gendisk * rq_disk; /* 192 8 */ struct hd_struct * part; /* 200 8 */ long unsigned int start_time; /* 208 8 */ struct request_list * rl; /* 216 8 */ long long unsigned int start_time_ns; /* 224 8 */ long long unsigned int io_start_time_ns; /* 232 8 */ short unsigned int nr_phys_segments; /* 240 2 */ short unsigned int nr_integrity_segments; /* 242 2 */ short unsigned int ioprio; /* 244 2 */ /* XXX 2 bytes hole, try to pack */ void * special; /* 248 8 */ /* --- cacheline 4 boundary (256 bytes) --- */ int tag; /* 256 4 */ int errors; /* 260 4 */ unsigned char __cmd[16]; /* 264 16 */ unsigned char * cmd; /* 280 8 */ short unsigned int cmd_len; /* 288 2 */ /* XXX 2 bytes hole, try to pack */ unsigned int extra_len; /* 292 4 */ unsigned int sense_len; /* 296 4 */ unsigned int resid_len; /* 300 4 */ void * sense; /* 304 8 */ long unsigned int deadline; /* 312 8 */ /* --- cacheline 5 boundary (320 bytes) --- */ struct list_head timeout_list; /* 320 16 */ unsigned int timeout; /* 336 4 */ int retries; /* 340 4 */ rq_end_io_fn * end_io; /* 344 8 */ void * end_io_data; /* 352 8 */ struct request * next_rq; /* 360 8 */ /* size: 368, cachelines: 6, members: 41 */ /* sum members: 360, holes: 3, sum holes: 8 */ /* last cacheline: 48 bytes */ }; struct request_list { struct request_queue * q; /* 0 8 */ struct blkcg_gq * blkg; /* 8 8 */ int count[2]; /* 16 8 */ int starved[2]; /* 24 8 */ mempool_t * rq_pool; /* 32 8 */ wait_queue_head_t wait[2]; /* 40 48 */ /* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */ unsigned int flags; /* 88 4 */ /* size: 96, cachelines: 2, members: 7 */ /* padding: 4 */ /* last cacheline: 32 bytes */ }; struct elevator_type { struct kmem_cache * icq_cache; /* 0 8 */ struct elevator_ops ops; /* 8 160 */ /* --- cacheline 2 boundary (128 bytes) was 40 bytes ago --- */ size_t icq_size; /* 168 8 */ size_t icq_align; /* 176 8 */ struct elv_fs_entry * elevator_attrs; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ char elevator_name[16]; /* 192 16 */ struct module * elevator_owner; /* 208 8 */ char icq_cache_name[21]; /* 216 21 */ /* XXX 3 bytes hole, try to pack */ struct list_head list; /* 240 16 */ /* --- cacheline 4 boundary (256 bytes) --- */ /* size: 256, cachelines: 4, members: 9 */ /* sum members: 253, holes: 1, sum holes: 3 */ }; struct elevator_queue { struct elevator_type * type; /* 0 8 */ void * elevator_data; /* 8 8 */ struct kobject kobj; /* 16 64 */ /* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */ struct mutex sysfs_lock; /* 80 40 */ /* XXX last struct has 4 bytes of padding */ unsigned int registered:1; /* 120:31 4 */ /* XXX 31 bits hole, try to pack */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 2 boundary (128 bytes) --- */ struct hlist_head hash[64]; /* 128 512 */ /* --- cacheline 10 boundary (640 bytes) --- */ /* size: 640, cachelines: 10, members: 6 */ /* sum members: 636, holes: 1, sum holes: 4 */ /* bit holes: 1, sum bit holes: 31 bits */ /* paddings: 1, sum paddings: 4 */ }; struct elevator_ops { elevator_merge_fn * elevator_merge_fn; /* 0 8 */ elevator_merged_fn * elevator_merged_fn; /* 8 8 */ elevator_merge_req_fn * elevator_merge_req_fn; /* 16 8 */ elevator_allow_merge_fn * elevator_allow_merge_fn; /* 24 8 */ elevator_bio_merged_fn * elevator_bio_merged_fn; /* 32 8 */ elevator_dispatch_fn * elevator_dispatch_fn; /* 40 8 */ elevator_add_req_fn * elevator_add_req_fn; /* 48 8 */ elevator_activate_req_fn * elevator_activate_req_fn; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ elevator_deactivate_req_fn * elevator_deactivate_req_fn; /* 64 8 */ elevator_completed_req_fn * elevator_completed_req_fn; /* 72 8 */ elevator_request_list_fn * elevator_former_req_fn; /* 80 8 */ elevator_request_list_fn * elevator_latter_req_fn; /* 88 8 */ elevator_init_icq_fn * elevator_init_icq_fn; /* 96 8 */ elevator_exit_icq_fn * elevator_exit_icq_fn; /* 104 8 */ elevator_set_req_fn * elevator_set_req_fn; /* 112 8 */ elevator_put_req_fn * elevator_put_req_fn; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ elevator_may_queue_fn * elevator_may_queue_fn; /* 128 8 */ elevator_init_fn * elevator_init_fn; /* 136 8 */ elevator_exit_fn * elevator_exit_fn; /* 144 8 */ elevator_registered_fn * elevator_registered_fn; /* 152 8 */ /* size: 160, cachelines: 3, members: 20 */ /* last cacheline: 32 bytes */ }; struct elv_fs_entry { struct attribute attr; /* 0 16 */ /* XXX last struct has 6 bytes of padding */ ssize_t (*show)(struct elevator_queue *, char *); /* 16 8 */ ssize_t (*store)(struct elevator_queue *, const char *, size_t); /* 24 8 */ /* size: 32, cachelines: 1, members: 3 */ /* paddings: 1, sum paddings: 6 */ /* last cacheline: 32 bytes */ }; struct blk_queue_tag { struct request * * tag_index; /* 0 8 */ long unsigned int * tag_map; /* 8 8 */ int busy; /* 16 4 */ int max_depth; /* 20 4 */ int real_max_depth; /* 24 4 */ atomic_t refcnt; /* 28 4 */ int alloc_policy; /* 32 4 */ int next_tag; /* 36 4 */ /* size: 40, cachelines: 1, members: 8 */ /* last cacheline: 40 bytes */ }; struct queue_limits { long unsigned int bounce_pfn; /* 0 8 */ long unsigned int seg_boundary_mask; /* 8 8 */ long unsigned int virt_boundary_mask; /* 16 8 */ unsigned int max_hw_sectors; /* 24 4 */ unsigned int max_dev_sectors; /* 28 4 */ unsigned int chunk_sectors; /* 32 4 */ unsigned int max_sectors; /* 36 4 */ unsigned int max_segment_size; /* 40 4 */ unsigned int physical_block_size; /* 44 4 */ unsigned int alignment_offset; /* 48 4 */ unsigned int io_min; /* 52 4 */ unsigned int io_opt; /* 56 4 */ unsigned int max_discard_sectors; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ unsigned int max_hw_discard_sectors; /* 64 4 */ unsigned int max_write_same_sectors; /* 68 4 */ unsigned int discard_granularity; /* 72 4 */ unsigned int discard_alignment; /* 76 4 */ short unsigned int logical_block_size; /* 80 2 */ short unsigned int max_segments; /* 82 2 */ short unsigned int max_integrity_segments; /* 84 2 */ unsigned char misaligned; /* 86 1 */ unsigned char discard_misaligned; /* 87 1 */ unsigned char cluster; /* 88 1 */ unsigned char discard_zeroes_data; /* 89 1 */ unsigned char raid_partial_stripes_expensive; /* 90 1 */ /* size: 96, cachelines: 2, members: 25 */ /* padding: 5 */ /* last cacheline: 32 bytes */ }; struct blk_integrity_iter { void * prot_buf; /* 0 8 */ void * data_buf; /* 8 8 */ sector_t seed; /* 16 8 */ unsigned int data_size; /* 24 4 */ short unsigned int interval; /* 28 2 */ /* XXX 2 bytes hole, try to pack */ const char * disk_name; /* 32 8 */ /* size: 40, cachelines: 1, members: 6 */ /* sum members: 38, holes: 1, sum holes: 2 */ /* last cacheline: 40 bytes */ }; struct elf64_sym { Elf64_Word st_name; /* 0 4 */ unsigned char st_info; /* 4 1 */ unsigned char st_other; /* 5 1 */ Elf64_Half st_shndx; /* 6 2 */ Elf64_Addr st_value; /* 8 8 */ Elf64_Xword st_size; /* 16 8 */ /* size: 24, cachelines: 1, members: 6 */ /* last cacheline: 24 bytes */ }; struct kernel_param_ops { unsigned int flags; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ int (*set)(const char *, const struct kernel_param *); /* 8 8 */ int (*get)(char *, const struct kernel_param *); /* 16 8 */ void (*free)(void *); /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct kernel_param { const char * name; /* 0 8 */ struct module * mod; /* 8 8 */ const struct kernel_param_ops * ops; /* 16 8 */ u16const perm; /* 24 2 */ s8 level; /* 26 1 */ u8 flags; /* 27 1 */ /* XXX 4 bytes hole, try to pack */ union { void * arg; /* 8 */ const struct kparam_string * str; /* 8 */ const struct kparam_array * arr; /* 8 */ }; /* 32 8 */ /* size: 40, cachelines: 1, members: 7 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct kparam_string { unsigned int maxlen; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ char * string; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* sum members: 12, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct kparam_array { unsigned int max; /* 0 4 */ unsigned int elemsize; /* 4 4 */ unsigned int * num; /* 8 8 */ const struct kernel_param_ops * ops; /* 16 8 */ void * elem; /* 24 8 */ /* size: 32, cachelines: 1, members: 5 */ /* last cacheline: 32 bytes */ }; struct latch_tree_node { struct rb_node node[2]; /* 0 48 */ /* size: 48, cachelines: 1, members: 1 */ /* last cacheline: 48 bytes */ }; struct mod_arch_specific { /* size: 0, cachelines: 0, members: 0 */ }; struct module_kobject { struct kobject kobj; /* 0 64 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct module * mod; /* 64 8 */ struct kobject * drivers_dir; /* 72 8 */ struct module_param_attrs * mp; /* 80 8 */ struct completion * kobj_completion; /* 88 8 */ /* size: 96, cachelines: 2, members: 5 */ /* last cacheline: 32 bytes */ }; struct module_attribute { struct attribute attr; /* 0 16 */ /* XXX last struct has 6 bytes of padding */ ssize_t (*show)(struct module_attribute *, struct module_kobject *, char *); /* 16 8 */ ssize_t (*store)(struct module_attribute *, struct module_kobject *, const char *, size_t); /* 24 8 */ void (*setup)(struct module *, const char *); /* 32 8 */ int (*test)(struct module *); /* 40 8 */ void (*free)(struct module *); /* 48 8 */ /* size: 56, cachelines: 1, members: 6 */ /* paddings: 1, sum paddings: 6 */ /* last cacheline: 56 bytes */ }; struct mod_tree_node { struct module * mod; /* 0 8 */ struct latch_tree_node node; /* 8 48 */ /* size: 56, cachelines: 1, members: 2 */ /* last cacheline: 56 bytes */ }; struct module_layout { void * base; /* 0 8 */ unsigned int size; /* 8 4 */ unsigned int text_size; /* 12 4 */ unsigned int ro_size; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ struct mod_tree_node mtn; /* 24 56 */ /* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */ /* size: 80, cachelines: 2, members: 5 */ /* sum members: 76, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct mod_kallsyms { Elf64_Sym * symtab; /* 0 8 */ unsigned int num_symtab; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ char * strtab; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* sum members: 20, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; struct tracepoint { const char * name; /* 0 8 */ struct static_key key; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ void (*regfunc)(void); /* 16 8 */ void (*unregfunc)(void); /* 24 8 */ struct tracepoint_func * funcs; /* 32 8 */ /* size: 40, cachelines: 1, members: 5 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct trace_event_call { struct list_head list; /* 0 16 */ struct trace_event_class * class; /* 16 8 */ union { char * name; /* 8 */ struct tracepoint * tp; /* 8 */ }; /* 24 8 */ struct trace_event event; /* 32 48 */ /* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */ char * print_fmt; /* 80 8 */ struct event_filter * filter; /* 88 8 */ void * mod; /* 96 8 */ void * data; /* 104 8 */ int flags; /* 112 4 */ int perf_refcount; /* 116 4 */ struct hlist_head * perf_events; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ struct bpf_prog * prog; /* 128 8 */ int (*perf_perm)(struct trace_event_call *, struct perf_event *); /* 136 8 */ /* size: 144, cachelines: 3, members: 13 */ /* last cacheline: 16 bytes */ }; struct trace_enum_map { const char * system; /* 0 8 */ const char * enum_string; /* 8 8 */ long unsigned int enum_value; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct seq_operations { void * (*start)(struct seq_file *, loff_t *); /* 0 8 */ void (*stop)(struct seq_file *, void *); /* 8 8 */ void * (*next)(struct seq_file *, void *, loff_t *); /* 16 8 */ int (*show)(struct seq_file *, void *); /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* last cacheline: 32 bytes */ }; struct page_counter { atomic_long_t count; /* 0 8 */ long unsigned int limit; /* 8 8 */ struct page_counter * parent; /* 16 8 */ long unsigned int watermark; /* 24 8 */ long unsigned int failcnt; /* 32 8 */ /* size: 40, cachelines: 1, members: 5 */ /* last cacheline: 40 bytes */ }; struct vmpressure { long unsigned int scanned; /* 0 8 */ long unsigned int reclaimed; /* 8 8 */ long unsigned int tree_scanned; /* 16 8 */ long unsigned int tree_reclaimed; /* 24 8 */ struct spinlock sr_lock; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head events; /* 40 16 */ struct mutex events_lock; /* 56 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */ struct work_struct work; /* 96 32 */ /* --- cacheline 2 boundary (128 bytes) --- */ /* size: 128, cachelines: 2, members: 8 */ /* sum members: 124, holes: 1, sum holes: 4 */ /* paddings: 1, sum paddings: 4 */ }; struct wb_domain { spinlock_t lock; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct fprop_global completions; /* 8 48 */ struct timer_list period_timer; /* 56 80 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ long unsigned int period_time; /* 136 8 */ long unsigned int dirty_limit_tstamp; /* 144 8 */ long unsigned int dirty_limit; /* 152 8 */ /* size: 160, cachelines: 3, members: 6 */ /* sum members: 156, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct mem_cgroup_stat_cpu { long int count[8]; /* 0 64 */ /* --- cacheline 1 boundary (64 bytes) --- */ long unsigned int events[8]; /* 64 64 */ /* --- cacheline 2 boundary (128 bytes) --- */ long unsigned int nr_page_events; /* 128 8 */ long unsigned int targets[3]; /* 136 24 */ /* size: 160, cachelines: 3, members: 4 */ /* last cacheline: 32 bytes */ }; struct mem_cgroup_reclaim_iter { struct mem_cgroup * position; /* 0 8 */ unsigned int generation; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct mem_cgroup_per_zone { struct lruvec lruvec; /* 0 120 */ /* --- cacheline 1 boundary (64 bytes) was 56 bytes ago --- */ long unsigned int lru_size[5]; /* 120 40 */ /* --- cacheline 2 boundary (128 bytes) was 32 bytes ago --- */ struct mem_cgroup_reclaim_iter iter[13]; /* 160 208 */ /* --- cacheline 5 boundary (320 bytes) was 48 bytes ago --- */ struct rb_node tree_node; /* 368 24 */ /* --- cacheline 6 boundary (384 bytes) was 8 bytes ago --- */ long unsigned int usage_in_excess; /* 392 8 */ bool on_tree; /* 400 1 */ /* XXX 7 bytes hole, try to pack */ struct mem_cgroup * memcg; /* 408 8 */ /* size: 416, cachelines: 7, members: 7 */ /* sum members: 409, holes: 1, sum holes: 7 */ /* last cacheline: 32 bytes */ }; struct mem_cgroup_per_node { struct mem_cgroup_per_zone zoneinfo[3]; /* 0 1248 */ /* --- cacheline 19 boundary (1216 bytes) was 32 bytes ago --- */ /* size: 1248, cachelines: 20, members: 1 */ /* last cacheline: 32 bytes */ }; struct mem_cgroup_threshold { struct eventfd_ctx * eventfd; /* 0 8 */ long unsigned int threshold; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct mem_cgroup_threshold_ary { int current_threshold; /* 0 4 */ unsigned int size; /* 4 4 */ struct mem_cgroup_threshold entries[0]; /* 8 0 */ /* size: 8, cachelines: 1, members: 3 */ /* last cacheline: 8 bytes */ }; struct mem_cgroup_thresholds { struct mem_cgroup_threshold_ary * primary; /* 0 8 */ struct mem_cgroup_threshold_ary * spare; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct swap_extent { struct list_head list; /* 0 16 */ long unsigned int start_page; /* 16 8 */ long unsigned int nr_pages; /* 24 8 */ sector_t start_block; /* 32 8 */ /* size: 40, cachelines: 1, members: 4 */ /* last cacheline: 40 bytes */ }; struct swap_cluster_info { unsigned int data:24; /* 0: 8 4 */ unsigned int flags:8; /* 0: 0 4 */ /* size: 4, cachelines: 1, members: 2 */ /* last cacheline: 4 bytes */ }; struct percpu_cluster { struct swap_cluster_info index; /* 0 4 */ unsigned int next; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xfsstats { __uint32_t xs_allocx; /* 0 4 */ __uint32_t xs_allocb; /* 4 4 */ __uint32_t xs_freex; /* 8 4 */ __uint32_t xs_freeb; /* 12 4 */ __uint32_t xs_abt_lookup; /* 16 4 */ __uint32_t xs_abt_compare; /* 20 4 */ __uint32_t xs_abt_insrec; /* 24 4 */ __uint32_t xs_abt_delrec; /* 28 4 */ __uint32_t xs_blk_mapr; /* 32 4 */ __uint32_t xs_blk_mapw; /* 36 4 */ __uint32_t xs_blk_unmap; /* 40 4 */ __uint32_t xs_add_exlist; /* 44 4 */ __uint32_t xs_del_exlist; /* 48 4 */ __uint32_t xs_look_exlist; /* 52 4 */ __uint32_t xs_cmp_exlist; /* 56 4 */ __uint32_t xs_bmbt_lookup; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ __uint32_t xs_bmbt_compare; /* 64 4 */ __uint32_t xs_bmbt_insrec; /* 68 4 */ __uint32_t xs_bmbt_delrec; /* 72 4 */ __uint32_t xs_dir_lookup; /* 76 4 */ __uint32_t xs_dir_create; /* 80 4 */ __uint32_t xs_dir_remove; /* 84 4 */ __uint32_t xs_dir_getdents; /* 88 4 */ __uint32_t xs_trans_sync; /* 92 4 */ __uint32_t xs_trans_async; /* 96 4 */ __uint32_t xs_trans_empty; /* 100 4 */ __uint32_t xs_ig_attempts; /* 104 4 */ __uint32_t xs_ig_found; /* 108 4 */ __uint32_t xs_ig_frecycle; /* 112 4 */ __uint32_t xs_ig_missed; /* 116 4 */ __uint32_t xs_ig_dup; /* 120 4 */ __uint32_t xs_ig_reclaims; /* 124 4 */ /* --- cacheline 2 boundary (128 bytes) --- */ __uint32_t xs_ig_attrchg; /* 128 4 */ __uint32_t xs_log_writes; /* 132 4 */ __uint32_t xs_log_blocks; /* 136 4 */ __uint32_t xs_log_noiclogs; /* 140 4 */ __uint32_t xs_log_force; /* 144 4 */ __uint32_t xs_log_force_sleep; /* 148 4 */ __uint32_t xs_try_logspace; /* 152 4 */ __uint32_t xs_sleep_logspace; /* 156 4 */ __uint32_t xs_push_ail; /* 160 4 */ __uint32_t xs_push_ail_success; /* 164 4 */ __uint32_t xs_push_ail_pushbuf; /* 168 4 */ __uint32_t xs_push_ail_pinned; /* 172 4 */ __uint32_t xs_push_ail_locked; /* 176 4 */ __uint32_t xs_push_ail_flushing; /* 180 4 */ __uint32_t xs_push_ail_restarts; /* 184 4 */ __uint32_t xs_push_ail_flush; /* 188 4 */ /* --- cacheline 3 boundary (192 bytes) --- */ __uint32_t xs_xstrat_quick; /* 192 4 */ __uint32_t xs_xstrat_split; /* 196 4 */ __uint32_t xs_write_calls; /* 200 4 */ __uint32_t xs_read_calls; /* 204 4 */ __uint32_t xs_attr_get; /* 208 4 */ __uint32_t xs_attr_set; /* 212 4 */ __uint32_t xs_attr_remove; /* 216 4 */ __uint32_t xs_attr_list; /* 220 4 */ __uint32_t xs_iflush_count; /* 224 4 */ __uint32_t xs_icluster_flushcnt; /* 228 4 */ __uint32_t xs_icluster_flushinode; /* 232 4 */ __uint32_t vn_active; /* 236 4 */ __uint32_t vn_alloc; /* 240 4 */ __uint32_t vn_get; /* 244 4 */ __uint32_t vn_hold; /* 248 4 */ __uint32_t vn_rele; /* 252 4 */ /* --- cacheline 4 boundary (256 bytes) --- */ __uint32_t vn_reclaim; /* 256 4 */ __uint32_t vn_remove; /* 260 4 */ __uint32_t vn_free; /* 264 4 */ __uint32_t xb_get; /* 268 4 */ __uint32_t xb_create; /* 272 4 */ __uint32_t xb_get_locked; /* 276 4 */ __uint32_t xb_get_locked_waited; /* 280 4 */ __uint32_t xb_busy_locked; /* 284 4 */ __uint32_t xb_miss_locked; /* 288 4 */ __uint32_t xb_page_retries; /* 292 4 */ __uint32_t xb_page_found; /* 296 4 */ __uint32_t xb_get_read; /* 300 4 */ __uint32_t xs_abtb_2_lookup; /* 304 4 */ __uint32_t xs_abtb_2_compare; /* 308 4 */ __uint32_t xs_abtb_2_insrec; /* 312 4 */ __uint32_t xs_abtb_2_delrec; /* 316 4 */ /* --- cacheline 5 boundary (320 bytes) --- */ __uint32_t xs_abtb_2_newroot; /* 320 4 */ __uint32_t xs_abtb_2_killroot; /* 324 4 */ __uint32_t xs_abtb_2_increment; /* 328 4 */ __uint32_t xs_abtb_2_decrement; /* 332 4 */ __uint32_t xs_abtb_2_lshift; /* 336 4 */ __uint32_t xs_abtb_2_rshift; /* 340 4 */ __uint32_t xs_abtb_2_split; /* 344 4 */ __uint32_t xs_abtb_2_join; /* 348 4 */ __uint32_t xs_abtb_2_alloc; /* 352 4 */ __uint32_t xs_abtb_2_free; /* 356 4 */ __uint32_t xs_abtb_2_moves; /* 360 4 */ __uint32_t xs_abtc_2_lookup; /* 364 4 */ __uint32_t xs_abtc_2_compare; /* 368 4 */ __uint32_t xs_abtc_2_insrec; /* 372 4 */ __uint32_t xs_abtc_2_delrec; /* 376 4 */ __uint32_t xs_abtc_2_newroot; /* 380 4 */ /* --- cacheline 6 boundary (384 bytes) --- */ __uint32_t xs_abtc_2_killroot; /* 384 4 */ __uint32_t xs_abtc_2_increment; /* 388 4 */ __uint32_t xs_abtc_2_decrement; /* 392 4 */ __uint32_t xs_abtc_2_lshift; /* 396 4 */ __uint32_t xs_abtc_2_rshift; /* 400 4 */ __uint32_t xs_abtc_2_split; /* 404 4 */ __uint32_t xs_abtc_2_join; /* 408 4 */ __uint32_t xs_abtc_2_alloc; /* 412 4 */ __uint32_t xs_abtc_2_free; /* 416 4 */ __uint32_t xs_abtc_2_moves; /* 420 4 */ __uint32_t xs_bmbt_2_lookup; /* 424 4 */ __uint32_t xs_bmbt_2_compare; /* 428 4 */ __uint32_t xs_bmbt_2_insrec; /* 432 4 */ __uint32_t xs_bmbt_2_delrec; /* 436 4 */ __uint32_t xs_bmbt_2_newroot; /* 440 4 */ __uint32_t xs_bmbt_2_killroot; /* 444 4 */ /* --- cacheline 7 boundary (448 bytes) --- */ __uint32_t xs_bmbt_2_increment; /* 448 4 */ __uint32_t xs_bmbt_2_decrement; /* 452 4 */ __uint32_t xs_bmbt_2_lshift; /* 456 4 */ __uint32_t xs_bmbt_2_rshift; /* 460 4 */ __uint32_t xs_bmbt_2_split; /* 464 4 */ __uint32_t xs_bmbt_2_join; /* 468 4 */ __uint32_t xs_bmbt_2_alloc; /* 472 4 */ __uint32_t xs_bmbt_2_free; /* 476 4 */ __uint32_t xs_bmbt_2_moves; /* 480 4 */ __uint32_t xs_ibt_2_lookup; /* 484 4 */ __uint32_t xs_ibt_2_compare; /* 488 4 */ __uint32_t xs_ibt_2_insrec; /* 492 4 */ __uint32_t xs_ibt_2_delrec; /* 496 4 */ __uint32_t xs_ibt_2_newroot; /* 500 4 */ __uint32_t xs_ibt_2_killroot; /* 504 4 */ __uint32_t xs_ibt_2_increment; /* 508 4 */ /* --- cacheline 8 boundary (512 bytes) --- */ __uint32_t xs_ibt_2_decrement; /* 512 4 */ __uint32_t xs_ibt_2_lshift; /* 516 4 */ __uint32_t xs_ibt_2_rshift; /* 520 4 */ __uint32_t xs_ibt_2_split; /* 524 4 */ __uint32_t xs_ibt_2_join; /* 528 4 */ __uint32_t xs_ibt_2_alloc; /* 532 4 */ __uint32_t xs_ibt_2_free; /* 536 4 */ __uint32_t xs_ibt_2_moves; /* 540 4 */ __uint32_t xs_fibt_2_lookup; /* 544 4 */ __uint32_t xs_fibt_2_compare; /* 548 4 */ __uint32_t xs_fibt_2_insrec; /* 552 4 */ __uint32_t xs_fibt_2_delrec; /* 556 4 */ __uint32_t xs_fibt_2_newroot; /* 560 4 */ __uint32_t xs_fibt_2_killroot; /* 564 4 */ __uint32_t xs_fibt_2_increment; /* 568 4 */ __uint32_t xs_fibt_2_decrement; /* 572 4 */ /* --- cacheline 9 boundary (576 bytes) --- */ __uint32_t xs_fibt_2_lshift; /* 576 4 */ __uint32_t xs_fibt_2_rshift; /* 580 4 */ __uint32_t xs_fibt_2_split; /* 584 4 */ __uint32_t xs_fibt_2_join; /* 588 4 */ __uint32_t xs_fibt_2_alloc; /* 592 4 */ __uint32_t xs_fibt_2_free; /* 596 4 */ __uint32_t xs_fibt_2_moves; /* 600 4 */ __uint32_t xs_qm_dqreclaims; /* 604 4 */ __uint32_t xs_qm_dqreclaim_misses; /* 608 4 */ __uint32_t xs_qm_dquot_dups; /* 612 4 */ __uint32_t xs_qm_dqcachemisses; /* 616 4 */ __uint32_t xs_qm_dqcachehits; /* 620 4 */ __uint32_t xs_qm_dqwants; /* 624 4 */ __uint32_t xs_qm_dquot; /* 628 4 */ __uint32_t xs_qm_dquot_unused; /* 632 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 10 boundary (640 bytes) --- */ __uint64_t xs_xstrat_bytes; /* 640 8 */ __uint64_t xs_write_bytes; /* 648 8 */ __uint64_t xs_read_bytes; /* 656 8 */ /* size: 664, cachelines: 11, members: 162 */ /* sum members: 660, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; struct xfs_trans { unsigned int t_magic; /* 0 4 */ unsigned int t_type; /* 4 4 */ unsigned int t_log_res; /* 8 4 */ unsigned int t_log_count; /* 12 4 */ unsigned int t_blk_res; /* 16 4 */ unsigned int t_blk_res_used; /* 20 4 */ unsigned int t_rtx_res; /* 24 4 */ unsigned int t_rtx_res_used; /* 28 4 */ struct xlog_ticket * t_ticket; /* 32 8 */ xfs_lsn_t t_lsn; /* 40 8 */ xfs_lsn_t t_commit_lsn; /* 48 8 */ struct xfs_mount * t_mountp; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct xfs_dquot_acct * t_dqinfo; /* 64 8 */ unsigned int t_flags; /* 72 4 */ /* XXX 4 bytes hole, try to pack */ int64_t t_icount_delta; /* 80 8 */ int64_t t_ifree_delta; /* 88 8 */ int64_t t_fdblocks_delta; /* 96 8 */ int64_t t_res_fdblocks_delta; /* 104 8 */ int64_t t_frextents_delta; /* 112 8 */ int64_t t_res_frextents_delta; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ int64_t t_dblocks_delta; /* 128 8 */ int64_t t_agcount_delta; /* 136 8 */ int64_t t_imaxpct_delta; /* 144 8 */ int64_t t_rextsize_delta; /* 152 8 */ int64_t t_rbmblocks_delta; /* 160 8 */ int64_t t_rblocks_delta; /* 168 8 */ int64_t t_rextents_delta; /* 176 8 */ int64_t t_rextslog_delta; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ struct list_head t_items; /* 192 16 */ struct list_head t_busy; /* 208 16 */ long unsigned int t_pflags; /* 224 8 */ /* size: 232, cachelines: 4, members: 31 */ /* sum members: 228, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct fid { union { struct { u32 ino; /* 0 4 */ u32 gen; /* 4 4 */ u32 parent_ino; /* 8 4 */ u32 parent_gen; /* 12 4 */ } i32; /* 16 */ struct { u32 block; /* 0 4 */ u16 partref; /* 4 2 */ u16 parent_partref; /* 6 2 */ u32 generation; /* 8 4 */ u32 parent_block; /* 12 4 */ u32 parent_generation; /* 16 4 */ } udf; /* 20 */ __u32 raw[0]; /* 0 */ }; /* 0 20 */ /* size: 20, cachelines: 1, members: 1 */ /* last cacheline: 20 bytes */ }; struct iomap { sector_t blkno; /* 0 8 */ loff_t offset; /* 8 8 */ u64 length; /* 16 8 */ int type; /* 24 4 */ /* size: 32, cachelines: 1, members: 4 */ /* padding: 4 */ /* last cacheline: 32 bytes */ }; struct iovec { void * iov_base; /* 0 8 */ __kernel_size_t iov_len; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct kvec { void * iov_base; /* 0 8 */ size_t iov_len; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_buftarg { dev_t bt_dev; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct block_device * bt_bdev; /* 8 8 */ struct backing_dev_info * bt_bdi; /* 16 8 */ struct xfs_mount * bt_mount; /* 24 8 */ unsigned int bt_meta_sectorsize; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ size_t bt_meta_sectormask; /* 40 8 */ size_t bt_logical_sectorsize; /* 48 8 */ size_t bt_logical_sectormask; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct shrinker bt_shrinker; /* 64 64 */ /* --- cacheline 2 boundary (128 bytes) --- */ struct list_lru bt_lru; /* 128 24 */ /* size: 152, cachelines: 3, members: 10 */ /* sum members: 144, holes: 2, sum holes: 8 */ /* last cacheline: 24 bytes */ }; struct xfs_mount { struct super_block * m_super; /* 0 8 */ xfs_tid_t m_tid; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct xfs_ail * m_ail; /* 16 8 */ struct xfs_sb m_sb; /* 24 264 */ /* --- cacheline 4 boundary (256 bytes) was 32 bytes ago --- */ spinlock_t m_sb_lock; /* 288 4 */ /* XXX 4 bytes hole, try to pack */ struct percpu_counter m_icount; /* 296 40 */ /* --- cacheline 5 boundary (320 bytes) was 16 bytes ago --- */ struct percpu_counter m_ifree; /* 336 40 */ struct percpu_counter m_fdblocks; /* 376 40 */ /* --- cacheline 6 boundary (384 bytes) was 32 bytes ago --- */ struct xfs_buf * m_sb_bp; /* 416 8 */ char * m_fsname; /* 424 8 */ int m_fsname_len; /* 432 4 */ /* XXX 4 bytes hole, try to pack */ char * m_rtname; /* 440 8 */ /* --- cacheline 7 boundary (448 bytes) --- */ char * m_logname; /* 448 8 */ int m_bsize; /* 456 4 */ xfs_agnumber_t m_agfrotor; /* 460 4 */ xfs_agnumber_t m_agirotor; /* 464 4 */ spinlock_t m_agirotor_lock; /* 468 4 */ xfs_agnumber_t m_maxagi; /* 472 4 */ uint m_readio_log; /* 476 4 */ uint m_readio_blocks; /* 480 4 */ uint m_writeio_log; /* 484 4 */ uint m_writeio_blocks; /* 488 4 */ /* XXX 4 bytes hole, try to pack */ struct xfs_da_geometry * m_dir_geo; /* 496 8 */ struct xfs_da_geometry * m_attr_geo; /* 504 8 */ /* --- cacheline 8 boundary (512 bytes) --- */ struct xlog * m_log; /* 512 8 */ int m_logbufs; /* 520 4 */ int m_logbsize; /* 524 4 */ uint m_rsumlevels; /* 528 4 */ uint m_rsumsize; /* 532 4 */ struct xfs_inode * m_rbmip; /* 536 8 */ struct xfs_inode * m_rsumip; /* 544 8 */ struct xfs_inode * m_rootip; /* 552 8 */ struct xfs_quotainfo * m_quotainfo; /* 560 8 */ xfs_buftarg_t * m_ddev_targp; /* 568 8 */ /* --- cacheline 9 boundary (576 bytes) --- */ xfs_buftarg_t * m_logdev_targp; /* 576 8 */ xfs_buftarg_t * m_rtdev_targp; /* 584 8 */ __uint8_t m_blkbit_log; /* 592 1 */ __uint8_t m_blkbb_log; /* 593 1 */ __uint8_t m_agno_log; /* 594 1 */ __uint8_t m_agino_log; /* 595 1 */ uint m_inode_cluster_size; /* 596 4 */ uint m_blockmask; /* 600 4 */ uint m_blockwsize; /* 604 4 */ uint m_blockwmask; /* 608 4 */ uint m_alloc_mxr[2]; /* 612 8 */ uint m_alloc_mnr[2]; /* 620 8 */ uint m_bmap_dmxr[2]; /* 628 8 */ uint m_bmap_dmnr[2]; /* 636 8 */ /* --- cacheline 10 boundary (640 bytes) was 4 bytes ago --- */ uint m_inobt_mxr[2]; /* 644 8 */ uint m_inobt_mnr[2]; /* 652 8 */ uint m_ag_maxlevels; /* 660 4 */ uint m_bm_maxlevels[2]; /* 664 8 */ uint m_in_maxlevels; /* 672 4 */ /* XXX 4 bytes hole, try to pack */ struct radix_tree_root m_perag_tree; /* 680 16 */ spinlock_t m_perag_lock; /* 696 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 11 boundary (704 bytes) --- */ struct mutex m_growlock; /* 704 40 */ /* XXX last struct has 4 bytes of padding */ int m_fixedfsid[2]; /* 744 8 */ uint m_dmevmask; /* 752 4 */ /* XXX 4 bytes hole, try to pack */ __uint64_t m_flags; /* 760 8 */ /* --- cacheline 12 boundary (768 bytes) --- */ int m_ialloc_inos; /* 768 4 */ int m_ialloc_blks; /* 772 4 */ int m_ialloc_min_blks; /* 776 4 */ int m_inoalign_mask; /* 780 4 */ uint m_qflags; /* 784 4 */ struct xfs_trans_resv m_resv; /* 788 336 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 17 boundary (1088 bytes) was 40 bytes ago --- */ __uint64_t m_maxicount; /* 1128 8 */ __uint64_t m_resblks; /* 1136 8 */ __uint64_t m_resblks_avail; /* 1144 8 */ /* --- cacheline 18 boundary (1152 bytes) --- */ __uint64_t m_resblks_save; /* 1152 8 */ int m_dalign; /* 1160 4 */ int m_swidth; /* 1164 4 */ int m_sinoalign; /* 1168 4 */ __uint8_t m_sectbb_log; /* 1172 1 */ /* XXX 3 bytes hole, try to pack */ const struct xfs_nameops * m_dirnameops; /* 1176 8 */ const struct xfs_dir_ops * m_dir_inode_ops; /* 1184 8 */ const struct xfs_dir_ops * m_nondir_inode_ops; /* 1192 8 */ uint m_chsize; /* 1200 4 */ atomic_t m_active_trans; /* 1204 4 */ struct xfs_mru_cache * m_filestream; /* 1208 8 */ /* --- cacheline 19 boundary (1216 bytes) --- */ struct delayed_work m_reclaim_work; /* 1216 128 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 21 boundary (1344 bytes) --- */ struct delayed_work m_eofblocks_work; /* 1344 128 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 23 boundary (1472 bytes) --- */ bool m_update_sb; /* 1472 1 */ /* XXX 7 bytes hole, try to pack */ int64_t m_low_space[5]; /* 1480 40 */ struct xfs_kobj m_kobj; /* 1520 96 */ /* --- cacheline 25 boundary (1600 bytes) was 16 bytes ago --- */ struct xstats m_stats; /* 1616 104 */ /* --- cacheline 26 boundary (1664 bytes) was 56 bytes ago --- */ struct workqueue_struct * m_buf_workqueue; /* 1720 8 */ /* --- cacheline 27 boundary (1728 bytes) --- */ struct workqueue_struct * m_data_workqueue; /* 1728 8 */ struct workqueue_struct * m_unwritten_workqueue; /* 1736 8 */ struct workqueue_struct * m_cil_workqueue; /* 1744 8 */ struct workqueue_struct * m_reclaim_workqueue; /* 1752 8 */ struct workqueue_struct * m_log_workqueue; /* 1760 8 */ struct workqueue_struct * m_eofblocks_workqueue; /* 1768 8 */ __uint32_t m_generation; /* 1776 4 */ /* size: 1784, cachelines: 28, members: 93 */ /* sum members: 1738, holes: 10, sum holes: 42 */ /* padding: 4 */ /* paddings: 3, sum paddings: 12 */ /* last cacheline: 56 bytes */ }; struct xfs_buf { struct rb_node b_rbnode; /* 0 24 */ xfs_daddr_t b_bn; /* 24 8 */ int b_length; /* 32 4 */ atomic_t b_hold; /* 36 4 */ atomic_t b_lru_ref; /* 40 4 */ xfs_buf_flags_t b_flags; /* 44 4 */ struct semaphore b_sema; /* 48 24 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct list_head b_lru; /* 72 16 */ spinlock_t b_lock; /* 88 4 */ unsigned int b_state; /* 92 4 */ int b_io_error; /* 96 4 */ /* XXX 4 bytes hole, try to pack */ wait_queue_head_t b_waiters; /* 104 24 */ /* --- cacheline 2 boundary (128 bytes) --- */ struct list_head b_list; /* 128 16 */ struct xfs_perag * b_pag; /* 144 8 */ xfs_buftarg_t * b_target; /* 152 8 */ void * b_addr; /* 160 8 */ struct work_struct b_ioend_work; /* 168 32 */ /* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */ struct workqueue_struct * b_ioend_wq; /* 200 8 */ xfs_buf_iodone_t b_iodone; /* 208 8 */ struct completion b_iowait; /* 216 32 */ void * b_fspriv; /* 248 8 */ /* --- cacheline 4 boundary (256 bytes) --- */ struct xfs_trans * b_transp; /* 256 8 */ struct page * * b_pages; /* 264 8 */ struct page * b_page_array[2]; /* 272 16 */ struct xfs_buf_map * b_maps; /* 288 8 */ struct xfs_buf_map __b_map; /* 296 16 */ int b_map_count; /* 312 4 */ int b_io_length; /* 316 4 */ /* --- cacheline 5 boundary (320 bytes) --- */ atomic_t b_pin_count; /* 320 4 */ atomic_t b_io_remaining; /* 324 4 */ unsigned int b_page_count; /* 328 4 */ unsigned int b_offset; /* 332 4 */ int b_error; /* 336 4 */ /* XXX 4 bytes hole, try to pack */ const struct xfs_buf_ops * b_ops; /* 344 8 */ /* size: 352, cachelines: 6, members: 34 */ /* sum members: 344, holes: 2, sum holes: 8 */ /* last cacheline: 32 bytes */ }; struct xfs_buf_map { xfs_daddr_t bm_bn; /* 0 8 */ int bm_len; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_buf_ops { char * name; /* 0 8 */ void (*verify_read)(struct xfs_buf *); /* 8 8 */ void (*verify_write)(struct xfs_buf *); /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct xfs_perag { struct xfs_mount * pag_mount; /* 0 8 */ xfs_agnumber_t pag_agno; /* 8 4 */ atomic_t pag_ref; /* 12 4 */ char pagf_init; /* 16 1 */ char pagi_init; /* 17 1 */ char pagf_metadata; /* 18 1 */ char pagi_inodeok; /* 19 1 */ __uint8_t pagf_levels[2]; /* 20 2 */ /* XXX 2 bytes hole, try to pack */ __uint32_t pagf_flcount; /* 24 4 */ xfs_extlen_t pagf_freeblks; /* 28 4 */ xfs_extlen_t pagf_longest; /* 32 4 */ __uint32_t pagf_btreeblks; /* 36 4 */ xfs_agino_t pagi_freecount; /* 40 4 */ xfs_agino_t pagi_count; /* 44 4 */ xfs_agino_t pagl_pagino; /* 48 4 */ xfs_agino_t pagl_leftrec; /* 52 4 */ xfs_agino_t pagl_rightrec; /* 56 4 */ spinlock_t pagb_lock; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct rb_root pagb_tree; /* 64 8 */ atomic_t pagf_fstrms; /* 72 4 */ spinlock_t pag_ici_lock; /* 76 4 */ struct radix_tree_root pag_ici_root; /* 80 16 */ int pag_ici_reclaimable; /* 96 4 */ /* XXX 4 bytes hole, try to pack */ struct mutex pag_ici_reclaim_lock; /* 104 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */ long unsigned int pag_ici_reclaim_cursor; /* 144 8 */ spinlock_t pag_buf_lock; /* 152 4 */ /* XXX 4 bytes hole, try to pack */ struct rb_root pag_buf_tree; /* 160 8 */ struct callback_head callback_head; /* 168 16 */ int pagb_count; /* 184 4 */ /* size: 192, cachelines: 3, members: 29 */ /* sum members: 178, holes: 3, sum holes: 10 */ /* padding: 4 */ /* paddings: 1, sum paddings: 4 */ }; struct xfs_kobj { struct kobject kobject; /* 0 64 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct completion complete; /* 64 32 */ /* size: 96, cachelines: 2, members: 2 */ /* last cacheline: 32 bytes */ }; struct xstats { struct xfsstats * xs_stats; /* 0 8 */ struct xfs_kobj xs_kobj; /* 8 96 */ /* --- cacheline 1 boundary (64 bytes) was 40 bytes ago --- */ /* size: 104, cachelines: 2, members: 2 */ /* last cacheline: 40 bytes */ }; struct xfs_log_item_desc { struct xfs_log_item * lid_item; /* 0 8 */ struct list_head lid_trans; /* 8 16 */ unsigned char lid_flags; /* 24 1 */ /* size: 32, cachelines: 1, members: 3 */ /* padding: 7 */ /* last cacheline: 32 bytes */ }; struct xfs_log_item { struct list_head li_ail; /* 0 16 */ xfs_lsn_t li_lsn; /* 16 8 */ struct xfs_log_item_desc * li_desc; /* 24 8 */ struct xfs_mount * li_mountp; /* 32 8 */ struct xfs_ail * li_ailp; /* 40 8 */ uint li_type; /* 48 4 */ uint li_flags; /* 52 4 */ struct xfs_log_item * li_bio_list; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ void (*li_cb)(struct xfs_buf *, struct xfs_log_item *); /* 64 8 */ const struct xfs_item_ops * li_ops; /* 72 8 */ struct list_head li_cil; /* 80 16 */ struct xfs_log_vec * li_lv; /* 96 8 */ xfs_lsn_t li_seq; /* 104 8 */ /* size: 112, cachelines: 2, members: 13 */ /* last cacheline: 48 bytes */ }; struct xfs_sb { __uint32_t sb_magicnum; /* 0 4 */ __uint32_t sb_blocksize; /* 4 4 */ xfs_rfsblock_t sb_dblocks; /* 8 8 */ xfs_rfsblock_t sb_rblocks; /* 16 8 */ xfs_rtblock_t sb_rextents; /* 24 8 */ uuid_t sb_uuid; /* 32 16 */ xfs_fsblock_t sb_logstart; /* 48 8 */ xfs_ino_t sb_rootino; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ xfs_ino_t sb_rbmino; /* 64 8 */ xfs_ino_t sb_rsumino; /* 72 8 */ xfs_agblock_t sb_rextsize; /* 80 4 */ xfs_agblock_t sb_agblocks; /* 84 4 */ xfs_agnumber_t sb_agcount; /* 88 4 */ xfs_extlen_t sb_rbmblocks; /* 92 4 */ xfs_extlen_t sb_logblocks; /* 96 4 */ __uint16_t sb_versionnum; /* 100 2 */ __uint16_t sb_sectsize; /* 102 2 */ __uint16_t sb_inodesize; /* 104 2 */ __uint16_t sb_inopblock; /* 106 2 */ char sb_fname[12]; /* 108 12 */ __uint8_t sb_blocklog; /* 120 1 */ __uint8_t sb_sectlog; /* 121 1 */ __uint8_t sb_inodelog; /* 122 1 */ __uint8_t sb_inopblog; /* 123 1 */ __uint8_t sb_agblklog; /* 124 1 */ __uint8_t sb_rextslog; /* 125 1 */ __uint8_t sb_inprogress; /* 126 1 */ __uint8_t sb_imax_pct; /* 127 1 */ /* --- cacheline 2 boundary (128 bytes) --- */ __uint64_t sb_icount; /* 128 8 */ __uint64_t sb_ifree; /* 136 8 */ __uint64_t sb_fdblocks; /* 144 8 */ __uint64_t sb_frextents; /* 152 8 */ xfs_ino_t sb_uquotino; /* 160 8 */ xfs_ino_t sb_gquotino; /* 168 8 */ __uint16_t sb_qflags; /* 176 2 */ __uint8_t sb_flags; /* 178 1 */ __uint8_t sb_shared_vn; /* 179 1 */ xfs_extlen_t sb_inoalignmt; /* 180 4 */ __uint32_t sb_unit; /* 184 4 */ __uint32_t sb_width; /* 188 4 */ /* --- cacheline 3 boundary (192 bytes) --- */ __uint8_t sb_dirblklog; /* 192 1 */ __uint8_t sb_logsectlog; /* 193 1 */ __uint16_t sb_logsectsize; /* 194 2 */ __uint32_t sb_logsunit; /* 196 4 */ __uint32_t sb_features2; /* 200 4 */ __uint32_t sb_bad_features2; /* 204 4 */ __uint32_t sb_features_compat; /* 208 4 */ __uint32_t sb_features_ro_compat; /* 212 4 */ __uint32_t sb_features_incompat; /* 216 4 */ __uint32_t sb_features_log_incompat; /* 220 4 */ __uint32_t sb_crc; /* 224 4 */ xfs_extlen_t sb_spino_align; /* 228 4 */ xfs_ino_t sb_pquotino; /* 232 8 */ xfs_lsn_t sb_lsn; /* 240 8 */ uuid_t sb_meta_uuid; /* 248 16 */ /* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */ /* size: 264, cachelines: 5, members: 55 */ /* last cacheline: 8 bytes */ }; struct xfs_agf { __be32 agf_magicnum; /* 0 4 */ __be32 agf_versionnum; /* 4 4 */ __be32 agf_seqno; /* 8 4 */ __be32 agf_length; /* 12 4 */ __be32 agf_roots[2]; /* 16 8 */ __be32 agf_spare0; /* 24 4 */ __be32 agf_levels[2]; /* 28 8 */ __be32 agf_spare1; /* 36 4 */ __be32 agf_flfirst; /* 40 4 */ __be32 agf_fllast; /* 44 4 */ __be32 agf_flcount; /* 48 4 */ __be32 agf_freeblks; /* 52 4 */ __be32 agf_longest; /* 56 4 */ __be32 agf_btreeblks; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ uuid_t agf_uuid; /* 64 16 */ __be64 agf_spare64[16]; /* 80 128 */ /* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */ __be64 agf_lsn; /* 208 8 */ __be32 agf_crc; /* 216 4 */ __be32 agf_spare2; /* 220 4 */ /* size: 224, cachelines: 4, members: 19 */ /* last cacheline: 32 bytes */ }; struct xfs_disk_dquot { __be16 d_magic; /* 0 2 */ __u8 d_version; /* 2 1 */ __u8 d_flags; /* 3 1 */ __be32 d_id; /* 4 4 */ __be64 d_blk_hardlimit; /* 8 8 */ __be64 d_blk_softlimit; /* 16 8 */ __be64 d_ino_hardlimit; /* 24 8 */ __be64 d_ino_softlimit; /* 32 8 */ __be64 d_bcount; /* 40 8 */ __be64 d_icount; /* 48 8 */ __be32 d_itimer; /* 56 4 */ __be32 d_btimer; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ __be16 d_iwarns; /* 64 2 */ __be16 d_bwarns; /* 66 2 */ __be32 d_pad0; /* 68 4 */ __be64 d_rtb_hardlimit; /* 72 8 */ __be64 d_rtb_softlimit; /* 80 8 */ __be64 d_rtbcount; /* 88 8 */ __be32 d_rtbtimer; /* 96 4 */ __be16 d_rtbwarns; /* 100 2 */ __be16 d_pad; /* 102 2 */ /* size: 104, cachelines: 2, members: 21 */ /* last cacheline: 40 bytes */ }; struct xfs_bmbt_rec_host { __uint64_t l0; /* 0 8 */ __uint64_t l1; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_bmbt_irec { xfs_fileoff_t br_startoff; /* 0 8 */ xfs_fsblock_t br_startblock; /* 8 8 */ xfs_filblks_t br_blockcount; /* 16 8 */ xfs_exntst_t br_state; /* 24 4 */ /* size: 32, cachelines: 1, members: 4 */ /* padding: 4 */ /* last cacheline: 32 bytes */ }; struct xfs_btree_block { __be32 bb_magic; /* 0 4 */ __be16 bb_level; /* 4 2 */ __be16 bb_numrecs; /* 6 2 */ union { struct { __be32 bb_leftsib; /* 8 4 */ __be32 bb_rightsib; /* 12 4 */ __be64 bb_blkno; /* 16 8 */ __be64 bb_lsn; /* 24 8 */ uuid_t bb_uuid; /* 32 16 */ __be32 bb_owner; /* 48 4 */ __le32 bb_crc; /* 52 4 */ } s; /* 48 */ struct { __be64 bb_leftsib; /* 8 8 */ __be64 bb_rightsib; /* 16 8 */ __be64 bb_blkno; /* 24 8 */ __be64 bb_lsn; /* 32 8 */ uuid_t bb_uuid; /* 40 16 */ __be64 bb_owner; /* 56 8 */ __le32 bb_crc; /* 64 4 */ __be32 bb_pad; /* 68 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ } l; /* 64 */ } bb_u; /* 8 64 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ /* size: 72, cachelines: 2, members: 4 */ /* last cacheline: 8 bytes */ }; struct xlog_rec_header { __be32 h_magicno; /* 0 4 */ __be32 h_cycle; /* 4 4 */ __be32 h_version; /* 8 4 */ __be32 h_len; /* 12 4 */ __be64 h_lsn; /* 16 8 */ __be64 h_tail_lsn; /* 24 8 */ __le32 h_crc; /* 32 4 */ __be32 h_prev_block; /* 36 4 */ __be32 h_num_logops; /* 40 4 */ __be32 h_cycle_data[64]; /* 44 256 */ /* --- cacheline 4 boundary (256 bytes) was 44 bytes ago --- */ __be32 h_fmt; /* 300 4 */ uuid_t h_fs_uuid; /* 304 16 */ /* --- cacheline 5 boundary (320 bytes) --- */ __be32 h_size; /* 320 4 */ /* size: 328, cachelines: 6, members: 13 */ /* padding: 4 */ /* last cacheline: 8 bytes */ }; struct xlog_rec_ext_header { __be32 xh_cycle; /* 0 4 */ __be32 xh_cycle_data[64]; /* 4 256 */ /* --- cacheline 4 boundary (256 bytes) was 4 bytes ago --- */ /* size: 260, cachelines: 5, members: 2 */ /* last cacheline: 4 bytes */ }; struct xfs_log_iovec { void * i_addr; /* 0 8 */ int i_len; /* 8 4 */ uint i_type; /* 12 4 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; struct xfs_trans_header { uint th_magic; /* 0 4 */ uint th_type; /* 4 4 */ __int32_t th_tid; /* 8 4 */ uint th_num_items; /* 12 4 */ /* size: 16, cachelines: 1, members: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_inode_log_format { __uint16_t ilf_type; /* 0 2 */ __uint16_t ilf_size; /* 2 2 */ __uint32_t ilf_fields; /* 4 4 */ __uint16_t ilf_asize; /* 8 2 */ __uint16_t ilf_dsize; /* 10 2 */ /* XXX 4 bytes hole, try to pack */ __uint64_t ilf_ino; /* 16 8 */ union { __uint32_t ilfu_rdev; /* 4 */ uuid_t ilfu_uuid; /* 16 */ } ilf_u; /* 24 16 */ __int64_t ilf_blkno; /* 40 8 */ __int32_t ilf_len; /* 48 4 */ __int32_t ilf_boffset; /* 52 4 */ /* size: 56, cachelines: 1, members: 10 */ /* sum members: 52, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct xfs_ictimestamp { __int32_t t_sec; /* 0 4 */ __int32_t t_nsec; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xfs_icdinode { __uint16_t di_magic; /* 0 2 */ __uint16_t di_mode; /* 2 2 */ __int8_t di_version; /* 4 1 */ __int8_t di_format; /* 5 1 */ __uint16_t di_onlink; /* 6 2 */ __uint32_t di_uid; /* 8 4 */ __uint32_t di_gid; /* 12 4 */ __uint32_t di_nlink; /* 16 4 */ __uint16_t di_projid_lo; /* 20 2 */ __uint16_t di_projid_hi; /* 22 2 */ __uint8_t di_pad[6]; /* 24 6 */ __uint16_t di_flushiter; /* 30 2 */ xfs_ictimestamp_t di_atime; /* 32 8 */ xfs_ictimestamp_t di_mtime; /* 40 8 */ xfs_ictimestamp_t di_ctime; /* 48 8 */ xfs_fsize_t di_size; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ xfs_rfsblock_t di_nblocks; /* 64 8 */ xfs_extlen_t di_extsize; /* 72 4 */ xfs_extnum_t di_nextents; /* 76 4 */ xfs_aextnum_t di_anextents; /* 80 2 */ __uint8_t di_forkoff; /* 82 1 */ __int8_t di_aformat; /* 83 1 */ __uint32_t di_dmevmask; /* 84 4 */ __uint16_t di_dmstate; /* 88 2 */ __uint16_t di_flags; /* 90 2 */ __uint32_t di_gen; /* 92 4 */ xfs_agino_t di_next_unlinked; /* 96 4 */ __uint32_t di_crc; /* 100 4 */ __uint64_t di_changecount; /* 104 8 */ xfs_lsn_t di_lsn; /* 112 8 */ __uint64_t di_flags2; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ __uint8_t di_pad2[16]; /* 128 16 */ xfs_ictimestamp_t di_crtime; /* 144 8 */ xfs_ino_t di_ino; /* 152 8 */ uuid_t di_uuid; /* 160 16 */ /* size: 176, cachelines: 3, members: 35 */ /* last cacheline: 48 bytes */ }; struct xfs_buf_log_format { short unsigned int blf_type; /* 0 2 */ short unsigned int blf_size; /* 2 2 */ ushort blf_flags; /* 4 2 */ ushort blf_len; /* 6 2 */ __int64_t blf_blkno; /* 8 8 */ unsigned int blf_map_size; /* 16 4 */ unsigned int blf_data_map[16]; /* 20 64 */ /* --- cacheline 1 boundary (64 bytes) was 20 bytes ago --- */ /* size: 88, cachelines: 2, members: 7 */ /* padding: 4 */ /* last cacheline: 24 bytes */ }; struct xfs_icreate_log { __uint16_t icl_type; /* 0 2 */ __uint16_t icl_size; /* 2 2 */ __be32 icl_ag; /* 4 4 */ __be32 icl_agbno; /* 8 4 */ __be32 icl_count; /* 12 4 */ __be32 icl_isize; /* 16 4 */ __be32 icl_length; /* 20 4 */ __be32 icl_gen; /* 24 4 */ /* size: 28, cachelines: 1, members: 8 */ /* last cacheline: 28 bytes */ }; struct xfs_trans_res { uint tr_logres; /* 0 4 */ int tr_logcount; /* 4 4 */ int tr_logflags; /* 8 4 */ /* size: 12, cachelines: 1, members: 3 */ /* last cacheline: 12 bytes */ }; struct xfs_trans_resv { struct xfs_trans_res tr_write; /* 0 12 */ struct xfs_trans_res tr_itruncate; /* 12 12 */ struct xfs_trans_res tr_rename; /* 24 12 */ struct xfs_trans_res tr_link; /* 36 12 */ struct xfs_trans_res tr_remove; /* 48 12 */ struct xfs_trans_res tr_symlink; /* 60 12 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct xfs_trans_res tr_create; /* 72 12 */ struct xfs_trans_res tr_create_tmpfile; /* 84 12 */ struct xfs_trans_res tr_mkdir; /* 96 12 */ struct xfs_trans_res tr_ifree; /* 108 12 */ struct xfs_trans_res tr_ichange; /* 120 12 */ /* --- cacheline 2 boundary (128 bytes) was 4 bytes ago --- */ struct xfs_trans_res tr_growdata; /* 132 12 */ struct xfs_trans_res tr_addafork; /* 144 12 */ struct xfs_trans_res tr_writeid; /* 156 12 */ struct xfs_trans_res tr_attrinval; /* 168 12 */ struct xfs_trans_res tr_attrsetm; /* 180 12 */ /* --- cacheline 3 boundary (192 bytes) --- */ struct xfs_trans_res tr_attrsetrt; /* 192 12 */ struct xfs_trans_res tr_attrrm; /* 204 12 */ struct xfs_trans_res tr_clearagi; /* 216 12 */ struct xfs_trans_res tr_growrtalloc; /* 228 12 */ struct xfs_trans_res tr_growrtzero; /* 240 12 */ struct xfs_trans_res tr_growrtfree; /* 252 12 */ /* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */ struct xfs_trans_res tr_qm_setqlim; /* 264 12 */ struct xfs_trans_res tr_qm_dqalloc; /* 276 12 */ struct xfs_trans_res tr_qm_quotaoff; /* 288 12 */ struct xfs_trans_res tr_qm_equotaoff; /* 300 12 */ struct xfs_trans_res tr_sb; /* 312 12 */ /* --- cacheline 5 boundary (320 bytes) was 4 bytes ago --- */ struct xfs_trans_res tr_fsyncts; /* 324 12 */ /* size: 336, cachelines: 6, members: 28 */ /* last cacheline: 16 bytes */ }; struct xfs_da_geometry { int blksize; /* 0 4 */ int fsbcount; /* 4 4 */ uint8_t fsblog; /* 8 1 */ uint8_t blklog; /* 9 1 */ /* XXX 2 bytes hole, try to pack */ uint node_ents; /* 12 4 */ int magicpct; /* 16 4 */ xfs_dablk_t datablk; /* 20 4 */ xfs_dablk_t leafblk; /* 24 4 */ xfs_dablk_t freeblk; /* 28 4 */ /* size: 32, cachelines: 1, members: 9 */ /* sum members: 30, holes: 1, sum holes: 2 */ /* last cacheline: 32 bytes */ }; struct xlog { struct xfs_mount * l_mp; /* 0 8 */ struct xfs_ail * l_ailp; /* 8 8 */ struct xfs_cil * l_cilp; /* 16 8 */ struct xfs_buf * l_xbuf; /* 24 8 */ struct xfs_buftarg * l_targ; /* 32 8 */ struct delayed_work l_work; /* 40 128 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 2 boundary (128 bytes) was 40 bytes ago --- */ uint l_flags; /* 168 4 */ uint l_quotaoffs_flag; /* 172 4 */ struct list_head * l_buf_cancel_table; /* 176 8 */ int l_iclog_hsize; /* 184 4 */ int l_iclog_heads; /* 188 4 */ /* --- cacheline 3 boundary (192 bytes) --- */ uint l_sectBBsize; /* 192 4 */ int l_iclog_size; /* 196 4 */ int l_iclog_size_log; /* 200 4 */ int l_iclog_bufs; /* 204 4 */ xfs_daddr_t l_logBBstart; /* 208 8 */ int l_logsize; /* 216 4 */ int l_logBBsize; /* 220 4 */ /* XXX 32 bytes hole, try to pack */ /* --- cacheline 4 boundary (256 bytes) --- */ wait_queue_head_t l_flush_wait; /* 256 24 */ int l_covered_state; /* 280 4 */ /* XXX 4 bytes hole, try to pack */ xlog_in_core_t * l_iclog; /* 288 8 */ spinlock_t l_icloglock; /* 296 4 */ int l_curr_cycle; /* 300 4 */ int l_prev_cycle; /* 304 4 */ int l_curr_block; /* 308 4 */ int l_prev_block; /* 312 4 */ /* XXX 68 bytes hole, try to pack */ /* --- cacheline 6 boundary (384 bytes) --- */ atomic64_t l_last_sync_lsn; /* 384 8 */ /* XXX 120 bytes hole, try to pack */ /* --- cacheline 8 boundary (512 bytes) --- */ atomic64_t l_tail_lsn; /* 512 8 */ /* XXX 120 bytes hole, try to pack */ /* --- cacheline 10 boundary (640 bytes) --- */ struct xlog_grant_head l_reserve_head; /* 640 128 */ /* --- cacheline 12 boundary (768 bytes) --- */ struct xlog_grant_head l_write_head; /* 768 128 */ /* --- cacheline 14 boundary (896 bytes) --- */ struct xfs_kobj l_kobj; /* 896 96 */ /* --- cacheline 15 boundary (960 bytes) was 32 bytes ago --- */ /* size: 1024, cachelines: 16, members: 31 */ /* sum members: 648, holes: 5, sum holes: 344 */ /* padding: 32 */ /* paddings: 1, sum paddings: 4 */ }; struct xfs_inode { struct xfs_mount * i_mount; /* 0 8 */ struct xfs_dquot * i_udquot; /* 8 8 */ struct xfs_dquot * i_gdquot; /* 16 8 */ struct xfs_dquot * i_pdquot; /* 24 8 */ xfs_ino_t i_ino; /* 32 8 */ struct xfs_imap i_imap; /* 40 16 */ xfs_ifork_t * i_afp; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ xfs_ifork_t i_df; /* 64 64 */ /* --- cacheline 2 boundary (128 bytes) --- */ const struct xfs_dir_ops * d_ops; /* 128 8 */ struct xfs_inode_log_item * i_itemp; /* 136 8 */ mrlock_t i_lock; /* 144 40 */ mrlock_t i_iolock; /* 184 40 */ /* --- cacheline 3 boundary (192 bytes) was 32 bytes ago --- */ mrlock_t i_mmaplock; /* 224 40 */ /* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */ atomic_t i_pincount; /* 264 4 */ spinlock_t i_flags_lock; /* 268 4 */ long unsigned int i_flags; /* 272 8 */ unsigned int i_delayed_blks; /* 280 4 */ /* XXX 4 bytes hole, try to pack */ xfs_icdinode_t i_d; /* 288 176 */ /* --- cacheline 7 boundary (448 bytes) was 16 bytes ago --- */ struct inode i_vnode; /* 464 560 */ /* --- cacheline 16 boundary (1024 bytes) --- */ /* size: 1024, cachelines: 16, members: 19 */ /* sum members: 1020, holes: 1, sum holes: 4 */ }; struct xfs_nameops { xfs_dahash_t (*hashname)(struct xfs_name *); /* 0 8 */ enum xfs_dacmp (*compname)(struct xfs_da_args *, const unsigned char *, int); /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_da_node_entry { __be32 hashval; /* 0 4 */ __be32 before; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xfs_imap { xfs_daddr_t im_blkno; /* 0 8 */ ushort im_len; /* 8 2 */ ushort im_boffset; /* 10 2 */ /* size: 16, cachelines: 1, members: 3 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_ext_irec { xfs_bmbt_rec_host_t * er_extbuf; /* 0 8 */ xfs_extnum_t er_extoff; /* 8 4 */ xfs_extnum_t er_extcount; /* 12 4 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; struct xfs_ifork { int if_bytes; /* 0 4 */ int if_real_bytes; /* 4 4 */ struct xfs_btree_block * if_broot; /* 8 8 */ short int if_broot_bytes; /* 16 2 */ unsigned char if_flags; /* 18 1 */ /* XXX 5 bytes hole, try to pack */ union { xfs_bmbt_rec_host_t * if_extents; /* 8 */ xfs_ext_irec_t * if_ext_irec; /* 8 */ char * if_data; /* 8 */ } if_u1; /* 24 8 */ union { xfs_bmbt_rec_host_t if_inline_ext[2]; /* 32 */ char if_inline_data[32]; /* 32 */ xfs_dev_t if_rdev; /* 4 */ uuid_t if_uuid; /* 16 */ } if_u2; /* 32 32 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 7 */ /* sum members: 59, holes: 1, sum holes: 5 */ }; struct xfs_dquot { uint dq_flags; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head q_lru; /* 8 16 */ struct xfs_mount * q_mount; /* 24 8 */ struct xfs_trans * q_transp; /* 32 8 */ uint q_nrefs; /* 40 4 */ /* XXX 4 bytes hole, try to pack */ xfs_daddr_t q_blkno; /* 48 8 */ int q_bufoffset; /* 56 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 1 boundary (64 bytes) --- */ xfs_fileoff_t q_fileoffset; /* 64 8 */ xfs_disk_dquot_t q_core; /* 72 104 */ /* --- cacheline 2 boundary (128 bytes) was 48 bytes ago --- */ xfs_dq_logitem_t q_logitem; /* 176 128 */ /* --- cacheline 4 boundary (256 bytes) was 48 bytes ago --- */ xfs_qcnt_t q_res_bcount; /* 304 8 */ xfs_qcnt_t q_res_icount; /* 312 8 */ /* --- cacheline 5 boundary (320 bytes) --- */ xfs_qcnt_t q_res_rtbcount; /* 320 8 */ xfs_qcnt_t q_prealloc_lo_wmark; /* 328 8 */ xfs_qcnt_t q_prealloc_hi_wmark; /* 336 8 */ int64_t q_low_space[3]; /* 344 24 */ struct mutex q_qlock; /* 368 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 6 boundary (384 bytes) was 24 bytes ago --- */ struct completion q_flush; /* 408 32 */ atomic_t q_pincount; /* 440 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 7 boundary (448 bytes) --- */ wait_queue_head_t q_pinwait; /* 448 24 */ /* size: 472, cachelines: 8, members: 20 */ /* sum members: 456, holes: 4, sum holes: 16 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 24 bytes */ }; struct xfs_inode_log_item { xfs_log_item_t ili_item; /* 0 112 */ /* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */ struct xfs_inode * ili_inode; /* 112 8 */ xfs_lsn_t ili_flush_lsn; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ xfs_lsn_t ili_last_lsn; /* 128 8 */ short unsigned int ili_lock_flags; /* 136 2 */ short unsigned int ili_logged; /* 138 2 */ unsigned int ili_last_fields; /* 140 4 */ unsigned int ili_fields; /* 144 4 */ unsigned int ili_fsync_fields; /* 148 4 */ /* size: 152, cachelines: 3, members: 9 */ /* last cacheline: 24 bytes */ }; struct xfs_bmap_free { xfs_bmap_free_item_t * xbf_first; /* 0 8 */ int xbf_count; /* 8 4 */ int xbf_low; /* 12 4 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; struct xfs_da_args { struct xfs_da_geometry * geo; /* 0 8 */ const __uint8_t * name; /* 8 8 */ int namelen; /* 16 4 */ __uint8_t filetype; /* 20 1 */ /* XXX 3 bytes hole, try to pack */ __uint8_t * value; /* 24 8 */ int valuelen; /* 32 4 */ int flags; /* 36 4 */ xfs_dahash_t hashval; /* 40 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t inumber; /* 48 8 */ struct xfs_inode * dp; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ xfs_fsblock_t * firstblock; /* 64 8 */ struct xfs_bmap_free * flist; /* 72 8 */ struct xfs_trans * trans; /* 80 8 */ xfs_extlen_t total; /* 88 4 */ int whichfork; /* 92 4 */ xfs_dablk_t blkno; /* 96 4 */ int index; /* 100 4 */ xfs_dablk_t rmtblkno; /* 104 4 */ int rmtblkcnt; /* 108 4 */ int rmtvaluelen; /* 112 4 */ xfs_dablk_t blkno2; /* 116 4 */ int index2; /* 120 4 */ xfs_dablk_t rmtblkno2; /* 124 4 */ /* --- cacheline 2 boundary (128 bytes) --- */ int rmtblkcnt2; /* 128 4 */ int rmtvaluelen2; /* 132 4 */ int op_flags; /* 136 4 */ enum xfs_dacmp cmpresult; /* 140 4 */ /* size: 144, cachelines: 3, members: 27 */ /* sum members: 137, holes: 2, sum holes: 7 */ /* last cacheline: 16 bytes */ }; struct xfs_alloc_arg { struct xfs_trans * tp; /* 0 8 */ struct xfs_mount * mp; /* 8 8 */ struct xfs_buf * agbp; /* 16 8 */ struct xfs_perag * pag; /* 24 8 */ struct xfs_inode * ip; /* 32 8 */ xfs_fsblock_t fsbno; /* 40 8 */ xfs_agnumber_t agno; /* 48 4 */ xfs_agblock_t agbno; /* 52 4 */ xfs_extlen_t minlen; /* 56 4 */ xfs_extlen_t maxlen; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ xfs_extlen_t mod; /* 64 4 */ xfs_extlen_t prod; /* 68 4 */ xfs_extlen_t minleft; /* 72 4 */ xfs_extlen_t total; /* 76 4 */ xfs_extlen_t alignment; /* 80 4 */ xfs_extlen_t minalignslop; /* 84 4 */ xfs_agblock_t min_agbno; /* 88 4 */ xfs_agblock_t max_agbno; /* 92 4 */ xfs_extlen_t len; /* 96 4 */ xfs_alloctype_t type; /* 100 4 */ xfs_alloctype_t otype; /* 104 4 */ char wasdel; /* 108 1 */ char wasfromfl; /* 109 1 */ char isfl; /* 110 1 */ char userdata; /* 111 1 */ xfs_fsblock_t firstblock; /* 112 8 */ /* size: 120, cachelines: 2, members: 26 */ /* last cacheline: 56 bytes */ }; struct xfs_bmap_free_item { xfs_fsblock_t xbfi_startblock; /* 0 8 */ xfs_extlen_t xbfi_blockcount; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct xfs_bmap_free_item * xbfi_next; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* sum members: 20, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; struct attrlist_cursor_kern { __u32 hashval; /* 0 4 */ __u32 blkno; /* 4 4 */ __u32 offset; /* 8 4 */ __u16 pad1; /* 12 2 */ __u8 pad2; /* 14 1 */ __u8 initted; /* 15 1 */ /* size: 16, cachelines: 1, members: 6 */ /* last cacheline: 16 bytes */ }; struct xfs_attr_list_context { struct xfs_inode * dp; /* 0 8 */ struct attrlist_cursor_kern * cursor; /* 8 8 */ char * alist; /* 16 8 */ int seen_enough; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ ssize_t count; /* 32 8 */ int dupcnt; /* 40 4 */ int bufsize; /* 44 4 */ int firstu; /* 48 4 */ int flags; /* 52 4 */ int resynch; /* 56 4 */ int put_value; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ put_listent_func_t put_listent; /* 64 8 */ int index; /* 72 4 */ /* size: 80, cachelines: 2, members: 13 */ /* sum members: 72, holes: 1, sum holes: 4 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_item_ops { void (*iop_size)(xfs_log_item_t *, int *, int *); /* 0 8 */ void (*iop_format)(xfs_log_item_t *, struct xfs_log_vec *); /* 8 8 */ void (*iop_pin)(xfs_log_item_t *); /* 16 8 */ void (*iop_unpin)(xfs_log_item_t *, int); /* 24 8 */ uint (*iop_push)(struct xfs_log_item *, struct list_head *); /* 32 8 */ void (*iop_unlock)(xfs_log_item_t *); /* 40 8 */ xfs_lsn_t (*iop_committed)(xfs_log_item_t *, xfs_lsn_t); /* 48 8 */ void (*iop_committing)(xfs_log_item_t *, xfs_lsn_t); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 8 */ }; struct xfs_log_vec { struct xfs_log_vec * lv_next; /* 0 8 */ int lv_niovecs; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct xfs_log_iovec * lv_iovecp; /* 16 8 */ struct xfs_log_item * lv_item; /* 24 8 */ char * lv_buf; /* 32 8 */ int lv_bytes; /* 40 4 */ int lv_buf_len; /* 44 4 */ int lv_size; /* 48 4 */ /* size: 56, cachelines: 1, members: 8 */ /* sum members: 48, holes: 1, sum holes: 4 */ /* padding: 4 */ /* last cacheline: 56 bytes */ }; struct xlog_ticket { struct list_head t_queue; /* 0 16 */ struct task_struct * t_task; /* 16 8 */ xlog_tid_t t_tid; /* 24 4 */ atomic_t t_ref; /* 28 4 */ int t_curr_res; /* 32 4 */ int t_unit_res; /* 36 4 */ char t_ocnt; /* 40 1 */ char t_cnt; /* 41 1 */ char t_clientid; /* 42 1 */ char t_flags; /* 43 1 */ uint t_trans_type; /* 44 4 */ uint t_res_num; /* 48 4 */ uint t_res_num_ophdrs; /* 52 4 */ uint t_res_arr_sum; /* 56 4 */ uint t_res_o_flow; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ xlog_res_t t_res_arr[15]; /* 64 120 */ /* --- cacheline 2 boundary (128 bytes) was 56 bytes ago --- */ /* size: 184, cachelines: 3, members: 16 */ /* last cacheline: 56 bytes */ }; struct xfs_log_callback { struct xfs_log_callback * cb_next; /* 0 8 */ void (*cb_func)(void *, int); /* 8 8 */ void * cb_arg; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct xlog_res { uint r_len; /* 0 4 */ uint r_type; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xlog_in_core { wait_queue_head_t ic_force_wait; /* 0 24 */ wait_queue_head_t ic_write_wait; /* 24 24 */ struct xlog_in_core * ic_next; /* 48 8 */ struct xlog_in_core * ic_prev; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct xfs_buf * ic_bp; /* 64 8 */ struct xlog * ic_log; /* 72 8 */ int ic_size; /* 80 4 */ int ic_offset; /* 84 4 */ int ic_bwritecnt; /* 88 4 */ short unsigned int ic_state; /* 92 2 */ /* XXX 2 bytes hole, try to pack */ char * ic_datap; /* 96 8 */ /* XXX 24 bytes hole, try to pack */ /* --- cacheline 2 boundary (128 bytes) --- */ spinlock_t ic_callback_lock; /* 128 4 */ /* XXX 4 bytes hole, try to pack */ struct xfs_log_callback * ic_callback; /* 136 8 */ struct xfs_log_callback * * ic_callback_tail; /* 144 8 */ /* XXX 104 bytes hole, try to pack */ /* --- cacheline 4 boundary (256 bytes) --- */ atomic_t ic_refcnt; /* 256 4 */ /* XXX 4 bytes hole, try to pack */ xlog_in_core_2_t * ic_data; /* 264 8 */ /* size: 384, cachelines: 6, members: 16 */ /* sum members: 134, holes: 5, sum holes: 138 */ /* padding: 112 */ }; struct xfs_cil_ctx { struct xfs_cil * cil; /* 0 8 */ xfs_lsn_t sequence; /* 8 8 */ xfs_lsn_t start_lsn; /* 16 8 */ xfs_lsn_t commit_lsn; /* 24 8 */ struct xlog_ticket * ticket; /* 32 8 */ int nvecs; /* 40 4 */ int space_used; /* 44 4 */ struct list_head busy_extents; /* 48 16 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct xfs_log_vec * lv_chain; /* 64 8 */ struct xfs_log_callback log_cb; /* 72 24 */ struct list_head committing; /* 96 16 */ /* size: 112, cachelines: 2, members: 11 */ /* last cacheline: 48 bytes */ }; struct xfs_cil { struct xlog * xc_log; /* 0 8 */ struct list_head xc_cil; /* 8 16 */ spinlock_t xc_cil_lock; /* 24 4 */ /* XXX 100 bytes hole, try to pack */ /* --- cacheline 2 boundary (128 bytes) --- */ struct rw_semaphore xc_ctx_lock; /* 128 40 */ struct xfs_cil_ctx * xc_ctx; /* 168 8 */ /* XXX 80 bytes hole, try to pack */ /* --- cacheline 4 boundary (256 bytes) --- */ spinlock_t xc_push_lock; /* 256 4 */ /* XXX 4 bytes hole, try to pack */ xfs_lsn_t xc_push_seq; /* 264 8 */ struct list_head xc_committing; /* 272 16 */ wait_queue_head_t xc_commit_wait; /* 288 24 */ xfs_lsn_t xc_current_sequence; /* 312 8 */ /* --- cacheline 5 boundary (320 bytes) --- */ struct work_struct xc_push_work; /* 320 32 */ /* size: 384, cachelines: 6, members: 11 */ /* sum members: 168, holes: 3, sum holes: 184 */ /* padding: 32 */ }; struct xlog_grant_head { spinlock_t lock; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head waiters; /* 8 16 */ atomic64_t grant; /* 24 8 */ /* size: 128, cachelines: 2, members: 3 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* padding: 96 */ }; struct xfs_buf_log_item { xfs_log_item_t bli_item; /* 0 112 */ /* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */ struct xfs_buf * bli_buf; /* 112 8 */ unsigned int bli_flags; /* 120 4 */ unsigned int bli_recur; /* 124 4 */ /* --- cacheline 2 boundary (128 bytes) --- */ atomic_t bli_refcount; /* 128 4 */ int bli_format_count; /* 132 4 */ struct xfs_buf_log_format * bli_formats; /* 136 8 */ struct xfs_buf_log_format __bli_format; /* 144 88 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 3 boundary (192 bytes) was 40 bytes ago --- */ /* size: 232, cachelines: 4, members: 8 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 40 bytes */ }; struct xfs_dq_logitem { xfs_log_item_t qli_item; /* 0 112 */ /* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */ struct xfs_dquot * qli_dquot; /* 112 8 */ xfs_lsn_t qli_flush_lsn; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ /* size: 128, cachelines: 2, members: 3 */ }; struct xlog_recover_item { struct list_head ri_list; /* 0 16 */ int ri_type; /* 16 4 */ int ri_cnt; /* 20 4 */ int ri_total; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ xfs_log_iovec_t * ri_buf; /* 32 8 */ /* size: 40, cachelines: 1, members: 5 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct xlog_recover { struct hlist_node r_list; /* 0 16 */ xlog_tid_t r_log_tid; /* 16 4 */ xfs_trans_header_t r_theader; /* 20 16 */ int r_state; /* 36 4 */ xfs_lsn_t r_lsn; /* 40 8 */ struct list_head r_itemq; /* 48 16 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 6 */ }; struct tracepoint_func { void * func; /* 0 8 */ void * data; /* 8 8 */ int prio; /* 16 4 */ /* size: 24, cachelines: 1, members: 3 */ /* padding: 4 */ /* last cacheline: 24 bytes */ }; struct ring_buffer_event { u32 type_len:5; /* 0:27 4 */ u32 time_delta:27; /* 0: 0 4 */ u32 array[0]; /* 4 0 */ /* size: 4, cachelines: 1, members: 3 */ /* last cacheline: 4 bytes */ }; struct seq_buf { char * buffer; /* 0 8 */ size_t size; /* 8 8 */ size_t len; /* 16 8 */ loff_t readpos; /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* last cacheline: 32 bytes */ }; struct trace_seq { unsigned char buffer[65536]; /* 0 65536 */ struct seq_buf seq; /* 0 32 */ int full; /* 0 4 */ /* --- cacheline 1024 boundary (65536 bytes) --- */ /* size: 65576, cachelines: 1025, members: 3 */ /* padding: 36 */ /* last cacheline: 40 bytes */ /* BRAIN FART ALERT! 65576 != 65536 + 0(holes), diff = 40 */ }; struct perf_event_attr { __u32 type; /* 0 4 */ __u32 size; /* 4 4 */ __u64 config; /* 8 8 */ union { __u64 sample_period; /* 8 */ __u64 sample_freq; /* 8 */ }; /* 16 8 */ __u64 sample_type; /* 24 8 */ __u64 read_format; /* 32 8 */ __u64 disabled:1; /* 40:63 8 */ __u64 inherit:1; /* 40:62 8 */ __u64 pinned:1; /* 40:61 8 */ __u64 exclusive:1; /* 40:60 8 */ __u64 exclude_user:1; /* 40:59 8 */ __u64 exclude_kernel:1; /* 40:58 8 */ __u64 exclude_hv:1; /* 40:57 8 */ __u64 exclude_idle:1; /* 40:56 8 */ __u64 mmap:1; /* 40:55 8 */ __u64 comm:1; /* 40:54 8 */ __u64 freq:1; /* 40:53 8 */ __u64 inherit_stat:1; /* 40:52 8 */ __u64 enable_on_exec:1; /* 40:51 8 */ __u64 task:1; /* 40:50 8 */ __u64 watermark:1; /* 40:49 8 */ __u64 precise_ip:2; /* 40:47 8 */ __u64 mmap_data:1; /* 40:46 8 */ __u64 sample_id_all:1; /* 40:45 8 */ __u64 exclude_host:1; /* 40:44 8 */ __u64 exclude_guest:1; /* 40:43 8 */ __u64 exclude_callchain_kernel:1; /* 40:42 8 */ __u64 exclude_callchain_user:1; /* 40:41 8 */ __u64 mmap2:1; /* 40:40 8 */ __u64 comm_exec:1; /* 40:39 8 */ __u64 use_clockid:1; /* 40:38 8 */ __u64 context_switch:1; /* 40:37 8 */ __u64 __reserved_1:37; /* 40: 0 8 */ union { __u32 wakeup_events; /* 4 */ __u32 wakeup_watermark; /* 4 */ }; /* 48 4 */ __u32 bp_type; /* 52 4 */ union { __u64 bp_addr; /* 8 */ __u64 config1; /* 8 */ }; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ union { __u64 bp_len; /* 8 */ __u64 config2; /* 8 */ }; /* 64 8 */ __u64 branch_sample_type; /* 72 8 */ __u64 sample_regs_user; /* 80 8 */ __u32 sample_stack_user; /* 88 4 */ __s32 clockid; /* 92 4 */ __u64 sample_regs_intr; /* 96 8 */ __u32 aux_watermark; /* 104 4 */ __u32 __reserved_2; /* 108 4 */ /* size: 112, cachelines: 2, members: 44 */ /* last cacheline: 48 bytes */ }; struct perf_branch_entry { __u64 from; /* 0 8 */ __u64 to; /* 8 8 */ __u64 mispred:1; /* 16:63 8 */ __u64 predicted:1; /* 16:62 8 */ __u64 in_tx:1; /* 16:61 8 */ __u64 abort:1; /* 16:60 8 */ __u64 cycles:16; /* 16:44 8 */ __u64 reserved:44; /* 16: 0 8 */ /* size: 24, cachelines: 1, members: 8 */ /* last cacheline: 24 bytes */ }; struct ns_common { atomic_long_t stashed; /* 0 8 */ const struct proc_ns_operations * ops; /* 8 8 */ unsigned int inum; /* 16 4 */ /* size: 24, cachelines: 1, members: 3 */ /* padding: 4 */ /* last cacheline: 24 bytes */ }; struct pidmap { atomic_t nr_free; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ void * page; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* sum members: 12, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct ftrace_ops { ftrace_func_t func; /* 0 8 */ struct ftrace_ops * next; /* 8 8 */ long unsigned int flags; /* 16 8 */ void * private; /* 24 8 */ ftrace_func_t saved_func; /* 32 8 */ int * disabled; /* 40 8 */ struct ftrace_ops_hash local_hash; /* 48 56 */ /* --- cacheline 1 boundary (64 bytes) was 40 bytes ago --- */ struct ftrace_ops_hash * func_hash; /* 104 8 */ struct ftrace_ops_hash old_hash; /* 112 56 */ /* --- cacheline 2 boundary (128 bytes) was 40 bytes ago --- */ long unsigned int trampoline; /* 168 8 */ long unsigned int trampoline_size; /* 176 8 */ /* size: 184, cachelines: 3, members: 11 */ /* last cacheline: 56 bytes */ }; struct ftrace_ops_hash { struct ftrace_hash * notrace_hash; /* 0 8 */ struct ftrace_hash * filter_hash; /* 8 8 */ struct mutex regex_lock; /* 16 40 */ /* XXX last struct has 4 bytes of padding */ /* size: 56, cachelines: 1, members: 3 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 56 bytes */ }; struct irq_work { long unsigned int flags; /* 0 8 */ struct llist_node llnode; /* 8 8 */ void (*func)(struct irq_work *); /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct perf_regs { __u64 abi; /* 0 8 */ struct pt_regs * regs; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct perf_callchain_entry { __u64 nr; /* 0 8 */ __u64 ip[127]; /* 8 1016 */ /* --- cacheline 16 boundary (1024 bytes) --- */ /* size: 1024, cachelines: 16, members: 2 */ }; struct perf_raw_record { u32 size; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ void * data; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* sum members: 12, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct perf_branch_stack { __u64 nr; /* 0 8 */ struct perf_branch_entry entries[0]; /* 8 0 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct hw_perf_event_extra { u64 config; /* 0 8 */ unsigned int reg; /* 8 4 */ int alloc; /* 12 4 */ int idx; /* 16 4 */ /* size: 24, cachelines: 1, members: 4 */ /* padding: 4 */ /* last cacheline: 24 bytes */ }; struct hw_perf_event { union { struct { u64 config; /* 0 8 */ u64 last_tag; /* 8 8 */ long unsigned int config_base; /* 16 8 */ long unsigned int event_base; /* 24 8 */ int event_base_rdpmc; /* 32 4 */ int idx; /* 36 4 */ int last_cpu; /* 40 4 */ int flags; /* 44 4 */ struct hw_perf_event_extra extra_reg; /* 48 24 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct hw_perf_event_extra branch_reg; /* 72 24 */ /* XXX last struct has 4 bytes of padding */ }; /* 96 */ struct { struct hrtimer hrtimer; /* 0 88 */ /* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */ }; /* 88 */ struct { struct list_head tp_list; /* 0 16 */ }; /* 16 */ struct { int cqm_state; /* 0 4 */ u32 cqm_rmid; /* 4 4 */ struct list_head cqm_events_entry; /* 8 16 */ struct list_head cqm_groups_entry; /* 24 16 */ struct list_head cqm_group_entry; /* 40 16 */ }; /* 56 */ struct { int itrace_started; /* 0 4 */ }; /* 4 */ struct { struct arch_hw_breakpoint info; /* 0 24 */ /* XXX last struct has 4 bytes of padding */ struct list_head bp_list; /* 24 16 */ }; /* 40 */ }; /* 0 96 */ /* --- cacheline 1 boundary (64 bytes) was 32 bytes ago --- */ struct task_struct * target; /* 96 8 */ int state; /* 104 4 */ /* XXX 4 bytes hole, try to pack */ local64_t prev_count; /* 112 8 */ u64 sample_period; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ u64 last_period; /* 128 8 */ local64_t period_left; /* 136 8 */ u64 interrupts_seq; /* 144 8 */ u64 interrupts; /* 152 8 */ u64 freq_time_stamp; /* 160 8 */ u64 freq_count_stamp; /* 168 8 */ /* size: 176, cachelines: 3, members: 11 */ /* sum members: 172, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct pmu { struct list_head entry; /* 0 16 */ struct module * module; /* 16 8 */ struct device * dev; /* 24 8 */ const struct attribute_group * * attr_groups; /* 32 8 */ const char * name; /* 40 8 */ int type; /* 48 4 */ int capabilities; /* 52 4 */ int * pmu_disable_count; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct perf_cpu_context * pmu_cpu_context; /* 64 8 */ atomic_t exclusive_cnt; /* 72 4 */ int task_ctx_nr; /* 76 4 */ int hrtimer_interval_ms; /* 80 4 */ /* XXX 4 bytes hole, try to pack */ void (*pmu_enable)(struct pmu *); /* 88 8 */ void (*pmu_disable)(struct pmu *); /* 96 8 */ int (*event_init)(struct perf_event *); /* 104 8 */ void (*event_mapped)(struct perf_event *); /* 112 8 */ void (*event_unmapped)(struct perf_event *); /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ int (*add)(struct perf_event *, int); /* 128 8 */ void (*del)(struct perf_event *, int); /* 136 8 */ void (*start)(struct perf_event *, int); /* 144 8 */ void (*stop)(struct perf_event *, int); /* 152 8 */ void (*read)(struct perf_event *); /* 160 8 */ void (*start_txn)(struct pmu *, unsigned int); /* 168 8 */ int (*commit_txn)(struct pmu *); /* 176 8 */ void (*cancel_txn)(struct pmu *); /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ int (*event_idx)(struct perf_event *); /* 192 8 */ void (*sched_task)(struct perf_event_context *, bool); /* 200 8 */ size_t task_ctx_size; /* 208 8 */ u64 (*count)(struct perf_event *); /* 216 8 */ void * (*setup_aux)(int, void * *, int, bool); /* 224 8 */ void (*free_aux)(void *); /* 232 8 */ int (*filter_match)(struct perf_event *); /* 240 8 */ /* size: 248, cachelines: 4, members: 32 */ /* sum members: 244, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct perf_cpu_context { struct perf_event_context ctx; /* 0 232 */ /* --- cacheline 3 boundary (192 bytes) was 40 bytes ago --- */ struct perf_event_context * task_ctx; /* 232 8 */ int active_oncpu; /* 240 4 */ int exclusive; /* 244 4 */ raw_spinlock_t hrtimer_lock; /* 248 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 4 boundary (256 bytes) --- */ struct hrtimer hrtimer; /* 256 88 */ /* --- cacheline 5 boundary (320 bytes) was 24 bytes ago --- */ ktime_t hrtimer_interval; /* 344 8 */ unsigned int hrtimer_active; /* 352 4 */ /* XXX 4 bytes hole, try to pack */ struct pmu * unique_pmu; /* 360 8 */ struct perf_cgroup * cgrp; /* 368 8 */ /* size: 376, cachelines: 6, members: 10 */ /* sum members: 368, holes: 2, sum holes: 8 */ /* last cacheline: 56 bytes */ }; struct perf_sample_data { u64 addr; /* 0 8 */ struct perf_raw_record * raw; /* 8 8 */ struct perf_branch_stack * br_stack; /* 16 8 */ u64 period; /* 24 8 */ u64 weight; /* 32 8 */ u64 txn; /* 40 8 */ union perf_mem_data_src data_src; /* 48 8 */ u64 type; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ u64 ip; /* 64 8 */ struct { u32 pid; /* 72 4 */ u32 tid; /* 76 4 */ } tid_entry; /* 72 8 */ u64 time; /* 80 8 */ u64 id; /* 88 8 */ u64 stream_id; /* 96 8 */ struct { u32 cpu; /* 104 4 */ u32 reserved; /* 108 4 */ } cpu_entry; /* 104 8 */ struct perf_callchain_entry * callchain; /* 112 8 */ struct perf_regs regs_user; /* 120 16 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ struct pt_regs regs_user_copy; /* 136 288 */ /* --- cacheline 6 boundary (384 bytes) was 40 bytes ago --- */ struct perf_regs regs_intr; /* 424 16 */ u64 stack_user_size; /* 440 8 */ /* --- cacheline 7 boundary (448 bytes) --- */ /* size: 512, cachelines: 8, members: 19 */ /* padding: 64 */ }; struct perf_cgroup { struct cgroup_subsys_state css; /* 0 184 */ /* --- cacheline 2 boundary (128 bytes) was 56 bytes ago --- */ struct perf_cgroup_info * info; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ /* size: 192, cachelines: 3, members: 2 */ }; struct perf_cgroup_info { u64 time; /* 0 8 */ u64 timestamp; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct trace_print_flags { long unsigned int mask; /* 0 8 */ const char * name; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct trace_entry { short unsigned int type; /* 0 2 */ unsigned char flags; /* 2 1 */ unsigned char preempt_count; /* 3 1 */ int pid; /* 4 4 */ /* size: 8, cachelines: 1, members: 4 */ /* last cacheline: 8 bytes */ }; struct trace_iterator { struct trace_array * tr; /* 0 8 */ struct tracer * trace; /* 8 8 */ struct trace_buffer * trace_buffer; /* 16 8 */ void * private; /* 24 8 */ int cpu_file; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ struct mutex mutex; /* 40 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */ struct ring_buffer_iter * * buffer_iter; /* 80 8 */ long unsigned int iter_flags; /* 88 8 */ struct trace_seq tmp_seq; /* 96 65576 */ /* XXX last struct has 36 bytes of padding */ /* --- cacheline 1026 boundary (65664 bytes) was 8 bytes ago --- */ /* Bitfield combined with previous fields */ cpumask_var_t started; /* 0 8 */ bool snapshot; /* 0 1 */ struct trace_seq seq; /* 0 65576 */ /* XXX last struct has 36 bytes of padding */ struct trace_entry * ent; /* 0 8 */ long unsigned int lost_events; /* 0 8 */ int leftover; /* 0 4 */ int ent_size; /* 0 4 */ int cpu; /* 0 4 */ u64 ts; /* 0 8 */ loff_t pos; /* 0 8 */ long int idx; /* 0 8 */ /* --- cacheline 2051 boundary (131264 bytes) was 56 bytes ago --- */ /* size: 131320, cachelines: 2052, members: 20 */ /* sum members: 131316, holes: 1, sum holes: 4 */ /* padding: 240 */ /* paddings: 3, sum paddings: 76 */ /* last cacheline: 56 bytes */ /* BRAIN FART ALERT! 131320 != 131316 + 4(holes), diff = 0 */ }; struct trace_event { struct hlist_node node; /* 0 16 */ struct list_head list; /* 16 16 */ int type; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ struct trace_event_functions * funcs; /* 40 8 */ /* size: 48, cachelines: 1, members: 4 */ /* sum members: 44, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct trace_event_functions { trace_print_func trace; /* 0 8 */ trace_print_func raw; /* 8 8 */ trace_print_func hex; /* 16 8 */ trace_print_func binary; /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* last cacheline: 32 bytes */ }; struct trace_event_class { const char * system; /* 0 8 */ void * probe; /* 8 8 */ void * perf_probe; /* 16 8 */ int (*reg)(struct trace_event_call *, enum trace_reg, void *); /* 24 8 */ int (*define_fields)(struct trace_event_call *); /* 32 8 */ struct list_head * (*get_fields)(struct trace_event_call *); /* 40 8 */ struct list_head fields; /* 48 16 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*raw_init)(struct trace_event_call *); /* 64 8 */ /* size: 72, cachelines: 2, members: 8 */ /* last cacheline: 8 bytes */ }; struct trace_event_buffer { struct ring_buffer * buffer; /* 0 8 */ struct ring_buffer_event * event; /* 8 8 */ struct trace_event_file * trace_file; /* 16 8 */ void * entry; /* 24 8 */ long unsigned int flags; /* 32 8 */ int pc; /* 40 4 */ /* size: 48, cachelines: 1, members: 6 */ /* padding: 4 */ /* last cacheline: 48 bytes */ }; struct trace_event_file { struct list_head list; /* 0 16 */ struct trace_event_call * event_call; /* 16 8 */ struct event_filter * filter; /* 24 8 */ struct dentry * dir; /* 32 8 */ struct trace_array * tr; /* 40 8 */ struct trace_subsystem_dir * system; /* 48 8 */ struct list_head triggers; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ long unsigned int flags; /* 72 8 */ atomic_t sm_ref; /* 80 4 */ atomic_t tm_ref; /* 84 4 */ /* size: 88, cachelines: 2, members: 10 */ /* last cacheline: 24 bytes */ }; struct trace_event_raw_xfs_attr_list_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ u32 hashval; /* 24 4 */ u32 blkno; /* 28 4 */ u32 offset; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ void * alist; /* 40 8 */ int bufsize; /* 48 4 */ int count; /* 52 4 */ int firstu; /* 56 4 */ int dupcnt; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ int flags; /* 64 4 */ char __data[0]; /* 68 0 */ /* size: 72, cachelines: 2, members: 13 */ /* sum members: 60, holes: 2, sum holes: 8 */ /* padding: 4 */ /* last cacheline: 8 bytes */ }; struct trace_event_raw_xfs_perag_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ xfs_agnumber_t agno; /* 12 4 */ int refcount; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int caller_ip; /* 24 8 */ char __data[0]; /* 32 0 */ /* size: 32, cachelines: 1, members: 6 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct trace_event_raw_xfs_ag_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ xfs_agnumber_t agno; /* 12 4 */ char __data[0]; /* 16 0 */ /* size: 16, cachelines: 1, members: 4 */ /* last cacheline: 16 bytes */ }; struct trace_event_raw_xfs_attr_list_node_descend { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ u32 hashval; /* 24 4 */ u32 blkno; /* 28 4 */ u32 offset; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ void * alist; /* 40 8 */ int bufsize; /* 48 4 */ int count; /* 52 4 */ int firstu; /* 56 4 */ int dupcnt; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ int flags; /* 64 4 */ u32 bt_hashval; /* 68 4 */ u32 bt_before; /* 72 4 */ char __data[0]; /* 76 0 */ /* size: 80, cachelines: 2, members: 15 */ /* sum members: 68, holes: 2, sum holes: 8 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct trace_event_raw_xfs_iext_insert { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ xfs_extnum_t idx; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ xfs_fileoff_t startoff; /* 32 8 */ xfs_fsblock_t startblock; /* 40 8 */ xfs_filblks_t blockcount; /* 48 8 */ xfs_exntst_t state; /* 56 4 */ int bmap_state; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ long unsigned int caller_ip; /* 64 8 */ char __data[0]; /* 72 0 */ /* size: 72, cachelines: 2, members: 11 */ /* sum members: 64, holes: 2, sum holes: 8 */ /* last cacheline: 8 bytes */ }; struct trace_event_raw_xfs_bmap_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ xfs_extnum_t idx; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ xfs_fileoff_t startoff; /* 32 8 */ xfs_fsblock_t startblock; /* 40 8 */ xfs_filblks_t blockcount; /* 48 8 */ xfs_exntst_t state; /* 56 4 */ int bmap_state; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ long unsigned int caller_ip; /* 64 8 */ char __data[0]; /* 72 0 */ /* size: 72, cachelines: 2, members: 11 */ /* sum members: 64, holes: 2, sum holes: 8 */ /* last cacheline: 8 bytes */ }; struct trace_event_raw_xfs_buf_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_daddr_t bno; /* 16 8 */ int nblks; /* 24 4 */ int hold; /* 28 4 */ int pincount; /* 32 4 */ unsigned int lockval; /* 36 4 */ unsigned int flags; /* 40 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int caller_ip; /* 48 8 */ char __data[0]; /* 56 0 */ /* size: 56, cachelines: 1, members: 10 */ /* sum members: 48, holes: 2, sum holes: 8 */ /* last cacheline: 56 bytes */ }; struct trace_event_raw_xfs_buf_flags_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_daddr_t bno; /* 16 8 */ size_t buffer_length; /* 24 8 */ int hold; /* 32 4 */ int pincount; /* 36 4 */ unsigned int lockval; /* 40 4 */ unsigned int flags; /* 44 4 */ long unsigned int caller_ip; /* 48 8 */ char __data[0]; /* 56 0 */ /* size: 56, cachelines: 1, members: 10 */ /* sum members: 52, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct trace_event_raw_xfs_buf_ioerror { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_daddr_t bno; /* 16 8 */ size_t buffer_length; /* 24 8 */ unsigned int flags; /* 32 4 */ int hold; /* 36 4 */ int pincount; /* 40 4 */ unsigned int lockval; /* 44 4 */ int error; /* 48 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int caller_ip; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ char __data[0]; /* 64 0 */ /* size: 64, cachelines: 1, members: 11 */ /* sum members: 56, holes: 2, sum holes: 8 */ }; struct trace_event_raw_xfs_buf_item_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_daddr_t buf_bno; /* 16 8 */ size_t buf_len; /* 24 8 */ int buf_hold; /* 32 4 */ int buf_pincount; /* 36 4 */ int buf_lockval; /* 40 4 */ unsigned int buf_flags; /* 44 4 */ unsigned int bli_recur; /* 48 4 */ int bli_refcount; /* 52 4 */ unsigned int bli_flags; /* 56 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 1 boundary (64 bytes) --- */ void * li_desc; /* 64 8 */ unsigned int li_flags; /* 72 4 */ char __data[0]; /* 76 0 */ /* size: 80, cachelines: 2, members: 14 */ /* sum members: 68, holes: 2, sum holes: 8 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct trace_event_raw_xfs_filestream_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ xfs_agnumber_t agno; /* 24 4 */ int streams; /* 28 4 */ char __data[0]; /* 32 0 */ /* size: 32, cachelines: 1, members: 6 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct trace_event_raw_xfs_filestream_pick { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ xfs_agnumber_t agno; /* 24 4 */ int streams; /* 28 4 */ xfs_extlen_t free; /* 32 4 */ int nscan; /* 36 4 */ char __data[0]; /* 40 0 */ /* size: 40, cachelines: 1, members: 8 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct trace_event_raw_xfs_lock_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ int lock_flags; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int caller_ip; /* 32 8 */ char __data[0]; /* 40 0 */ /* size: 40, cachelines: 1, members: 6 */ /* sum members: 32, holes: 2, sum holes: 8 */ /* last cacheline: 40 bytes */ }; struct trace_event_raw_xfs_inode_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ char __data[0]; /* 24 0 */ /* size: 24, cachelines: 1, members: 4 */ /* sum members: 20, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; struct trace_event_raw_xfs_iref_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ int count; /* 24 4 */ int pincount; /* 28 4 */ long unsigned int caller_ip; /* 32 8 */ char __data[0]; /* 40 0 */ /* size: 40, cachelines: 1, members: 7 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct trace_event_raw_xfs_iomap_prealloc_size { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ xfs_fsblock_t blocks; /* 24 8 */ int shift; /* 32 4 */ unsigned int writeio_blocks; /* 36 4 */ char __data[0]; /* 40 0 */ /* size: 40, cachelines: 1, members: 7 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct trace_event_raw_xfs_irec_merge_pre { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ xfs_agnumber_t agno; /* 12 4 */ xfs_agino_t agino; /* 16 4 */ uint16_t holemask; /* 20 2 */ /* XXX 2 bytes hole, try to pack */ xfs_agino_t nagino; /* 24 4 */ uint16_t nholemask; /* 28 2 */ char __data[0]; /* 30 0 */ /* size: 32, cachelines: 1, members: 8 */ /* sum members: 28, holes: 1, sum holes: 2 */ /* padding: 2 */ /* last cacheline: 32 bytes */ }; struct trace_event_raw_xfs_irec_merge_post { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ xfs_agnumber_t agno; /* 12 4 */ xfs_agino_t agino; /* 16 4 */ uint16_t holemask; /* 20 2 */ char __data[0]; /* 22 0 */ /* size: 24, cachelines: 1, members: 6 */ /* padding: 2 */ /* last cacheline: 24 bytes */ }; struct trace_event_raw_xfs_namespace_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t dp_ino; /* 16 8 */ int namelen; /* 24 4 */ u32 __data_loc_name; /* 28 4 */ char __data[0]; /* 32 0 */ /* size: 32, cachelines: 1, members: 6 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct trace_event_raw_xfs_rename { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t src_dp_ino; /* 16 8 */ xfs_ino_t target_dp_ino; /* 24 8 */ int src_namelen; /* 32 4 */ int target_namelen; /* 36 4 */ u32 __data_loc_src_name; /* 40 4 */ u32 __data_loc_target_name; /* 44 4 */ char __data[0]; /* 48 0 */ /* size: 48, cachelines: 1, members: 9 */ /* sum members: 44, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct trace_event_raw_xfs_dquot_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ u32 id; /* 12 4 */ unsigned int flags; /* 16 4 */ unsigned int nrefs; /* 20 4 */ long long unsigned int res_bcount; /* 24 8 */ long long unsigned int bcount; /* 32 8 */ long long unsigned int icount; /* 40 8 */ long long unsigned int blk_hardlimit; /* 48 8 */ long long unsigned int blk_softlimit; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ long long unsigned int ino_hardlimit; /* 64 8 */ long long unsigned int ino_softlimit; /* 72 8 */ char __data[0]; /* 80 0 */ /* size: 80, cachelines: 2, members: 13 */ /* last cacheline: 16 bytes */ }; struct trace_event_raw_xfs_loggrant_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ unsigned int trans_type; /* 12 4 */ char ocnt; /* 16 1 */ char cnt; /* 17 1 */ /* XXX 2 bytes hole, try to pack */ int curr_res; /* 20 4 */ int unit_res; /* 24 4 */ unsigned int flags; /* 28 4 */ int reserveq; /* 32 4 */ int writeq; /* 36 4 */ int grant_reserve_cycle; /* 40 4 */ int grant_reserve_bytes; /* 44 4 */ int grant_write_cycle; /* 48 4 */ int grant_write_bytes; /* 52 4 */ int curr_cycle; /* 56 4 */ int curr_block; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ xfs_lsn_t tail_lsn; /* 64 8 */ char __data[0]; /* 72 0 */ /* size: 72, cachelines: 2, members: 18 */ /* sum members: 70, holes: 1, sum holes: 2 */ /* last cacheline: 8 bytes */ }; struct trace_event_raw_xfs_log_item_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ void * lip; /* 16 8 */ uint type; /* 24 4 */ uint flags; /* 28 4 */ xfs_lsn_t lsn; /* 32 8 */ char __data[0]; /* 40 0 */ /* size: 40, cachelines: 1, members: 7 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct trace_event_raw_xfs_log_force { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_lsn_t lsn; /* 16 8 */ char __data[0]; /* 24 0 */ /* size: 24, cachelines: 1, members: 4 */ /* sum members: 20, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; struct trace_event_raw_xfs_ail_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ void * lip; /* 16 8 */ uint type; /* 24 4 */ uint flags; /* 28 4 */ xfs_lsn_t old_lsn; /* 32 8 */ xfs_lsn_t new_lsn; /* 40 8 */ char __data[0]; /* 48 0 */ /* size: 48, cachelines: 1, members: 8 */ /* sum members: 44, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct trace_event_raw_xfs_log_assign_tail_lsn { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_lsn_t new_lsn; /* 16 8 */ xfs_lsn_t old_lsn; /* 24 8 */ xfs_lsn_t last_sync_lsn; /* 32 8 */ char __data[0]; /* 40 0 */ /* size: 40, cachelines: 1, members: 6 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct trace_event_raw_xfs_file_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ xfs_fsize_t size; /* 24 8 */ loff_t offset; /* 32 8 */ size_t count; /* 40 8 */ int flags; /* 48 4 */ char __data[0]; /* 52 0 */ /* size: 56, cachelines: 1, members: 8 */ /* sum members: 48, holes: 1, sum holes: 4 */ /* padding: 4 */ /* last cacheline: 56 bytes */ }; struct trace_event_raw_xfs_page_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ long unsigned int pgoff; /* 24 8 */ loff_t size; /* 32 8 */ long unsigned int offset; /* 40 8 */ unsigned int length; /* 48 4 */ int delalloc; /* 52 4 */ int unwritten; /* 56 4 */ char __data[0]; /* 60 0 */ /* size: 64, cachelines: 1, members: 10 */ /* sum members: 56, holes: 1, sum holes: 4 */ /* padding: 4 */ }; struct trace_event_raw_xfs_readpage_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ int nr_pages; /* 24 4 */ char __data[0]; /* 28 0 */ /* size: 32, cachelines: 1, members: 5 */ /* sum members: 24, holes: 1, sum holes: 4 */ /* padding: 4 */ /* last cacheline: 32 bytes */ }; struct trace_event_raw_xfs_imap_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ loff_t size; /* 24 8 */ loff_t offset; /* 32 8 */ size_t count; /* 40 8 */ int type; /* 48 4 */ /* XXX 4 bytes hole, try to pack */ xfs_fileoff_t startoff; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ xfs_fsblock_t startblock; /* 64 8 */ xfs_filblks_t blockcount; /* 72 8 */ char __data[0]; /* 80 0 */ /* size: 80, cachelines: 2, members: 11 */ /* sum members: 72, holes: 2, sum holes: 8 */ /* last cacheline: 16 bytes */ }; struct trace_event_raw_xfs_simple_io_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ loff_t isize; /* 24 8 */ loff_t disize; /* 32 8 */ loff_t offset; /* 40 8 */ size_t count; /* 48 8 */ char __data[0]; /* 56 0 */ /* size: 56, cachelines: 1, members: 8 */ /* sum members: 52, holes: 1, sum holes: 4 */ /* last cacheline: 56 bytes */ }; struct trace_event_raw_xfs_itrunc_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ xfs_fsize_t size; /* 24 8 */ xfs_fsize_t new_size; /* 32 8 */ char __data[0]; /* 40 0 */ /* size: 40, cachelines: 1, members: 6 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct trace_event_raw_xfs_pagecache_inval { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ xfs_fsize_t size; /* 24 8 */ xfs_off_t start; /* 32 8 */ xfs_off_t finish; /* 40 8 */ char __data[0]; /* 48 0 */ /* size: 48, cachelines: 1, members: 7 */ /* sum members: 44, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct trace_event_raw_xfs_bunmap { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ xfs_fsize_t size; /* 24 8 */ xfs_fileoff_t bno; /* 32 8 */ xfs_filblks_t len; /* 40 8 */ long unsigned int caller_ip; /* 48 8 */ int flags; /* 56 4 */ char __data[0]; /* 60 0 */ /* size: 64, cachelines: 1, members: 9 */ /* sum members: 56, holes: 1, sum holes: 4 */ /* padding: 4 */ }; struct trace_event_raw_xfs_extent_busy_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ xfs_agnumber_t agno; /* 12 4 */ xfs_agblock_t agbno; /* 16 4 */ xfs_extlen_t len; /* 20 4 */ char __data[0]; /* 24 0 */ /* size: 24, cachelines: 1, members: 6 */ /* last cacheline: 24 bytes */ }; struct trace_event_raw_xfs_extent_busy_trim { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ xfs_agnumber_t agno; /* 12 4 */ xfs_agblock_t agbno; /* 16 4 */ xfs_extlen_t len; /* 20 4 */ xfs_agblock_t tbno; /* 24 4 */ xfs_extlen_t tlen; /* 28 4 */ char __data[0]; /* 32 0 */ /* size: 32, cachelines: 1, members: 8 */ /* last cacheline: 32 bytes */ }; struct trace_event_raw_xfs_trans_commit_lsn { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct xfs_trans * tp; /* 16 8 */ xfs_lsn_t lsn; /* 24 8 */ char __data[0]; /* 32 0 */ /* size: 32, cachelines: 1, members: 5 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct trace_event_raw_xfs_agf { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ xfs_agnumber_t agno; /* 12 4 */ int flags; /* 16 4 */ __u32 length; /* 20 4 */ __u32 bno_root; /* 24 4 */ __u32 cnt_root; /* 28 4 */ __u32 bno_level; /* 32 4 */ __u32 cnt_level; /* 36 4 */ __u32 flfirst; /* 40 4 */ __u32 fllast; /* 44 4 */ __u32 flcount; /* 48 4 */ __u32 freeblks; /* 52 4 */ __u32 longest; /* 56 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 1 boundary (64 bytes) --- */ long unsigned int caller_ip; /* 64 8 */ char __data[0]; /* 72 0 */ /* size: 72, cachelines: 2, members: 16 */ /* sum members: 68, holes: 1, sum holes: 4 */ /* last cacheline: 8 bytes */ }; struct trace_event_raw_xfs_free_extent { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ xfs_agnumber_t agno; /* 12 4 */ xfs_agblock_t agbno; /* 16 4 */ xfs_extlen_t len; /* 20 4 */ int isfl; /* 24 4 */ int haveleft; /* 28 4 */ int haveright; /* 32 4 */ char __data[0]; /* 36 0 */ /* size: 36, cachelines: 1, members: 9 */ /* last cacheline: 36 bytes */ }; struct trace_event_raw_xfs_alloc_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ xfs_agnumber_t agno; /* 12 4 */ xfs_agblock_t agbno; /* 16 4 */ xfs_extlen_t minlen; /* 20 4 */ xfs_extlen_t maxlen; /* 24 4 */ xfs_extlen_t mod; /* 28 4 */ xfs_extlen_t prod; /* 32 4 */ xfs_extlen_t minleft; /* 36 4 */ xfs_extlen_t total; /* 40 4 */ xfs_extlen_t alignment; /* 44 4 */ xfs_extlen_t minalignslop; /* 48 4 */ xfs_extlen_t len; /* 52 4 */ short int type; /* 56 2 */ short int otype; /* 58 2 */ char wasdel; /* 60 1 */ char wasfromfl; /* 61 1 */ char isfl; /* 62 1 */ char userdata; /* 63 1 */ /* --- cacheline 1 boundary (64 bytes) --- */ xfs_fsblock_t firstblock; /* 64 8 */ char __data[0]; /* 72 0 */ /* size: 72, cachelines: 2, members: 21 */ /* last cacheline: 8 bytes */ }; struct trace_event_raw_xfs_da_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ u32 __data_loc_name; /* 24 4 */ int namelen; /* 28 4 */ xfs_dahash_t hashval; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t inumber; /* 40 8 */ int op_flags; /* 48 4 */ char __data[0]; /* 52 0 */ /* size: 56, cachelines: 1, members: 9 */ /* sum members: 44, holes: 2, sum holes: 8 */ /* padding: 4 */ /* last cacheline: 56 bytes */ }; struct trace_event_raw_xfs_attr_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ u32 __data_loc_name; /* 24 4 */ int namelen; /* 28 4 */ int valuelen; /* 32 4 */ xfs_dahash_t hashval; /* 36 4 */ int op_flags; /* 40 4 */ char __data[0]; /* 44 0 */ /* size: 48, cachelines: 1, members: 9 */ /* sum members: 40, holes: 1, sum holes: 4 */ /* padding: 4 */ /* last cacheline: 48 bytes */ }; struct trace_event_raw_xfs_dir2_space_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ int op_flags; /* 24 4 */ int idx; /* 28 4 */ char __data[0]; /* 32 0 */ /* size: 32, cachelines: 1, members: 6 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct trace_event_raw_xfs_dir2_leafn_moveents { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ int op_flags; /* 24 4 */ int src_idx; /* 28 4 */ int dst_idx; /* 32 4 */ int count; /* 36 4 */ char __data[0]; /* 40 0 */ /* size: 40, cachelines: 1, members: 8 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct trace_event_raw_xfs_swap_extent_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ int which; /* 12 4 */ xfs_ino_t ino; /* 16 8 */ int format; /* 24 4 */ int nex; /* 28 4 */ int broot_size; /* 32 4 */ int fork_off; /* 36 4 */ char __data[0]; /* 40 0 */ /* size: 40, cachelines: 1, members: 9 */ /* last cacheline: 40 bytes */ }; struct trace_event_raw_xfs_log_recover_item_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int item; /* 16 8 */ xlog_tid_t tid; /* 24 4 */ int type; /* 28 4 */ int pass; /* 32 4 */ int count; /* 36 4 */ int total; /* 40 4 */ char __data[0]; /* 44 0 */ /* size: 48, cachelines: 1, members: 9 */ /* sum members: 40, holes: 1, sum holes: 4 */ /* padding: 4 */ /* last cacheline: 48 bytes */ }; struct trace_event_raw_xfs_log_recover_buf_item_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ __int64_t blkno; /* 16 8 */ short unsigned int len; /* 24 2 */ short unsigned int flags; /* 26 2 */ short unsigned int size; /* 28 2 */ /* XXX 2 bytes hole, try to pack */ unsigned int map_size; /* 32 4 */ char __data[0]; /* 36 0 */ /* size: 40, cachelines: 1, members: 8 */ /* sum members: 30, holes: 2, sum holes: 6 */ /* padding: 4 */ /* last cacheline: 40 bytes */ }; struct trace_event_raw_xfs_log_recover_ino_item_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_ino_t ino; /* 16 8 */ short unsigned int size; /* 24 2 */ /* XXX 2 bytes hole, try to pack */ int fields; /* 28 4 */ short unsigned int asize; /* 32 2 */ short unsigned int dsize; /* 34 2 */ /* XXX 4 bytes hole, try to pack */ __int64_t blkno; /* 40 8 */ int len; /* 48 4 */ int boffset; /* 52 4 */ char __data[0]; /* 56 0 */ /* size: 56, cachelines: 1, members: 11 */ /* sum members: 46, holes: 3, sum holes: 10 */ /* last cacheline: 56 bytes */ }; struct trace_event_raw_xfs_log_recover_icreate_item_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ xfs_agnumber_t agno; /* 12 4 */ xfs_agblock_t agbno; /* 16 4 */ unsigned int count; /* 20 4 */ unsigned int isize; /* 24 4 */ xfs_agblock_t length; /* 28 4 */ unsigned int gen; /* 32 4 */ char __data[0]; /* 36 0 */ /* size: 36, cachelines: 1, members: 9 */ /* last cacheline: 36 bytes */ }; struct trace_event_raw_xfs_discard_class { struct trace_entry ent; /* 0 8 */ dev_t dev; /* 8 4 */ xfs_agnumber_t agno; /* 12 4 */ xfs_agblock_t agbno; /* 16 4 */ xfs_extlen_t len; /* 20 4 */ char __data[0]; /* 24 0 */ /* size: 24, cachelines: 1, members: 6 */ /* last cacheline: 24 bytes */ }; struct trace_event_data_offsets_xfs_attr_list_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_perag_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_ag_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_attr_list_node_descend { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_iext_insert { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_bmap_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_buf_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_buf_flags_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_buf_ioerror { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_buf_item_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_filestream_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_filestream_pick { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_lock_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_inode_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_iref_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_iomap_prealloc_size { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_irec_merge_pre { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_irec_merge_post { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_namespace_class { u32 name; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct trace_event_data_offsets_xfs_rename { u32 src_name; /* 0 4 */ u32 target_name; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct trace_event_data_offsets_xfs_dquot_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_loggrant_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_log_item_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_log_force { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_ail_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_log_assign_tail_lsn { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_file_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_page_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_readpage_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_imap_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_simple_io_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_itrunc_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_pagecache_inval { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_bunmap { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_extent_busy_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_extent_busy_trim { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_trans_commit_lsn { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_agf { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_free_extent { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_alloc_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_da_class { u32 name; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct trace_event_data_offsets_xfs_attr_class { u32 name; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct trace_event_data_offsets_xfs_dir2_space_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_dir2_leafn_moveents { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_swap_extent_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_log_recover_item_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_log_recover_buf_item_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_log_recover_ino_item_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_log_recover_icreate_item_class { /* size: 0, cachelines: 0, members: 0 */ }; struct trace_event_data_offsets_xfs_discard_class { /* size: 0, cachelines: 0, members: 0 */ }; struct thread_info { long unsigned int flags; /* 0 8 */ mm_segment_t addr_limit; /* 8 8 */ struct task_struct * task; /* 16 8 */ int preempt_count; /* 24 4 */ int cpu; /* 28 4 */ /* size: 32, cachelines: 1, members: 5 */ /* last cacheline: 32 bytes */ }; struct xfs_sysctl_val { int min; /* 0 4 */ int val; /* 4 4 */ int max; /* 8 4 */ /* size: 12, cachelines: 1, members: 3 */ /* last cacheline: 12 bytes */ }; struct xfs_param { xfs_sysctl_val_t sgid_inherit; /* 0 12 */ xfs_sysctl_val_t symlink_mode; /* 12 12 */ xfs_sysctl_val_t panic_mask; /* 24 12 */ xfs_sysctl_val_t error_level; /* 36 12 */ xfs_sysctl_val_t syncd_timer; /* 48 12 */ xfs_sysctl_val_t stats_clear; /* 60 12 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ xfs_sysctl_val_t inherit_sync; /* 72 12 */ xfs_sysctl_val_t inherit_nodump; /* 84 12 */ xfs_sysctl_val_t inherit_noatim; /* 96 12 */ xfs_sysctl_val_t xfs_buf_timer; /* 108 12 */ xfs_sysctl_val_t xfs_buf_age; /* 120 12 */ /* --- cacheline 2 boundary (128 bytes) was 4 bytes ago --- */ xfs_sysctl_val_t inherit_nosym; /* 132 12 */ xfs_sysctl_val_t rotorstep; /* 144 12 */ xfs_sysctl_val_t inherit_nodfrg; /* 156 12 */ xfs_sysctl_val_t fstrm_timer; /* 168 12 */ xfs_sysctl_val_t eofb_timer; /* 180 12 */ /* --- cacheline 3 boundary (192 bytes) --- */ /* size: 192, cachelines: 3, members: 16 */ }; struct xfs_agfl { __be32 agfl_magicnum; /* 0 4 */ __be32 agfl_seqno; /* 4 4 */ uuid_t agfl_uuid; /* 8 16 */ __be64 agfl_lsn; /* 24 8 */ __be32 agfl_crc; /* 32 4 */ __be32 agfl_bno[0]; /* 36 0 */ /* size: 36, cachelines: 1, members: 6 */ /* last cacheline: 36 bytes */ }; struct xfs_alloc_rec { __be32 ar_startblock; /* 0 4 */ __be32 ar_blockcount; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xfs_alloc_rec_incore { xfs_agblock_t ar_startblock; /* 0 4 */ xfs_extlen_t ar_blockcount; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xfs_inobt_rec { __be32 ir_startino; /* 0 4 */ union { struct { __be32 ir_freecount; /* 4 4 */ } f; /* 4 */ struct { __be16 ir_holemask; /* 4 2 */ __u8 ir_count; /* 6 1 */ __u8 ir_freecount; /* 7 1 */ } sp; /* 4 */ } ir_u; /* 4 4 */ __be64 ir_free; /* 8 8 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; struct xfs_inobt_rec_incore { xfs_agino_t ir_startino; /* 0 4 */ __uint16_t ir_holemask; /* 4 2 */ __uint8_t ir_count; /* 6 1 */ __uint8_t ir_freecount; /* 7 1 */ xfs_inofree_t ir_free; /* 8 8 */ /* size: 16, cachelines: 1, members: 5 */ /* last cacheline: 16 bytes */ }; struct xfs_inobt_key { __be32 ir_startino; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct xfs_bmbt_rec { __be64 l0; /* 0 8 */ __be64 l1; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_bmbt_key { __be64 br_startoff; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct xfs_btree_ops { size_t key_len; /* 0 8 */ size_t rec_len; /* 8 8 */ struct xfs_btree_cur * (*dup_cursor)(struct xfs_btree_cur *); /* 16 8 */ void (*update_cursor)(struct xfs_btree_cur *, struct xfs_btree_cur *); /* 24 8 */ void (*set_root)(struct xfs_btree_cur *, union xfs_btree_ptr *, int); /* 32 8 */ int (*alloc_block)(struct xfs_btree_cur *, union xfs_btree_ptr *, union xfs_btree_ptr *, int *); /* 40 8 */ int (*free_block)(struct xfs_btree_cur *, struct xfs_buf *); /* 48 8 */ void (*update_lastrec)(struct xfs_btree_cur *, struct xfs_btree_block *, union xfs_btree_rec *, int, int); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*get_minrecs)(struct xfs_btree_cur *, int); /* 64 8 */ int (*get_maxrecs)(struct xfs_btree_cur *, int); /* 72 8 */ int (*get_dmaxrecs)(struct xfs_btree_cur *, int); /* 80 8 */ void (*init_key_from_rec)(union xfs_btree_key *, union xfs_btree_rec *); /* 88 8 */ void (*init_rec_from_key)(union xfs_btree_key *, union xfs_btree_rec *); /* 96 8 */ void (*init_rec_from_cur)(struct xfs_btree_cur *, union xfs_btree_rec *); /* 104 8 */ void (*init_ptr_from_cur)(struct xfs_btree_cur *, union xfs_btree_ptr *); /* 112 8 */ __int64_t (*key_diff)(struct xfs_btree_cur *, union xfs_btree_key *); /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ const struct xfs_buf_ops * buf_ops; /* 128 8 */ /* size: 136, cachelines: 3, members: 17 */ /* last cacheline: 8 bytes */ }; struct xfs_btree_cur { struct xfs_trans * bc_tp; /* 0 8 */ struct xfs_mount * bc_mp; /* 8 8 */ const struct xfs_btree_ops * bc_ops; /* 16 8 */ uint bc_flags; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ union { xfs_alloc_rec_incore_t a; /* 8 */ xfs_bmbt_irec_t b; /* 32 */ xfs_inobt_rec_incore_t i; /* 16 */ } bc_rec; /* 32 32 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct xfs_buf * bc_bufs[8]; /* 64 64 */ /* --- cacheline 2 boundary (128 bytes) --- */ int bc_ptrs[8]; /* 128 32 */ __uint8_t bc_ra[8]; /* 160 8 */ __uint8_t bc_nlevels; /* 168 1 */ __uint8_t bc_blocklog; /* 169 1 */ /* XXX 2 bytes hole, try to pack */ xfs_btnum_t bc_btnum; /* 172 4 */ union { struct { struct xfs_buf * agbp; /* 176 8 */ xfs_agnumber_t agno; /* 184 4 */ } a; /* 16 */ struct { struct xfs_inode * ip; /* 176 8 */ struct xfs_bmap_free * flist; /* 184 8 */ xfs_fsblock_t firstblock; /* 192 8 */ int allocated; /* 200 4 */ short int forksize; /* 204 2 */ char whichfork; /* 206 1 */ char flags; /* 207 1 */ } b; /* 32 */ } bc_private; /* 176 32 */ /* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */ /* size: 208, cachelines: 4, members: 12 */ /* sum members: 202, holes: 2, sum holes: 6 */ /* last cacheline: 16 bytes */ }; struct xfs_da_state_blk { struct xfs_buf * bp; /* 0 8 */ xfs_dablk_t blkno; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ xfs_daddr_t disk_blkno; /* 16 8 */ int index; /* 24 4 */ xfs_dahash_t hashval; /* 28 4 */ int magic; /* 32 4 */ /* size: 40, cachelines: 1, members: 6 */ /* sum members: 32, holes: 1, sum holes: 4 */ /* padding: 4 */ /* last cacheline: 40 bytes */ }; struct xfs_da_state_path { int active; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ xfs_da_state_blk_t blk[5]; /* 8 200 */ /* --- cacheline 3 boundary (192 bytes) was 16 bytes ago --- */ /* size: 208, cachelines: 4, members: 2 */ /* sum members: 204, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_da_state { xfs_da_args_t * args; /* 0 8 */ struct xfs_mount * mp; /* 8 8 */ xfs_da_state_path_t path; /* 16 208 */ /* --- cacheline 3 boundary (192 bytes) was 32 bytes ago --- */ xfs_da_state_path_t altpath; /* 224 208 */ /* --- cacheline 6 boundary (384 bytes) was 48 bytes ago --- */ unsigned char inleaf; /* 432 1 */ unsigned char extravalid; /* 433 1 */ unsigned char extraafter; /* 434 1 */ /* XXX 5 bytes hole, try to pack */ xfs_da_state_blk_t extrablk; /* 440 40 */ /* --- cacheline 7 boundary (448 bytes) was 32 bytes ago --- */ /* size: 480, cachelines: 8, members: 8 */ /* sum members: 475, holes: 1, sum holes: 5 */ /* last cacheline: 32 bytes */ }; struct xfs_attr_sf_hdr { __be16 totsize; /* 0 2 */ __u8 count; /* 2 1 */ /* size: 4, cachelines: 1, members: 2 */ /* padding: 1 */ /* last cacheline: 4 bytes */ }; struct xfs_attr_sf_entry { __uint8_t namelen; /* 0 1 */ __uint8_t valuelen; /* 1 1 */ __uint8_t flags; /* 2 1 */ __uint8_t nameval[1]; /* 3 1 */ /* size: 4, cachelines: 1, members: 4 */ /* last cacheline: 4 bytes */ }; struct xfs_attr_shortform { struct xfs_attr_sf_hdr hdr; /* 0 4 */ /* XXX last struct has 1 byte of padding */ struct xfs_attr_sf_entry list[1]; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* paddings: 1, sum paddings: 1 */ /* last cacheline: 8 bytes */ }; struct xfs_dir_ops { int (*sf_entsize)(struct xfs_dir2_sf_hdr *, int); /* 0 8 */ struct xfs_dir2_sf_entry * (*sf_nextentry)(struct xfs_dir2_sf_hdr *, struct xfs_dir2_sf_entry *); /* 8 8 */ __uint8_t (*sf_get_ftype)(struct xfs_dir2_sf_entry *); /* 16 8 */ void (*sf_put_ftype)(struct xfs_dir2_sf_entry *, __uint8_t); /* 24 8 */ xfs_ino_t (*sf_get_ino)(struct xfs_dir2_sf_hdr *, struct xfs_dir2_sf_entry *); /* 32 8 */ void (*sf_put_ino)(struct xfs_dir2_sf_hdr *, struct xfs_dir2_sf_entry *, xfs_ino_t); /* 40 8 */ xfs_ino_t (*sf_get_parent_ino)(struct xfs_dir2_sf_hdr *); /* 48 8 */ void (*sf_put_parent_ino)(struct xfs_dir2_sf_hdr *, xfs_ino_t); /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ int (*data_entsize)(int); /* 64 8 */ __uint8_t (*data_get_ftype)(struct xfs_dir2_data_entry *); /* 72 8 */ void (*data_put_ftype)(struct xfs_dir2_data_entry *, __uint8_t); /* 80 8 */ __be16 * (*data_entry_tag_p)(struct xfs_dir2_data_entry *); /* 88 8 */ struct xfs_dir2_data_free * (*data_bestfree_p)(struct xfs_dir2_data_hdr *); /* 96 8 */ xfs_dir2_data_aoff_t data_dot_offset; /* 104 4 */ xfs_dir2_data_aoff_t data_dotdot_offset; /* 108 4 */ xfs_dir2_data_aoff_t data_first_offset; /* 112 4 */ /* XXX 4 bytes hole, try to pack */ size_t data_entry_offset; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ struct xfs_dir2_data_entry * (*data_dot_entry_p)(struct xfs_dir2_data_hdr *); /* 128 8 */ struct xfs_dir2_data_entry * (*data_dotdot_entry_p)(struct xfs_dir2_data_hdr *); /* 136 8 */ struct xfs_dir2_data_entry * (*data_first_entry_p)(struct xfs_dir2_data_hdr *); /* 144 8 */ struct xfs_dir2_data_entry * (*data_entry_p)(struct xfs_dir2_data_hdr *); /* 152 8 */ struct xfs_dir2_data_unused * (*data_unused_p)(struct xfs_dir2_data_hdr *); /* 160 8 */ int leaf_hdr_size; /* 168 4 */ /* XXX 4 bytes hole, try to pack */ void (*leaf_hdr_to_disk)(struct xfs_dir2_leaf *, struct xfs_dir3_icleaf_hdr *); /* 176 8 */ void (*leaf_hdr_from_disk)(struct xfs_dir3_icleaf_hdr *, struct xfs_dir2_leaf *); /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ int (*leaf_max_ents)(struct xfs_da_geometry *); /* 192 8 */ struct xfs_dir2_leaf_entry * (*leaf_ents_p)(struct xfs_dir2_leaf *); /* 200 8 */ int node_hdr_size; /* 208 4 */ /* XXX 4 bytes hole, try to pack */ void (*node_hdr_to_disk)(struct xfs_da_intnode *, struct xfs_da3_icnode_hdr *); /* 216 8 */ void (*node_hdr_from_disk)(struct xfs_da3_icnode_hdr *, struct xfs_da_intnode *); /* 224 8 */ struct xfs_da_node_entry * (*node_tree_p)(struct xfs_da_intnode *); /* 232 8 */ int free_hdr_size; /* 240 4 */ /* XXX 4 bytes hole, try to pack */ void (*free_hdr_to_disk)(struct xfs_dir2_free *, struct xfs_dir3_icfree_hdr *); /* 248 8 */ /* --- cacheline 4 boundary (256 bytes) --- */ void (*free_hdr_from_disk)(struct xfs_dir3_icfree_hdr *, struct xfs_dir2_free *); /* 256 8 */ int (*free_max_bests)(struct xfs_da_geometry *); /* 264 8 */ __be16 * (*free_bests_p)(struct xfs_dir2_free *); /* 272 8 */ xfs_dir2_db_t (*db_to_fdb)(struct xfs_da_geometry *, xfs_dir2_db_t); /* 280 8 */ int (*db_to_fdindex)(struct xfs_da_geometry *, xfs_dir2_db_t); /* 288 8 */ /* size: 296, cachelines: 5, members: 38 */ /* sum members: 280, holes: 4, sum holes: 16 */ /* last cacheline: 40 bytes */ }; struct xfs_da_blkinfo { __be32 forw; /* 0 4 */ __be32 back; /* 4 4 */ __be16 magic; /* 8 2 */ __be16 pad; /* 10 2 */ /* size: 12, cachelines: 1, members: 4 */ /* last cacheline: 12 bytes */ }; struct xfs_da3_blkinfo { struct xfs_da_blkinfo hdr; /* 0 12 */ __be32 crc; /* 12 4 */ __be64 blkno; /* 16 8 */ __be64 lsn; /* 24 8 */ uuid_t uuid; /* 32 16 */ __be64 owner; /* 48 8 */ /* size: 56, cachelines: 1, members: 6 */ /* last cacheline: 56 bytes */ }; struct xfs_da_node_hdr { struct xfs_da_blkinfo info; /* 0 12 */ __be16 __count; /* 12 2 */ __be16 __level; /* 14 2 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; struct xfs_da3_node_hdr { struct xfs_da3_blkinfo info; /* 0 56 */ __be16 __count; /* 56 2 */ __be16 __level; /* 58 2 */ __be32 __pad32; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 4 */ }; struct xfs_da_intnode { struct xfs_da_node_hdr hdr; /* 0 16 */ struct xfs_da_node_entry __btree[0]; /* 16 0 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_da3_icnode_hdr { __uint32_t forw; /* 0 4 */ __uint32_t back; /* 4 4 */ __uint16_t magic; /* 8 2 */ __uint16_t count; /* 10 2 */ __uint16_t level; /* 12 2 */ /* size: 16, cachelines: 1, members: 5 */ /* padding: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_dir2_sf_hdr { __uint8_t count; /* 0 1 */ __uint8_t i8count; /* 1 1 */ xfs_dir2_inou_t parent; /* 2 8 */ /* size: 10, cachelines: 1, members: 3 */ /* last cacheline: 10 bytes */ }; struct xfs_dir2_sf_entry { __u8 namelen; /* 0 1 */ xfs_dir2_sf_off_t offset; /* 1 2 */ __u8 name[0]; /* 3 0 */ /* size: 3, cachelines: 1, members: 3 */ /* last cacheline: 3 bytes */ }; struct xfs_dir2_data_free { __be16 offset; /* 0 2 */ __be16 length; /* 2 2 */ /* size: 4, cachelines: 1, members: 2 */ /* last cacheline: 4 bytes */ }; struct xfs_dir2_data_hdr { __be32 magic; /* 0 4 */ xfs_dir2_data_free_t bestfree[3]; /* 4 12 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_dir2_data_entry { __be64 inumber; /* 0 8 */ __u8 namelen; /* 8 1 */ __u8 name[0]; /* 9 0 */ /* size: 16, cachelines: 1, members: 3 */ /* padding: 7 */ /* last cacheline: 16 bytes */ }; struct xfs_dir2_data_unused { __be16 freetag; /* 0 2 */ __be16 length; /* 2 2 */ __be16 tag; /* 4 2 */ /* size: 6, cachelines: 1, members: 3 */ /* last cacheline: 6 bytes */ }; struct xfs_dir2_leaf_hdr { xfs_da_blkinfo_t info; /* 0 12 */ __be16 count; /* 12 2 */ __be16 stale; /* 14 2 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; struct xfs_dir3_icleaf_hdr { __uint32_t forw; /* 0 4 */ __uint32_t back; /* 4 4 */ __uint16_t magic; /* 8 2 */ __uint16_t count; /* 10 2 */ __uint16_t stale; /* 12 2 */ /* size: 16, cachelines: 1, members: 5 */ /* padding: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_dir2_leaf_entry { __be32 hashval; /* 0 4 */ __be32 address; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xfs_dir2_leaf { xfs_dir2_leaf_hdr_t hdr; /* 0 16 */ xfs_dir2_leaf_entry_t __ents[0]; /* 16 0 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_dir2_free_hdr { __be32 magic; /* 0 4 */ __be32 firstdb; /* 4 4 */ __be32 nvalid; /* 8 4 */ __be32 nused; /* 12 4 */ /* size: 16, cachelines: 1, members: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_dir2_free { xfs_dir2_free_hdr_t hdr; /* 0 16 */ __be16 bests[0]; /* 16 0 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_dir3_icfree_hdr { __uint32_t magic; /* 0 4 */ __uint32_t firstdb; /* 4 4 */ __uint32_t nvalid; /* 8 4 */ __uint32_t nused; /* 12 4 */ /* size: 16, cachelines: 1, members: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_attr_leaf_map { __be16 base; /* 0 2 */ __be16 size; /* 2 2 */ /* size: 4, cachelines: 1, members: 2 */ /* last cacheline: 4 bytes */ }; struct xfs_attr_leaf_hdr { xfs_da_blkinfo_t info; /* 0 12 */ __be16 count; /* 12 2 */ __be16 usedbytes; /* 14 2 */ __be16 firstused; /* 16 2 */ __u8 holes; /* 18 1 */ __u8 pad1; /* 19 1 */ xfs_attr_leaf_map_t freemap[3]; /* 20 12 */ /* size: 32, cachelines: 1, members: 7 */ /* last cacheline: 32 bytes */ }; struct xfs_attr_leaf_entry { __be32 hashval; /* 0 4 */ __be16 nameidx; /* 4 2 */ __u8 flags; /* 6 1 */ __u8 pad2; /* 7 1 */ /* size: 8, cachelines: 1, members: 4 */ /* last cacheline: 8 bytes */ }; struct xfs_attr_leaf_name_local { __be16 valuelen; /* 0 2 */ __u8 namelen; /* 2 1 */ __u8 nameval[1]; /* 3 1 */ /* size: 4, cachelines: 1, members: 3 */ /* last cacheline: 4 bytes */ }; struct xfs_attr_leaf_name_remote { __be32 valueblk; /* 0 4 */ __be32 valuelen; /* 4 4 */ __u8 namelen; /* 8 1 */ __u8 name[1]; /* 9 1 */ /* size: 12, cachelines: 1, members: 4 */ /* padding: 2 */ /* last cacheline: 12 bytes */ }; struct xfs_attr_leafblock { xfs_attr_leaf_hdr_t hdr; /* 0 32 */ xfs_attr_leaf_entry_t entries[1]; /* 32 8 */ /* size: 40, cachelines: 1, members: 2 */ /* last cacheline: 40 bytes */ }; struct xfs_attr3_leaf_hdr { struct xfs_da3_blkinfo info; /* 0 56 */ __be16 count; /* 56 2 */ __be16 usedbytes; /* 58 2 */ __be16 firstused; /* 60 2 */ __u8 holes; /* 62 1 */ __u8 pad1; /* 63 1 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct xfs_attr_leaf_map freemap[3]; /* 64 12 */ __be32 pad2; /* 76 4 */ /* size: 80, cachelines: 2, members: 8 */ /* last cacheline: 16 bytes */ }; struct xfs_attr3_leafblock { struct xfs_attr3_leaf_hdr hdr; /* 0 80 */ /* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */ struct xfs_attr_leaf_entry entries[1]; /* 80 8 */ /* size: 88, cachelines: 2, members: 2 */ /* last cacheline: 24 bytes */ }; struct xfs_attr3_icleaf_hdr { __uint32_t forw; /* 0 4 */ __uint32_t back; /* 4 4 */ __uint16_t magic; /* 8 2 */ __uint16_t count; /* 10 2 */ __uint16_t usedbytes; /* 12 2 */ /* XXX 2 bytes hole, try to pack */ __uint32_t firstused; /* 16 4 */ __u8 holes; /* 20 1 */ /* XXX 1 byte hole, try to pack */ struct { __uint16_t base; /* 22 2 */ __uint16_t size; /* 24 2 */ } freemap[3]; /* 22 12 */ /* size: 36, cachelines: 1, members: 8 */ /* sum members: 31, holes: 2, sum holes: 3 */ /* padding: 2 */ /* last cacheline: 36 bytes */ }; struct xfs_attr3_rmt_hdr { __be32 rm_magic; /* 0 4 */ __be32 rm_offset; /* 4 4 */ __be32 rm_bytes; /* 8 4 */ __be32 rm_crc; /* 12 4 */ uuid_t rm_uuid; /* 16 16 */ __be64 rm_owner; /* 32 8 */ __be64 rm_blkno; /* 40 8 */ __be64 rm_lsn; /* 48 8 */ /* size: 56, cachelines: 1, members: 8 */ /* last cacheline: 56 bytes */ }; struct xfs_bmalloca { xfs_fsblock_t * firstblock; /* 0 8 */ struct xfs_bmap_free * flist; /* 8 8 */ struct xfs_trans * tp; /* 16 8 */ struct xfs_inode * ip; /* 24 8 */ struct xfs_bmbt_irec prev; /* 32 32 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 1 boundary (64 bytes) --- */ struct xfs_bmbt_irec got; /* 64 32 */ /* XXX last struct has 4 bytes of padding */ xfs_fileoff_t offset; /* 96 8 */ xfs_extlen_t length; /* 104 4 */ /* XXX 4 bytes hole, try to pack */ xfs_fsblock_t blkno; /* 112 8 */ struct xfs_btree_cur * cur; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ xfs_extnum_t idx; /* 128 4 */ int nallocs; /* 132 4 */ int logflags; /* 136 4 */ xfs_extlen_t total; /* 140 4 */ xfs_extlen_t minlen; /* 144 4 */ xfs_extlen_t minleft; /* 148 4 */ bool eof; /* 152 1 */ bool wasdel; /* 153 1 */ bool aeof; /* 154 1 */ bool conv; /* 155 1 */ char userdata; /* 156 1 */ /* XXX 3 bytes hole, try to pack */ int flags; /* 160 4 */ /* size: 168, cachelines: 3, members: 22 */ /* sum members: 157, holes: 2, sum holes: 7 */ /* padding: 4 */ /* paddings: 2, sum paddings: 8 */ /* last cacheline: 40 bytes */ }; struct xfs_bmdr_block { __be16 bb_level; /* 0 2 */ __be16 bb_numrecs; /* 2 2 */ /* size: 4, cachelines: 1, members: 2 */ /* last cacheline: 4 bytes */ }; struct xfs_btree_split_args { struct xfs_btree_cur * cur; /* 0 8 */ int level; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ union xfs_btree_ptr * ptrp; /* 16 8 */ union xfs_btree_key * key; /* 24 8 */ struct xfs_btree_cur * * curp; /* 32 8 */ int * stat; /* 40 8 */ int result; /* 48 4 */ bool kswapd; /* 52 1 */ /* XXX 3 bytes hole, try to pack */ struct completion * done; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct work_struct work; /* 64 32 */ /* size: 96, cachelines: 2, members: 10 */ /* sum members: 89, holes: 2, sum holes: 7 */ /* last cacheline: 32 bytes */ }; struct xfs_da3_intnode { struct xfs_da3_node_hdr hdr; /* 0 64 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct xfs_da_node_entry __btree[0]; /* 64 0 */ /* size: 64, cachelines: 1, members: 2 */ }; struct xfs_dir3_blk_hdr { __be32 magic; /* 0 4 */ __be32 crc; /* 4 4 */ __be64 blkno; /* 8 8 */ __be64 lsn; /* 16 8 */ uuid_t uuid; /* 24 16 */ __be64 owner; /* 40 8 */ /* size: 48, cachelines: 1, members: 6 */ /* last cacheline: 48 bytes */ }; struct xfs_dir3_data_hdr { struct xfs_dir3_blk_hdr hdr; /* 0 48 */ xfs_dir2_data_free_t best_free[3]; /* 48 12 */ __be32 pad; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 3 */ }; struct xfs_dir3_leaf_hdr { struct xfs_da3_blkinfo info; /* 0 56 */ __be16 count; /* 56 2 */ __be16 stale; /* 58 2 */ __be32 pad; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 4 */ }; struct xfs_dir3_leaf { struct xfs_dir3_leaf_hdr hdr; /* 0 64 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct xfs_dir2_leaf_entry __ents[0]; /* 64 0 */ /* size: 64, cachelines: 1, members: 2 */ }; struct xfs_dir3_free_hdr { struct xfs_dir3_blk_hdr hdr; /* 0 48 */ __be32 firstdb; /* 48 4 */ __be32 nvalid; /* 52 4 */ __be32 nused; /* 56 4 */ __be32 pad; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 5 */ }; struct xfs_dir2_leaf_tail { __be32 bestcount; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct xfs_dir2_block_tail { __be32 count; /* 0 4 */ __be32 stale; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xfs_dqblk { xfs_disk_dquot_t dd_diskdq; /* 0 104 */ /* --- cacheline 1 boundary (64 bytes) was 40 bytes ago --- */ char dd_fill[4]; /* 104 4 */ __be32 dd_crc; /* 108 4 */ __be64 dd_lsn; /* 112 8 */ uuid_t dd_uuid; /* 120 16 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ /* size: 136, cachelines: 3, members: 5 */ /* last cacheline: 8 bytes */ }; struct xfs_quotainfo { struct radix_tree_root qi_uquota_tree; /* 0 16 */ struct radix_tree_root qi_gquota_tree; /* 16 16 */ struct radix_tree_root qi_pquota_tree; /* 32 16 */ struct mutex qi_tree_lock; /* 48 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */ struct xfs_inode * qi_uquotaip; /* 88 8 */ struct xfs_inode * qi_gquotaip; /* 96 8 */ struct xfs_inode * qi_pquotaip; /* 104 8 */ struct list_lru qi_lru; /* 112 24 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ int qi_dquots; /* 136 4 */ /* XXX 4 bytes hole, try to pack */ time_t qi_btimelimit; /* 144 8 */ time_t qi_itimelimit; /* 152 8 */ time_t qi_rtbtimelimit; /* 160 8 */ xfs_qwarncnt_t qi_bwarnlimit; /* 168 2 */ xfs_qwarncnt_t qi_iwarnlimit; /* 170 2 */ xfs_qwarncnt_t qi_rtbwarnlimit; /* 172 2 */ /* XXX 2 bytes hole, try to pack */ struct mutex qi_quotaofflock; /* 176 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 3 boundary (192 bytes) was 24 bytes ago --- */ xfs_filblks_t qi_dqchunklen; /* 216 8 */ uint qi_dqperchunk; /* 224 4 */ /* XXX 4 bytes hole, try to pack */ xfs_qcnt_t qi_bhardlimit; /* 232 8 */ xfs_qcnt_t qi_bsoftlimit; /* 240 8 */ xfs_qcnt_t qi_ihardlimit; /* 248 8 */ /* --- cacheline 4 boundary (256 bytes) --- */ xfs_qcnt_t qi_isoftlimit; /* 256 8 */ xfs_qcnt_t qi_rtbhardlimit; /* 264 8 */ xfs_qcnt_t qi_rtbsoftlimit; /* 272 8 */ struct shrinker qi_shrinker; /* 280 64 */ /* --- cacheline 5 boundary (320 bytes) was 24 bytes ago --- */ /* size: 344, cachelines: 6, members: 25 */ /* sum members: 334, holes: 3, sum holes: 10 */ /* paddings: 2, sum paddings: 8 */ /* last cacheline: 24 bytes */ }; struct xfs_dqtrx { struct xfs_dquot * qt_dquot; /* 0 8 */ ulong qt_blk_res; /* 8 8 */ ulong qt_ino_res; /* 16 8 */ ulong qt_ino_res_used; /* 24 8 */ long int qt_bcount_delta; /* 32 8 */ long int qt_delbcnt_delta; /* 40 8 */ long int qt_icount_delta; /* 48 8 */ ulong qt_rtblk_res; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ ulong qt_rtblk_res_used; /* 64 8 */ long int qt_rtbcount_delta; /* 72 8 */ long int qt_delrtb_delta; /* 80 8 */ /* size: 88, cachelines: 2, members: 11 */ /* last cacheline: 24 bytes */ }; struct xfs_dquot_acct { struct xfs_dqtrx dqs[3][2]; /* 0 528 */ /* --- cacheline 8 boundary (512 bytes) was 16 bytes ago --- */ /* size: 528, cachelines: 9, members: 1 */ /* last cacheline: 16 bytes */ }; struct xfs_agi { __be32 agi_magicnum; /* 0 4 */ __be32 agi_versionnum; /* 4 4 */ __be32 agi_seqno; /* 8 4 */ __be32 agi_length; /* 12 4 */ __be32 agi_count; /* 16 4 */ __be32 agi_root; /* 20 4 */ __be32 agi_level; /* 24 4 */ __be32 agi_freecount; /* 28 4 */ __be32 agi_newino; /* 32 4 */ __be32 agi_dirino; /* 36 4 */ __be32 agi_unlinked[64]; /* 40 256 */ /* --- cacheline 4 boundary (256 bytes) was 40 bytes ago --- */ uuid_t agi_uuid; /* 296 16 */ __be32 agi_crc; /* 312 4 */ __be32 agi_pad32; /* 316 4 */ /* --- cacheline 5 boundary (320 bytes) --- */ __be64 agi_lsn; /* 320 8 */ __be32 agi_free_root; /* 328 4 */ __be32 agi_free_level; /* 332 4 */ /* size: 336, cachelines: 6, members: 17 */ /* last cacheline: 16 bytes */ }; struct xfs_timestamp { __be32 t_sec; /* 0 4 */ __be32 t_nsec; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xfs_dinode { __be16 di_magic; /* 0 2 */ __be16 di_mode; /* 2 2 */ __u8 di_version; /* 4 1 */ __u8 di_format; /* 5 1 */ __be16 di_onlink; /* 6 2 */ __be32 di_uid; /* 8 4 */ __be32 di_gid; /* 12 4 */ __be32 di_nlink; /* 16 4 */ __be16 di_projid_lo; /* 20 2 */ __be16 di_projid_hi; /* 22 2 */ __u8 di_pad[6]; /* 24 6 */ __be16 di_flushiter; /* 30 2 */ xfs_timestamp_t di_atime; /* 32 8 */ xfs_timestamp_t di_mtime; /* 40 8 */ xfs_timestamp_t di_ctime; /* 48 8 */ __be64 di_size; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ __be64 di_nblocks; /* 64 8 */ __be32 di_extsize; /* 72 4 */ __be32 di_nextents; /* 76 4 */ __be16 di_anextents; /* 80 2 */ __u8 di_forkoff; /* 82 1 */ __s8 di_aformat; /* 83 1 */ __be32 di_dmevmask; /* 84 4 */ __be16 di_dmstate; /* 88 2 */ __be16 di_flags; /* 90 2 */ __be32 di_gen; /* 92 4 */ __be32 di_next_unlinked; /* 96 4 */ __le32 di_crc; /* 100 4 */ __be64 di_changecount; /* 104 8 */ __be64 di_lsn; /* 112 8 */ __be64 di_flags2; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ __u8 di_pad2[16]; /* 128 16 */ xfs_timestamp_t di_crtime; /* 144 8 */ __be64 di_ino; /* 152 8 */ uuid_t di_uuid; /* 160 16 */ /* size: 176, cachelines: 3, members: 35 */ /* last cacheline: 48 bytes */ }; struct xfs_icluster { bool deleted; /* 0 1 */ /* XXX 7 bytes hole, try to pack */ xfs_ino_t first_ino; /* 8 8 */ uint64_t alloc; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* sum members: 17, holes: 1, sum holes: 7 */ /* last cacheline: 24 bytes */ }; struct xfs_dsb { __be32 sb_magicnum; /* 0 4 */ __be32 sb_blocksize; /* 4 4 */ __be64 sb_dblocks; /* 8 8 */ __be64 sb_rblocks; /* 16 8 */ __be64 sb_rextents; /* 24 8 */ uuid_t sb_uuid; /* 32 16 */ __be64 sb_logstart; /* 48 8 */ __be64 sb_rootino; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ __be64 sb_rbmino; /* 64 8 */ __be64 sb_rsumino; /* 72 8 */ __be32 sb_rextsize; /* 80 4 */ __be32 sb_agblocks; /* 84 4 */ __be32 sb_agcount; /* 88 4 */ __be32 sb_rbmblocks; /* 92 4 */ __be32 sb_logblocks; /* 96 4 */ __be16 sb_versionnum; /* 100 2 */ __be16 sb_sectsize; /* 102 2 */ __be16 sb_inodesize; /* 104 2 */ __be16 sb_inopblock; /* 106 2 */ char sb_fname[12]; /* 108 12 */ __u8 sb_blocklog; /* 120 1 */ __u8 sb_sectlog; /* 121 1 */ __u8 sb_inodelog; /* 122 1 */ __u8 sb_inopblog; /* 123 1 */ __u8 sb_agblklog; /* 124 1 */ __u8 sb_rextslog; /* 125 1 */ __u8 sb_inprogress; /* 126 1 */ __u8 sb_imax_pct; /* 127 1 */ /* --- cacheline 2 boundary (128 bytes) --- */ __be64 sb_icount; /* 128 8 */ __be64 sb_ifree; /* 136 8 */ __be64 sb_fdblocks; /* 144 8 */ __be64 sb_frextents; /* 152 8 */ __be64 sb_uquotino; /* 160 8 */ __be64 sb_gquotino; /* 168 8 */ __be16 sb_qflags; /* 176 2 */ __u8 sb_flags; /* 178 1 */ __u8 sb_shared_vn; /* 179 1 */ __be32 sb_inoalignmt; /* 180 4 */ __be32 sb_unit; /* 184 4 */ __be32 sb_width; /* 188 4 */ /* --- cacheline 3 boundary (192 bytes) --- */ __u8 sb_dirblklog; /* 192 1 */ __u8 sb_logsectlog; /* 193 1 */ __be16 sb_logsectsize; /* 194 2 */ __be32 sb_logsunit; /* 196 4 */ __be32 sb_features2; /* 200 4 */ __be32 sb_bad_features2; /* 204 4 */ __be32 sb_features_compat; /* 208 4 */ __be32 sb_features_ro_compat; /* 212 4 */ __be32 sb_features_incompat; /* 216 4 */ __be32 sb_features_log_incompat; /* 220 4 */ __le32 sb_crc; /* 224 4 */ __be32 sb_spino_align; /* 228 4 */ __be64 sb_pquotino; /* 232 8 */ __be64 sb_lsn; /* 240 8 */ uuid_t sb_meta_uuid; /* 248 16 */ /* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */ /* size: 264, cachelines: 5, members: 55 */ /* last cacheline: 8 bytes */ }; struct xfs_dsymlink_hdr { __be32 sl_magic; /* 0 4 */ __be32 sl_offset; /* 4 4 */ __be32 sl_bytes; /* 8 4 */ __be32 sl_crc; /* 12 4 */ uuid_t sl_uuid; /* 16 16 */ __be64 sl_owner; /* 32 8 */ __be64 sl_blkno; /* 40 8 */ __be64 sl_lsn; /* 48 8 */ /* size: 56, cachelines: 1, members: 8 */ /* last cacheline: 56 bytes */ }; struct buffer_head { long unsigned int b_state; /* 0 8 */ struct buffer_head * b_this_page; /* 8 8 */ struct page * b_page; /* 16 8 */ sector_t b_blocknr; /* 24 8 */ size_t b_size; /* 32 8 */ char * b_data; /* 40 8 */ struct block_device * b_bdev; /* 48 8 */ bh_end_io_t * b_end_io; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ void * b_private; /* 64 8 */ struct list_head b_assoc_buffers; /* 72 16 */ struct address_space * b_assoc_map; /* 88 8 */ atomic_t b_count; /* 96 4 */ /* size: 104, cachelines: 2, members: 12 */ /* padding: 4 */ /* last cacheline: 40 bytes */ }; struct xfs_ioend { struct xfs_ioend * io_list; /* 0 8 */ unsigned int io_type; /* 8 4 */ int io_error; /* 12 4 */ atomic_t io_remaining; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ struct inode * io_inode; /* 24 8 */ struct buffer_head * io_buffer_head; /* 32 8 */ struct buffer_head * io_buffer_tail; /* 40 8 */ size_t io_size; /* 48 8 */ xfs_off_t io_offset; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct work_struct io_work; /* 64 32 */ struct xfs_trans * io_append_trans; /* 96 8 */ /* size: 104, cachelines: 2, members: 11 */ /* sum members: 100, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct pagevec { long unsigned int nr; /* 0 8 */ long unsigned int cold; /* 8 8 */ struct page * pages[14]; /* 16 112 */ /* --- cacheline 2 boundary (128 bytes) --- */ /* size: 128, cachelines: 2, members: 3 */ }; struct xfs_attr_inactive_list { xfs_dablk_t valueblk; /* 0 4 */ int valuelen; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct attrlist { __s32 al_count; /* 0 4 */ __s32 al_more; /* 4 4 */ __s32 al_offset[1]; /* 8 4 */ /* size: 12, cachelines: 1, members: 3 */ /* last cacheline: 12 bytes */ }; struct attrlist_ent { __u32 a_valuelen; /* 0 4 */ char a_name[1]; /* 4 1 */ /* size: 8, cachelines: 1, members: 2 */ /* padding: 3 */ /* last cacheline: 8 bytes */ }; struct xfs_attr_sf_sort { __uint8_t entno; /* 0 1 */ __uint8_t namelen; /* 1 1 */ __uint8_t valuelen; /* 2 1 */ __uint8_t flags; /* 3 1 */ xfs_dahash_t hash; /* 4 4 */ unsigned char * name; /* 8 8 */ /* size: 16, cachelines: 1, members: 6 */ /* last cacheline: 16 bytes */ }; struct getbmapx { __s64 bmv_offset; /* 0 8 */ __s64 bmv_block; /* 8 8 */ __s64 bmv_length; /* 16 8 */ __s32 bmv_count; /* 24 4 */ __s32 bmv_entries; /* 28 4 */ __s32 bmv_iflags; /* 32 4 */ __s32 bmv_oflags; /* 36 4 */ __s32 bmv_unused1; /* 40 4 */ __s32 bmv_unused2; /* 44 4 */ /* size: 48, cachelines: 1, members: 9 */ /* last cacheline: 48 bytes */ }; struct xfs_bstime { time_t tv_sec; /* 0 8 */ __s32 tv_nsec; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_bstat { __u64 bs_ino; /* 0 8 */ __u16 bs_mode; /* 8 2 */ __u16 bs_nlink; /* 10 2 */ __u32 bs_uid; /* 12 4 */ __u32 bs_gid; /* 16 4 */ __u32 bs_rdev; /* 20 4 */ __s32 bs_blksize; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ __s64 bs_size; /* 32 8 */ xfs_bstime_t bs_atime; /* 40 16 */ xfs_bstime_t bs_mtime; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ xfs_bstime_t bs_ctime; /* 72 16 */ int64_t bs_blocks; /* 88 8 */ __u32 bs_xflags; /* 96 4 */ __s32 bs_extsize; /* 100 4 */ __s32 bs_extents; /* 104 4 */ __u32 bs_gen; /* 108 4 */ __u16 bs_projid_lo; /* 112 2 */ __u16 bs_forkoff; /* 114 2 */ __u16 bs_projid_hi; /* 116 2 */ unsigned char bs_pad[10]; /* 118 10 */ /* --- cacheline 2 boundary (128 bytes) --- */ __u32 bs_dmevmask; /* 128 4 */ __u16 bs_dmstate; /* 132 2 */ __u16 bs_aextents; /* 134 2 */ /* size: 136, cachelines: 3, members: 23 */ /* sum members: 132, holes: 1, sum holes: 4 */ /* last cacheline: 8 bytes */ }; struct xfs_swapext { __int64_t sx_version; /* 0 8 */ __int64_t sx_fdtarget; /* 8 8 */ __int64_t sx_fdtmp; /* 16 8 */ xfs_off_t sx_offset; /* 24 8 */ xfs_off_t sx_length; /* 32 8 */ char sx_pad[16]; /* 40 16 */ xfs_bstat_t sx_stat; /* 56 136 */ /* --- cacheline 3 boundary (192 bytes) --- */ /* size: 192, cachelines: 3, members: 7 */ }; struct xfs_extent { xfs_fsblock_t ext_start; /* 0 8 */ xfs_extlen_t ext_len; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_efi_log_format { __uint16_t efi_type; /* 0 2 */ __uint16_t efi_size; /* 2 2 */ __uint32_t efi_nextents; /* 4 4 */ __uint64_t efi_id; /* 8 8 */ xfs_extent_t efi_extents[1]; /* 16 16 */ /* size: 32, cachelines: 1, members: 5 */ /* last cacheline: 32 bytes */ }; struct xfs_efd_log_format { __uint16_t efd_type; /* 0 2 */ __uint16_t efd_size; /* 2 2 */ __uint32_t efd_nextents; /* 4 4 */ __uint64_t efd_efi_id; /* 8 8 */ xfs_extent_t efd_extents[1]; /* 16 16 */ /* size: 32, cachelines: 1, members: 5 */ /* last cacheline: 32 bytes */ }; struct xfs_efi_log_item { xfs_log_item_t efi_item; /* 0 112 */ /* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */ atomic_t efi_refcount; /* 112 4 */ atomic_t efi_next_extent; /* 116 4 */ long unsigned int efi_flags; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ xfs_efi_log_format_t efi_format; /* 128 32 */ /* size: 160, cachelines: 3, members: 5 */ /* last cacheline: 32 bytes */ }; struct xfs_efd_log_item { xfs_log_item_t efd_item; /* 0 112 */ /* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */ xfs_efi_log_item_t * efd_efip; /* 112 8 */ uint efd_next_extent; /* 120 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 2 boundary (128 bytes) --- */ xfs_efd_log_format_t efd_format; /* 128 32 */ /* size: 160, cachelines: 3, members: 4 */ /* sum members: 156, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct __wait_queue { unsigned int flags; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ void * private; /* 8 8 */ wait_queue_func_t func; /* 16 8 */ struct list_head task_list; /* 24 16 */ /* size: 40, cachelines: 1, members: 4 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct blkcg_gq { struct request_queue * q; /* 0 8 */ struct list_head q_node; /* 8 16 */ struct hlist_node blkcg_node; /* 24 16 */ struct blkcg * blkcg; /* 40 8 */ struct bdi_writeback_congested * wb_congested; /* 48 8 */ struct blkcg_gq * parent; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct request_list rl; /* 64 96 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 2 boundary (128 bytes) was 32 bytes ago --- */ atomic_t refcnt; /* 160 4 */ bool online; /* 164 1 */ /* XXX 3 bytes hole, try to pack */ struct blkg_rwstat stat_bytes; /* 168 192 */ /* --- cacheline 5 boundary (320 bytes) was 40 bytes ago --- */ struct blkg_rwstat stat_ios; /* 360 192 */ /* --- cacheline 8 boundary (512 bytes) was 40 bytes ago --- */ struct blkg_policy_data * pd[2]; /* 552 16 */ struct callback_head callback_head; /* 568 16 */ /* --- cacheline 9 boundary (576 bytes) was 8 bytes ago --- */ /* size: 584, cachelines: 10, members: 13 */ /* sum members: 581, holes: 1, sum holes: 3 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 8 bytes */ }; struct blkcg { struct cgroup_subsys_state css; /* 0 184 */ /* --- cacheline 2 boundary (128 bytes) was 56 bytes ago --- */ spinlock_t lock; /* 184 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 3 boundary (192 bytes) --- */ struct radix_tree_root blkg_tree; /* 192 16 */ struct blkcg_gq * blkg_hint; /* 208 8 */ struct hlist_head blkg_list; /* 216 8 */ struct blkcg_policy_data * cpd[2]; /* 224 16 */ struct list_head all_blkcgs_node; /* 240 16 */ /* --- cacheline 4 boundary (256 bytes) --- */ struct list_head cgwb_list; /* 256 16 */ /* size: 272, cachelines: 5, members: 8 */ /* sum members: 268, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct blkcg_policy_data { struct blkcg * blkcg; /* 0 8 */ int plid; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct blkg_rwstat { struct percpu_counter cpu_cnt[4]; /* 0 160 */ /* --- cacheline 2 boundary (128 bytes) was 32 bytes ago --- */ atomic64_t aux_cnt[4]; /* 160 32 */ /* --- cacheline 3 boundary (192 bytes) --- */ /* size: 192, cachelines: 3, members: 2 */ }; struct blkg_policy_data { struct blkcg_gq * blkg; /* 0 8 */ int plid; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_dir2_leaf_map_info { xfs_extlen_t map_blocks; /* 0 4 */ xfs_dablk_t map_off; /* 4 4 */ int map_size; /* 8 4 */ int map_valid; /* 12 4 */ int nmap; /* 16 4 */ xfs_dir2_db_t curdb; /* 20 4 */ int ra_current; /* 24 4 */ int ra_index; /* 28 4 */ int ra_offset; /* 32 4 */ int ra_want; /* 36 4 */ struct xfs_bmbt_irec map[0]; /* 40 0 */ /* size: 40, cachelines: 1, members: 11 */ /* last cacheline: 40 bytes */ }; struct fstrim_range { __u64 start; /* 0 8 */ __u64 len; /* 8 8 */ __u64 minlen; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct xfs_extent_busy { struct rb_node rb_node; /* 0 24 */ struct list_head list; /* 24 16 */ xfs_agnumber_t agno; /* 40 4 */ xfs_agblock_t bno; /* 44 4 */ xfs_extlen_t length; /* 48 4 */ unsigned int flags; /* 52 4 */ /* size: 56, cachelines: 1, members: 6 */ /* last cacheline: 56 bytes */ }; struct xfs_fid64 { u64 ino; /* 0 8 */ u32 gen; /* 8 4 */ u64 parent_ino; /* 12 8 */ u32 parent_gen; /* 20 4 */ /* size: 24, cachelines: 1, members: 4 */ /* last cacheline: 24 bytes */ }; struct xfs_eofblocks { __u32 eof_flags; /* 0 4 */ kuid_t eof_uid; /* 4 4 */ kgid_t eof_gid; /* 8 4 */ prid_t eof_prid; /* 12 4 */ __u64 eof_min_file_size; /* 16 8 */ xfs_ino_t eof_scan_owner; /* 24 8 */ /* size: 32, cachelines: 1, members: 6 */ /* last cacheline: 32 bytes */ }; struct xfs_mru_cache_elem { struct list_head list_node; /* 0 16 */ long unsigned int key; /* 16 8 */ /* size: 24, cachelines: 1, members: 2 */ /* last cacheline: 24 bytes */ }; struct xfs_fstrm_item { struct xfs_mru_cache_elem mru; /* 0 24 */ struct xfs_inode * ip; /* 24 8 */ xfs_agnumber_t ag; /* 32 4 */ /* size: 40, cachelines: 1, members: 3 */ /* padding: 4 */ /* last cacheline: 40 bytes */ }; struct xfs_fsop_geom { __u32 blocksize; /* 0 4 */ __u32 rtextsize; /* 4 4 */ __u32 agblocks; /* 8 4 */ __u32 agcount; /* 12 4 */ __u32 logblocks; /* 16 4 */ __u32 sectsize; /* 20 4 */ __u32 inodesize; /* 24 4 */ __u32 imaxpct; /* 28 4 */ __u64 datablocks; /* 32 8 */ __u64 rtblocks; /* 40 8 */ __u64 rtextents; /* 48 8 */ __u64 logstart; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ unsigned char uuid[16]; /* 64 16 */ __u32 sunit; /* 80 4 */ __u32 swidth; /* 84 4 */ __s32 version; /* 88 4 */ __u32 flags; /* 92 4 */ __u32 logsectsize; /* 96 4 */ __u32 rtsectsize; /* 100 4 */ __u32 dirblocksize; /* 104 4 */ __u32 logsunit; /* 108 4 */ /* size: 112, cachelines: 2, members: 21 */ /* last cacheline: 48 bytes */ }; struct xfs_fsop_counts { __u64 freedata; /* 0 8 */ __u64 freertx; /* 8 8 */ __u64 freeino; /* 16 8 */ __u64 allocino; /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* last cacheline: 32 bytes */ }; struct xfs_fsop_resblks { __u64 resblks; /* 0 8 */ __u64 resblks_avail; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_growfs_data { __u64 newblocks; /* 0 8 */ __u32 imaxpct; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_growfs_log { __u32 newblocks; /* 0 4 */ __u32 isint; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xfs_globals { int log_recovery_delay; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct xfs_ail { struct xfs_mount * xa_mount; /* 0 8 */ struct task_struct * xa_task; /* 8 8 */ struct list_head xa_ail; /* 16 16 */ xfs_lsn_t xa_target; /* 32 8 */ xfs_lsn_t xa_target_prev; /* 40 8 */ struct list_head xa_cursors; /* 48 16 */ /* --- cacheline 1 boundary (64 bytes) --- */ spinlock_t xa_lock; /* 64 4 */ /* XXX 4 bytes hole, try to pack */ xfs_lsn_t xa_last_pushed_lsn; /* 72 8 */ int xa_log_flush; /* 80 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head xa_buf_list; /* 88 16 */ wait_queue_head_t xa_empty; /* 104 24 */ /* --- cacheline 2 boundary (128 bytes) --- */ /* size: 128, cachelines: 2, members: 11 */ /* sum members: 120, holes: 2, sum holes: 8 */ }; struct vfsmount { struct dentry * mnt_root; /* 0 8 */ struct super_block * mnt_sb; /* 8 8 */ int mnt_flags; /* 16 4 */ /* size: 24, cachelines: 1, members: 3 */ /* padding: 4 */ /* last cacheline: 24 bytes */ }; struct fsxattr { __u32 fsx_xflags; /* 0 4 */ __u32 fsx_extsize; /* 4 4 */ __u32 fsx_nextents; /* 8 4 */ __u32 fsx_projid; /* 12 4 */ unsigned char fsx_pad[12]; /* 16 12 */ /* size: 28, cachelines: 1, members: 5 */ /* last cacheline: 28 bytes */ }; struct fd { struct file * file; /* 0 8 */ unsigned int flags; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct dioattr { __u32 d_mem; /* 0 4 */ __u32 d_miniosz; /* 4 4 */ __u32 d_maxiosz; /* 8 4 */ /* size: 12, cachelines: 1, members: 3 */ /* last cacheline: 12 bytes */ }; struct getbmap { __s64 bmv_offset; /* 0 8 */ __s64 bmv_block; /* 8 8 */ __s64 bmv_length; /* 16 8 */ __s32 bmv_count; /* 24 4 */ __s32 bmv_entries; /* 28 4 */ /* size: 32, cachelines: 1, members: 5 */ /* last cacheline: 32 bytes */ }; struct fsdmidata { __u32 fsd_dmevmask; /* 0 4 */ __u16 fsd_padding; /* 4 2 */ __u16 fsd_dmstate; /* 6 2 */ /* size: 8, cachelines: 1, members: 3 */ /* last cacheline: 8 bytes */ }; struct xfs_flock64 { __s16 l_type; /* 0 2 */ __s16 l_whence; /* 2 2 */ /* XXX 4 bytes hole, try to pack */ __s64 l_start; /* 8 8 */ __s64 l_len; /* 16 8 */ __s32 l_sysid; /* 24 4 */ __u32 l_pid; /* 28 4 */ __s32 l_pad[4]; /* 32 16 */ /* size: 48, cachelines: 1, members: 7 */ /* sum members: 44, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct xfs_growfs_rt { __u64 newblocks; /* 0 8 */ __u32 extsize; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_fsop_bulkreq { __u64 * lastip; /* 0 8 */ __s32 icount; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ void * ubuffer; /* 16 8 */ __s32 * ocount; /* 24 8 */ /* size: 32, cachelines: 1, members: 4 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct xfs_inogrp { __u64 xi_startino; /* 0 8 */ __s32 xi_alloccount; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ __u64 xi_allocmask; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* sum members: 20, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; struct xfs_error_injection { __s32 fd; /* 0 4 */ __s32 errtag; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct xfs_fs_eofblocks { __u32 eof_version; /* 0 4 */ __u32 eof_flags; /* 4 4 */ uid_t eof_uid; /* 8 4 */ gid_t eof_gid; /* 12 4 */ prid_t eof_prid; /* 16 4 */ __u32 pad32; /* 20 4 */ __u64 eof_min_file_size; /* 24 8 */ __u64 pad64[12]; /* 32 96 */ /* --- cacheline 2 boundary (128 bytes) --- */ /* size: 128, cachelines: 2, members: 8 */ }; struct xfs_fsop_handlereq { __u32 fd; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ void * path; /* 8 8 */ __u32 oflags; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ void * ihandle; /* 24 8 */ __u32 ihandlen; /* 32 4 */ /* XXX 4 bytes hole, try to pack */ void * ohandle; /* 40 8 */ __u32 * ohandlen; /* 48 8 */ /* size: 56, cachelines: 1, members: 7 */ /* sum members: 44, holes: 3, sum holes: 12 */ /* last cacheline: 56 bytes */ }; struct xfs_fsop_setdm_handlereq { struct xfs_fsop_handlereq hreq; /* 0 56 */ struct fsdmidata * data; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 2 */ }; struct xfs_attrlist_cursor { __u32 opaque[4]; /* 0 16 */ /* size: 16, cachelines: 1, members: 1 */ /* last cacheline: 16 bytes */ }; struct xfs_fsop_attrlist_handlereq { struct xfs_fsop_handlereq hreq; /* 0 56 */ struct xfs_attrlist_cursor pos; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ __u32 flags; /* 72 4 */ __u32 buflen; /* 76 4 */ void * buffer; /* 80 8 */ /* size: 88, cachelines: 2, members: 5 */ /* last cacheline: 24 bytes */ }; struct xfs_attr_multiop { __u32 am_opcode; /* 0 4 */ __s32 am_error; /* 4 4 */ void * am_attrname; /* 8 8 */ void * am_attrvalue; /* 16 8 */ __u32 am_length; /* 24 4 */ __u32 am_flags; /* 28 4 */ /* size: 32, cachelines: 1, members: 6 */ /* last cacheline: 32 bytes */ }; struct xfs_fsop_attrmulti_handlereq { struct xfs_fsop_handlereq hreq; /* 0 56 */ __u32 opcount; /* 56 4 */ /* XXX 4 bytes hole, try to pack */ /* --- cacheline 1 boundary (64 bytes) --- */ struct xfs_attr_multiop * ops; /* 64 8 */ /* size: 72, cachelines: 2, members: 3 */ /* sum members: 68, holes: 1, sum holes: 4 */ /* last cacheline: 8 bytes */ }; struct xfs_fid { __u16 fid_len; /* 0 2 */ __u16 fid_pad; /* 2 2 */ __u32 fid_gen; /* 4 4 */ __u64 fid_ino; /* 8 8 */ /* size: 16, cachelines: 1, members: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_handle { union { __s64 align; /* 8 */ xfs_fsid_t _ha_fsid; /* 8 */ } ha_u; /* 0 8 */ xfs_fid_t ha_fid; /* 8 16 */ /* size: 24, cachelines: 1, members: 2 */ /* last cacheline: 24 bytes */ }; struct posix_acl { union { atomic_t a_refcount; /* 4 */ struct callback_head a_rcu; /* 16 */ }; /* 0 16 */ unsigned int a_count; /* 16 4 */ struct posix_acl_entry a_entries[0]; /* 20 0 */ /* size: 24, cachelines: 1, members: 3 */ /* padding: 4 */ /* last cacheline: 24 bytes */ }; struct xattr_handler { const char * name; /* 0 8 */ const char * prefix; /* 8 8 */ int flags; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ bool (*list)(struct dentry *); /* 24 8 */ int (*get)(const struct xattr_handler *, struct dentry *, const char *, void *, size_t); /* 32 8 */ int (*set)(const struct xattr_handler *, struct dentry *, const char *, const void *, size_t, int); /* 40 8 */ /* size: 48, cachelines: 1, members: 6 */ /* sum members: 44, holes: 1, sum holes: 4 */ /* last cacheline: 48 bytes */ }; struct xattr { const char * name; /* 0 8 */ void * value; /* 8 8 */ size_t value_len; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; struct posix_acl_entry { short int e_tag; /* 0 2 */ short unsigned int e_perm; /* 2 2 */ union { kuid_t e_uid; /* 4 */ kgid_t e_gid; /* 4 */ }; /* 4 4 */ /* size: 8, cachelines: 1, members: 3 */ /* last cacheline: 8 bytes */ }; struct wait_bit_key { void * flags; /* 0 8 */ int bit_nr; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int timeout; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* sum members: 20, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; struct wait_bit_queue { struct wait_bit_key key; /* 0 24 */ wait_queue_t wait; /* 24 40 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 2 */ }; struct ratelimit_state { raw_spinlock_t lock; /* 0 4 */ int interval; /* 4 4 */ int burst; /* 8 4 */ int printed; /* 12 4 */ int missed; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ long unsigned int begin; /* 24 8 */ /* size: 32, cachelines: 1, members: 6 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct xfs_bulkstat_agichunk { char * * ac_ubuffer; /* 0 8 */ int ac_ubleft; /* 8 4 */ int ac_ubelem; /* 12 4 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; struct __va_list { void * __stack; /* 0 8 */ void * __gr_top; /* 8 8 */ void * __vr_top; /* 16 8 */ int __gr_offs; /* 24 4 */ int __vr_offs; /* 28 4 */ /* size: 32, cachelines: 1, members: 5 */ /* last cacheline: 32 bytes */ }; struct va_format { const char * fmt; /* 0 8 */ va_list * va; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_mru_cache { struct radix_tree_root store; /* 0 16 */ struct list_head * lists; /* 16 8 */ struct list_head reap_list; /* 24 16 */ spinlock_t lock; /* 40 4 */ unsigned int grp_count; /* 44 4 */ unsigned int grp_time; /* 48 4 */ unsigned int lru_grp; /* 52 4 */ long unsigned int time_zero; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ xfs_mru_cache_free_func_t free_func; /* 64 8 */ struct delayed_work work; /* 72 128 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */ unsigned int queued; /* 200 4 */ /* size: 208, cachelines: 4, members: 11 */ /* padding: 4 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 16 bytes */ }; struct match_token { int token; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ const char * pattern; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* sum members: 12, holes: 1, sum holes: 4 */ /* last cacheline: 16 bytes */ }; struct proc_xfs_info { uint64_t flag; /* 0 8 */ char * str; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct xfs_sysfs_attr { struct attribute attr; /* 0 16 */ /* XXX last struct has 6 bytes of padding */ ssize_t (*show)(struct kobject *, char *); /* 16 8 */ ssize_t (*store)(struct kobject *, const char *, size_t); /* 24 8 */ /* size: 32, cachelines: 1, members: 3 */ /* paddings: 1, sum paddings: 6 */ /* last cacheline: 32 bytes */ }; struct xfs_ail_cursor { struct list_head list; /* 0 16 */ struct xfs_log_item * item; /* 16 8 */ /* size: 24, cachelines: 1, members: 2 */ /* last cacheline: 24 bytes */ }; struct xlog_op_header { __be32 oh_tid; /* 0 4 */ __be32 oh_len; /* 4 4 */ __u8 oh_clientid; /* 8 1 */ __u8 oh_flags; /* 9 1 */ __u16 oh_res2; /* 10 2 */ /* size: 12, cachelines: 1, members: 5 */ /* last cacheline: 12 bytes */ }; struct xfs_extent_32 { __uint64_t ext_start; /* 0 8 */ __uint32_t ext_len; /* 8 4 */ /* size: 12, cachelines: 1, members: 2 */ /* last cacheline: 12 bytes */ }; struct xfs_efi_log_format_32 { __uint16_t efi_type; /* 0 2 */ __uint16_t efi_size; /* 2 2 */ __uint32_t efi_nextents; /* 4 4 */ __uint64_t efi_id; /* 8 8 */ xfs_extent_32_t efi_extents[1]; /* 16 12 */ /* size: 28, cachelines: 1, members: 5 */ /* last cacheline: 28 bytes */ }; struct xfs_icreate_item { struct xfs_log_item ic_item; /* 0 112 */ /* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */ struct xfs_icreate_log ic_format; /* 112 28 */ /* --- cacheline 2 boundary (128 bytes) was 12 bytes ago --- */ /* size: 144, cachelines: 3, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; struct xfs_inode_log_format_32 { __uint16_t ilf_type; /* 0 2 */ __uint16_t ilf_size; /* 2 2 */ __uint32_t ilf_fields; /* 4 4 */ __uint16_t ilf_asize; /* 8 2 */ __uint16_t ilf_dsize; /* 10 2 */ __uint64_t ilf_ino; /* 12 8 */ union { __uint32_t ilfu_rdev; /* 4 */ uuid_t ilfu_uuid; /* 16 */ } ilf_u; /* 20 16 */ __int64_t ilf_blkno; /* 36 8 */ __int32_t ilf_len; /* 44 4 */ __int32_t ilf_boffset; /* 48 4 */ /* size: 52, cachelines: 1, members: 10 */ /* last cacheline: 52 bytes */ }; struct xfs_inode_log_format_64 { __uint16_t ilf_type; /* 0 2 */ __uint16_t ilf_size; /* 2 2 */ __uint32_t ilf_fields; /* 4 4 */ __uint16_t ilf_asize; /* 8 2 */ __uint16_t ilf_dsize; /* 10 2 */ __uint32_t ilf_pad; /* 12 4 */ __uint64_t ilf_ino; /* 16 8 */ union { __uint32_t ilfu_rdev; /* 4 */ uuid_t ilfu_uuid; /* 16 */ } ilf_u; /* 24 16 */ __int64_t ilf_blkno; /* 40 8 */ __int32_t ilf_len; /* 48 4 */ __int32_t ilf_boffset; /* 52 4 */ /* size: 56, cachelines: 1, members: 11 */ /* last cacheline: 56 bytes */ }; struct xfs_dq_logformat { __uint16_t qlf_type; /* 0 2 */ __uint16_t qlf_size; /* 2 2 */ xfs_dqid_t qlf_id; /* 4 4 */ __int64_t qlf_blkno; /* 8 8 */ __int32_t qlf_len; /* 16 4 */ __uint32_t qlf_boffset; /* 20 4 */ /* size: 24, cachelines: 1, members: 6 */ /* last cacheline: 24 bytes */ }; struct xfs_qoff_logformat { short unsigned int qf_type; /* 0 2 */ short unsigned int qf_size; /* 2 2 */ unsigned int qf_flags; /* 4 4 */ char qf_pad[12]; /* 8 12 */ /* size: 20, cachelines: 1, members: 4 */ /* last cacheline: 20 bytes */ }; struct xfs_buf_cancel { xfs_daddr_t bc_blkno; /* 0 8 */ uint bc_len; /* 8 4 */ int bc_refcount; /* 12 4 */ struct list_head bc_list; /* 16 16 */ /* size: 32, cachelines: 1, members: 4 */ /* last cacheline: 32 bytes */ }; struct xfs_qoff_logitem { xfs_log_item_t qql_item; /* 0 112 */ /* --- cacheline 1 boundary (64 bytes) was 48 bytes ago --- */ struct xfs_qoff_logitem * qql_start_lip; /* 112 8 */ unsigned int qql_flags; /* 120 4 */ /* size: 128, cachelines: 2, members: 3 */ /* padding: 4 */ }; struct xfs_qm_isolate { struct list_head buffers; /* 0 16 */ struct list_head dispose; /* 16 16 */ /* size: 32, cachelines: 1, members: 2 */ /* last cacheline: 32 bytes */ }; struct xfs_acl_entry { __be32 ae_tag; /* 0 4 */ __be32 ae_id; /* 4 4 */ __be16 ae_perm; /* 8 2 */ __be16 ae_pad; /* 10 2 */ /* size: 12, cachelines: 1, members: 4 */ /* last cacheline: 12 bytes */ }; struct xfs_acl { __be32 acl_cnt; /* 0 4 */ struct xfs_acl_entry acl_entry[0]; /* 4 0 */ /* size: 4, cachelines: 1, members: 2 */ /* last cacheline: 4 bytes */ }; struct ctl_table { const char * procname; /* 0 8 */ void * data; /* 8 8 */ int maxlen; /* 16 4 */ umode_t mode; /* 20 2 */ /* XXX 2 bytes hole, try to pack */ struct ctl_table * child; /* 24 8 */ proc_handler * proc_handler; /* 32 8 */ struct ctl_table_poll * poll; /* 40 8 */ void * extra1; /* 48 8 */ void * extra2; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 9 */ /* sum members: 62, holes: 1, sum holes: 2 */ }; struct ctl_table_poll { atomic_t event; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ wait_queue_head_t wait; /* 8 24 */ /* size: 32, cachelines: 1, members: 2 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; struct ctl_node { struct rb_node node; /* 0 24 */ struct ctl_table_header * header; /* 24 8 */ /* size: 32, cachelines: 1, members: 2 */ /* last cacheline: 32 bytes */ }; struct ctl_table_header { union { struct { struct ctl_table * ctl_table; /* 0 8 */ int used; /* 8 4 */ int count; /* 12 4 */ int nreg; /* 16 4 */ }; /* 24 */ struct callback_head rcu; /* 16 */ }; /* 0 24 */ struct completion * unregistering; /* 24 8 */ struct ctl_table * ctl_table_arg; /* 32 8 */ struct ctl_table_root * root; /* 40 8 */ struct ctl_table_set * set; /* 48 8 */ struct ctl_dir * parent; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct ctl_node * node; /* 64 8 */ /* size: 72, cachelines: 2, members: 7 */ /* last cacheline: 8 bytes */ }; struct ctl_table_root { struct ctl_table_set default_set; /* 0 88 */ /* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */ struct ctl_table_set * (*lookup)(struct ctl_table_root *, struct nsproxy *); /* 88 8 */ int (*permissions)(struct ctl_table_header *, struct ctl_table *); /* 96 8 */ /* size: 104, cachelines: 2, members: 3 */ /* last cacheline: 40 bytes */ }; struct ctl_table_set { int (*is_seen)(struct ctl_table_set *); /* 0 8 */ struct ctl_dir dir; /* 8 80 */ /* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */ /* size: 88, cachelines: 2, members: 2 */ /* last cacheline: 24 bytes */ }; struct ctl_dir { struct ctl_table_header header; /* 0 72 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct rb_root root; /* 72 8 */ /* size: 80, cachelines: 2, members: 2 */ /* last cacheline: 16 bytes */ }; struct modversion_info { long unsigned int crc; /* 0 8 */ char name[56]; /* 8 56 */ /* --- cacheline 1 boundary (64 bytes) --- */ /* size: 64, cachelines: 1, members: 2 */ };