Re: [PATCH net-next 1/5] net: napi: Make napi_defer_hard_irqs per-NAPI
From: Joe Damato <hidden>
Date: 2024-08-30 09:14:46
Also in:
lkml
On Thu, Aug 29, 2024 at 03:05:02PM -0700, Jakub Kicinski wrote:
On Thu, 29 Aug 2024 13:11:57 +0000 Joe Damato wrote:quoted
+/** + * napi_get_defer_hard_irqs - get the NAPI's defer_hard_irqs + * @n: napi struct to get the defer_hard_irqs field from + * + * Returns the per-NAPI value of the defar_hard_irqs field. + */ +int napi_get_defer_hard_irqs(const struct napi_struct *n); + +/** + * napi_set_defer_hard_irqs - set the defer_hard_irqs for a napi + * @n: napi_struct to set the defer_hard_irqs field + * @defer: the value the field should be set to + */ +void napi_set_defer_hard_irqs(struct napi_struct *n, int defer); + +/** + * netdev_set_defer_hard_irqs - set defer_hard_irqs for all NAPIs of a netdev + * @netdev: the net_device for which all NAPIs will have their defer_hard_irqs set + * @defer: the defer_hard_irqs value to set + */ +void netdev_set_defer_hard_irqs(struct net_device *netdev, int defer);Do you expect drivers or modules to call these? I'm not sure we need the wrappers just to cover up the READ/WRITE_ONCE() but if you do want to keep them they can be static inlines in net/core/dev.h
It looked like there were a few call sites for these in net/core/dev.c, the sysfs code, and the netlink code. I figured having it all wrapped up somewhere might be better than repeating the READ/WRITE_ONCE() stuff. I have no preference on whether there are wrappers or not, though. If you'd like me to drop the wrappers for the v2, let me know. Otherwise: I'll make them static inlines as you suggested. Let me know if you have a preference here because I am neutral.
nit: IIUC the kdoc should go on the definition, not the declaration.
My mistake; thanks. I suppose if I move them as static inlines, I'll just move the kdoc as well and the problem solves itself :)