2023-02-17 08:02:55

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH] KVM: Reorder fields in 'struct kvm_mmu_memory_cache'

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 <[email protected]>
---
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



2023-02-17 16:41:40

by Sean Christopherson

[permalink] [raw]
Subject: Re: [PATCH] KVM: Reorder fields in 'struct kvm_mmu_memory_cache'

On Fri, Feb 17, 2023, Christophe JAILLET wrote:
> 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.

Heh, a hair too late[*]. Unless I'm mistaken, Mathias will be sending a new
version in the not-too-distant future.

Thanks!

[*] https://lore.kernel.org/all/[email protected]

2023-02-17 19:22:40

by Christophe JAILLET

[permalink] [raw]
Subject: Re: [PATCH] KVM: Reorder fields in 'struct kvm_mmu_memory_cache'

Le 17/02/2023 à 17:41, Sean Christopherson a écrit :
> On Fri, Feb 17, 2023, Christophe JAILLET wrote:
>> 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.
>
> Heh, a hair too late[*]. Unless I'm mistaken, Mathias will be sending a new
> version in the not-too-distant future.
>
> Thanks!
>
> [*] https://lore.kernel.org/all/[email protected]
>

Ok, great :)

Thanks for the feed-back.

CJ

2023-02-17 19:33:29

by Mathias Krause

[permalink] [raw]
Subject: Re: [PATCH] KVM: Reorder fields in 'struct kvm_mmu_memory_cache'

On 17.02.23 17:41, Sean Christopherson wrote:
> On Fri, Feb 17, 2023, Christophe JAILLET wrote:
>> 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.
>
> Heh, a hair too late[*]. Unless I'm mistaken, Mathias will be sending a new
> version in the not-too-distant future.

Jepp, patches should appear here anytime soon:

https://lore.kernel.org/kvm/[email protected]

>
> Thanks!
>
> [*] https://lore.kernel.org/all/[email protected]