On Mon, Jun 29, 2026 at 4:26 PM Jakub Kicinski <[email protected]> wrote: > > On Mon, 29 Jun 2026 12:20:25 -0700 Shuhao Tan wrote: > > These drivers destroy and recreate queues during configuration > > changes. If a NAPI was threaded before destruction, during the > > creation, a new kthread will be spawned for the NAPI. > > > > Some drivers do not have this problem, e.g. netdevsim. But these > > drivers and the drivers mentioned above will still lose kthread > > during link flap (ndo_stop/ndo_open). > > > > Because the kthreads before and after these configuration changes are > > different, all the attributes associated with the kthread are lost. > > These include CPU mask, priority, scheduler policy, etc.. If the > > threaded state is preserved for a NAPI, it makes sense to want to > > preserve the attributes of the thread as well. > > Send a netdev Netlink notification when NAPI is re-created and > let the userspace re-apply the settings?
It feels surprising that the userspace needs to reconfigure thread properties when changing NIC configurations unrelated to threading. Another downside is that when userspace configures NIC configurations in quick succession, re-application becomes messy because a previous re-application might still be in progress when the thread is gone. > Keeping a few u32s > around is one thing but keeping a thread running and visible > in /procfs for the lifetime of a machine feels a little bit much. > IDK. The thread will be parked, so at least it will not eat CPU cycles. Regarding visibility, the only case that I am aware of where a thread can be unwantedly visible requires first setting the device/queue to be threaded and then reducing the number of queues. If certain configurations are applied before the reduction, it makes sense to want to restore those stuff when the queues get added back (like irq_affinity today). Moreover, the user can stop the stale thread and completely remove it by disabling threaded NAPI on the device. So the thread is not completely tied to the machine's lifetime, and there is a way to get rid of it.

