On Fri, 2024-08-16 at 15:26 +0100, Pavel Begunkov wrote: > I pushed what I had (2 last patches), you can use it as a > reference, but be aware that it's a completely untested > draft with some obvious problems and ugly uapi. > > https://github.com/isilence/linux.git manual-napi > https://github.com/isilence/linux/commits/manual-napi/ > I did review what you have done... I like your take on this feature idea... especially the autoremove field. the one aspect that I prefer in my version over yours, it is that my implementation avoids totally to call __io_napi_add() which includes a table lookup from io_poll_check_events() which is big chunk of the dynamic tracking overhead. also, when the napi devices are iterated in __io_napi_do_busy_loop(), my version totally remove the conditional branching from the loop by having 2 distinct busy loop functions. but I guess the last point is arguably unimportant since the code is busy polling... Anyway, I had the time to create a v2 version of my implementation to address the remarks made about v1 that I have completed testing. It has been running on my system for the last 24h flawlessly... I will post it here shortly. Please take a look at it and pick the best features of both implementation.