Group some variables based on their sizes to reduce hole and avoid padding. On x86_64, this shrinks the size from 40 to 32 bytes. Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> --- Using pahole Before: ====== struct kvm_mmu_memory_cache { int nobjs; /* 0 4 */ gfp_t gfp_zero; /* 4 4 */ gfp_t gfp_custom; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct kmem_cache * kmem_cache; /* 16 8 */ int capacity; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ void * * objects; /* 32 8 */ /* size: 40, cachelines: 1, members: 6 */ /* sum members: 32, holes: 2, sum holes: 8 */ /* last cacheline: 40 bytes */ }; --- include/linux/kvm_types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/kvm_types.h b/include/linux/kvm_types.h index 2728d49bbdf6..76af8425dbc6 100644 --- a/include/linux/kvm_types.h +++ b/include/linux/kvm_types.h @@ -94,8 +94,8 @@ struct kvm_mmu_memory_cache { int nobjs; gfp_t gfp_zero; gfp_t gfp_custom; - struct kmem_cache *kmem_cache; int capacity; + struct kmem_cache *kmem_cache; void **objects; }; #endif -- 2.34.1