Em Thu, Jan 10, 2019 at 03:09:49PM -0300, Arnaldo Carvalho de Melo escreveu: > This last one is interesting, was this done on purpose? I think one > level of indirection more and we would keep the original expressiveness. > > @@ -8473,7 +8497,7 @@ > struct lruvec_stat * lruvec_stat_cpu; /* 136 8 */ > atomic_long_t lruvec_stat[30]; /* 144 240 */ > /* --- cacheline 6 boundary (384 bytes) --- */ > - long unsigned int lru_zone_size[5][5]; /* 384 200 */ > + long unsigned int lru_zone_size[25]; /* 384 200 */ > /* --- cacheline 9 boundary (576 bytes) was 8 bytes ago --- */ So I see this is something inherited from CTF, that is why when I worked on making these tools support multiple debugging file formats I added this option: [acme@quaco pahole]$ pahole --flat_arrays -C mem_cgroup_per_node -F dwarf ~/git/build/v4.20-rc5+/net/ipv4/tcp.o > /tmp/dwarf [acme@quaco pahole]$ pahole -C mem_cgroup_per_node -F btf ~/git/build/v4.20-rc5+/net/ipv4/tcp.o > /tmp/btf [acme@quaco pahole]$ diff -u /tmp/dwarf /tmp/btf [acme@quaco pahole]$ But do we want to keep it this way? - Arnaldo [acme@quaco pahole]$ pahole --flat_arrays -C mem_cgroup_per_node -F dwarf ~/git/build/v4.20-rc5+/net/ipv4/tcp.o struct mem_cgroup_per_node { struct lruvec lruvec; /* 0 136 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ struct lruvec_stat * lruvec_stat_cpu; /* 136 8 */ atomic_long_t lruvec_stat[30]; /* 144 240 */ /* --- cacheline 6 boundary (384 bytes) --- */ long unsigned int lru_zone_size[25]; /* 384 200 */ /* --- cacheline 9 boundary (576 bytes) was 8 bytes ago --- */ struct mem_cgroup_reclaim_iter iter[13]; /* 584 208 */ /* --- cacheline 12 boundary (768 bytes) was 24 bytes ago --- */ struct memcg_shrinker_map * shrinker_map; /* 792 8 */ struct rb_node tree_node; /* 800 24 */ long unsigned int usage_in_excess; /* 824 8 */ /* --- cacheline 13 boundary (832 bytes) --- */ bool on_tree; /* 832 1 */ bool congested; /* 833 1 */ /* XXX 6 bytes hole, try to pack */ struct mem_cgroup * memcg; /* 840 8 */ /* size: 848, cachelines: 14, members: 11 */ /* sum members: 842, holes: 1, sum holes: 6 */ /* last cacheline: 16 bytes */ }; [acme@quaco pahole]$