On 2022-02-10 10:13:30 [-0800], Jakub Kicinski wrote: > > So we do netif_rx_backlog() with the bh disable+enable and > > __netif_rx_backlog() without it and export both tree wide? > > At a risk of confusing people about the API we could also name the > "non-super-optimized" version netif_rx(), like you had in your patch. > Grepping thru the drivers there's ~250 uses so maybe we don't wanna > touch all that code. No strong preference, I just didn't expect to > see __netif_rx_backlog(), but either way works. So let me keep the naming as-is, export __netif_rx() and update the kernel doc with the bits about backlog. After that if we are up to rename the function in ~250 drivers then I should be simpler. > > It would make it more obvious indeed. Could we add > > WARN_ON_ONCE(!(hardirq_count() | softirq_count())) > > to the shortcut to catch the "you did it wrong folks"? This costs me > > about 2ns. > > Modulo lockdep_..(), so we don't have to run this check on prod kernels? I was worried a little about the corner cases but then lockdep is your friend and you should test your code. Okay. Sebastian