aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/meson/meson_encoder_dsi.c
diff options
context:
space:
mode:
authorPavel Begunkov <[email protected]>2025-02-15 00:09:39 +0000
committerJens Axboe <[email protected]>2025-02-17 12:41:09 +0000
commit34a3e60821ab9f335a58d43a88cccdbefdebdec3 (patch)
tree63404433d0cc217653e56050380c0b95262e400c /drivers/gpu/drm/meson/meson_encoder_dsi.c
parentio_uring/zcrx: grab a net device (diff)
downloadkernel-34a3e60821ab9f335a58d43a88cccdbefdebdec3.tar.gz
kernel-34a3e60821ab9f335a58d43a88cccdbefdebdec3.zip
io_uring/zcrx: implement zerocopy receive pp memory provider
Implement a page pool memory provider for io_uring to receieve in a zero copy fashion. For that, the provider allocates user pages wrapped around into struct net_iovs, that are stored in a previously registered struct net_iov_area. Unlike the traditional receive, that frees pages and returns them back to the page pool right after data was copied to the user, e.g. inside recv(2), we extend the lifetime until the user space confirms that it's done processing the data. That's done by taking a net_iov reference. When the user is done with the buffer, it must return it back to the kernel by posting an entry into the refill ring, which is usually polled off the io_uring memory provider callback in the page pool's netmem allocation path. There is also a separate set of per net_iov "user" references accounting whether a buffer is currently given to the user (including possible fragmentation). Reviewed-by: Jens Axboe <[email protected]> Reviewed-by: Mina Almasry <[email protected]> Signed-off-by: Pavel Begunkov <[email protected]> Signed-off-by: David Wei <[email protected]> Acked-by: Jakub Kicinski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/meson/meson_encoder_dsi.c')
0 files changed, 0 insertions, 0 deletions