On Thu, 2016-08-18 at 17:39 +0300, Alexey Dobriyan wrote: > FYI, > > on x86_64, ->anon_vma_chain has offset 120 inside the structure > which means that: > * on CONFIG_NUMA=n CONFIG_USERFAULTFD=n kernels > every 4-th VMA has this list head spanning 2 cachelines and, > > * on CONFIG_NUMA=y CONFIG_USERFAULTFD=y kernels > _every_ VMA has this peculiar property. It may make sense to move vm_pgoff into the first cache line, since that is likely to be used in conjunction with the rb tree, in rb tree walks. > Now I don't know good benchmark for anon vmas, > but maybe you do. I am not sure what we would use to benchmark this. > struct vm_area_struct { > vm_start; /* 0 8 */ > vm_end; /* 8 8 */ > vm_next; /* 16 8 */ > vm_prev; /* 24 8 */ > vm_rb; /* 32 24 */ > rb_subtree_gap; /* 56 8 */ > /* --- cacheline 1 boundary (64 bytes) --- */ > vm_mm; /* 64 8 */ > vm_page_prot; /* 72 8 */ > vm_flags; /* 80 8 */ > > rb; /* 88 24 */ > rb_subtree_last; /* 112 8 */ > /* 88 32 */ > > > ===> struct list_head anon_vma_chain; /* 120 16 */ > /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- > */ > > > anon_vma; /* 136 8 */ > struct * vm_ops; /* 144 8 */ > vm_pgoff; /* 152 8 */ > vm_file; /* 160 8 */ > vm_private_data; /* 168 8 */ > vm_userfaultfd_ctx; /* 176 0 */ > > /* size: 176, cachelines: 3, members: 17 */ > /* last cacheline: 48 bytes */ > }; -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>