OSDN Git Service

Merge branch 'shrink-struct-ubuf_info'
authorJakub Kicinski <kuba@kernel.org>
Thu, 29 Sep 2022 01:51:27 +0000 (18:51 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 29 Sep 2022 01:51:28 +0000 (18:51 -0700)
Pavel Begunkov says:

====================
shrink struct ubuf_info

struct ubuf_info is large but not all fields are needed for all
cases. We have limited space in io_uring for it and large ubuf_info
prevents some struct embedding, even though we use only a subset
of the fields. It's also not very clean trying to use this typeless
extra space.

Shrink struct ubuf_info to only necessary fields used in generic paths,
namely ->callback, ->refcnt and ->flags, which take only 16 bytes. And
make MSG_ZEROCOPY and some other users to embed it into a larger struct
ubuf_info_msgzc mimicking the former ubuf_info.

Note, xen/vhost may also have some cleaning on top by creating
new structs containing ubuf_info but with proper types.
====================

Link: https://lore.kernel.org/r/cover.1663892211.git.asml.silence@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

Trivial merge