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. Now I don't know good benchmark for anon vmas, but maybe you do. 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>