On 2024-10-08 08:58, Stanislav Fomichev wrote: > On 10/07, David Wei wrote: >> From: Pavel Begunkov <asml.silence@xxxxxxxxx> >> >> There are scenarios in which the zerocopy path might get a normal >> in-kernel buffer, it could be a mis-steered packet or simply the linear >> part of an skb. Another use case is to allow the driver to allocate >> kernel pages when it's out of zc buffers, which makes it more resilient >> to spikes in load and allow the user to choose the balance between the >> amount of memory provided and performance. > > Tangential: should there be some clear way for the users to discover that > (some counter of some entry on cq about copy fallback)? > > Or the expectation is that somebody will run bpftrace to diagnose > (supposedly) poor ZC performance when it falls back to copy? Yeah there definitely needs to be a way to notify the user that copy fallback happened. Right now I'm relying on bpftrace hooking into io_zcrx_copy_chunk(). Doing it per cqe (which is emitted per frag) is too much. I can think of two other options: 1. Send a final cqe at the end of a number of frag cqes with a count of the number of copies. 2. Register a secondary area just for handling copies. Other suggestions are also very welcome.