* [PATCH] 9p: optimize p9_fcall struct
@ 2026-10-29 6:00 Dominique Martinet
2026-10-29 6:03 ` sashiko-bot
0 siblings, 1 reply; 2+ messages in thread
From: Dominique Martinet @ 2026-10-29 6:00 UTC (permalink / raw)
To: Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
Christian Schoenebeck
Cc: v9fs, linux-kernel
p9_fcall has a 1 byte hole followed by more data and then a single byte
element:
struct p9_fcall {
u32 size; /* 0 4 */
u8 id; /* 4 1 */
/* XXX 1 byte hole, try to pack */
u16 tag; /* 6 2 */
size_t offset; /* 8 8 */
size_t capacity; /* 16 8 */
struct kmem_cache * cache; /* 24 8 */
u8 * sdata; /* 32 8 */
bool zc; /* 40 1 */
/* size: 48, cachelines: 1, members: 8 */
/* sum members: 40, holes: 1, sum holes: 1 */
/* padding: 7 */
/* last cacheline: 48 bytes */
};
move `zc` up to optimize it:
struct p9_fcall {
u32 size; /* 0 4 */
u8 id; /* 4 1 */
bool zc; /* 5 1 */
u16 tag; /* 6 2 */
size_t offset; /* 8 8 */
size_t capacity; /* 16 8 */
struct kmem_cache * cache; /* 24 8 */
u8 * sdata; /* 32 8 */
/* size: 40, cachelines: 1, members: 8 */
/* last cacheline: 40 bytes */
};
This in turn also makes p9_req_t 16 bytes smaller (152 -> 136) as it
contains two of these.
Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
---
include/net/9p/9p.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/net/9p/9p.h b/include/net/9p/9p.h
index 22ab7486795d..067e8a3b38d0 100644
--- a/include/net/9p/9p.h
+++ b/include/net/9p/9p.h
@@ -581,6 +581,7 @@ struct p9_rstatfs {
struct p9_fcall {
u32 size;
u8 id;
+ bool zc;
u16 tag;
size_t offset;
@@ -588,7 +589,6 @@ struct p9_fcall {
struct kmem_cache *cache;
u8 *sdata;
- bool zc;
};
int p9_errstr2errno(char *errstr, int len);
--
2.56.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] 9p: optimize p9_fcall struct
2026-10-29 6:00 [PATCH] 9p: optimize p9_fcall struct Dominique Martinet
@ 2026-10-29 6:03 ` sashiko-bot
0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-10-29 6:03 UTC (permalink / raw)
To: Dominique Martinet; +Cc: v9fs
> p9_fcall has a 1 byte hole followed by more data and then a single byte
> element:
>
> struct p9_fcall {
> u32 size; /* 0 4 */
> u8 id; /* 4 1 */
>
> /* XXX 1 byte hole, try to pack */
>
> u16 tag; /* 6 2 */
> size_t offset; /* 8 8 */
> size_t capacity; /* 16 8 */
> struct kmem_cache * cache; /* 24 8 */
> u8 * sdata; /* 32 8 */
> bool zc; /* 40 1 */
> [ ... ]
>
> This in turn also makes p9_req_t 16 bytes smaller (152 -> 136) as it
> contains two of these.
>
> Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
Sashiko has reviewed this patch and found no issues.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261029060014.3-1-asmadeus@codewreck.org?part=1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-10-29 6:03 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-29 6:00 [PATCH] 9p: optimize p9_fcall struct Dominique Martinet
2026-10-29 6:03 ` sashiko-bot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.