Message ID | 20211210193556.1349090-2-yannick.vignon@oss.nxp.com (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: Improving network scheduling latencies | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Clearly marked for net-next |
netdev/fixes_present | success | Fixes tag not required for -next series |
netdev/subject_prefix | success | Link |
netdev/cover_letter | success | Series has a cover letter |
netdev/patch_count | success | Link |
netdev/header_inline | success | No static functions without inline keyword in header files |
netdev/build_32bit | success | Errors and warnings before: 7 this patch: 7 |
netdev/cc_maintainers | success | CCed 4 of 4 maintainers |
netdev/build_clang | success | Errors and warnings before: 20 this patch: 20 |
netdev/module_param | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Signed-off-by tag matches author and committer |
netdev/verify_fixes | success | No Fixes tag |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 9 this patch: 9 |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 13 lines checked |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/source_inline | success | Was 0 now: 0 |
On Fri, 10 Dec 2021 20:35:53 +0100 Yannick Vignon wrote: > From: Yannick Vignon <yannick.vignon@nxp.com> > > NAPI polling is normally protected by local_bh_disable()/local_bh_enable() > calls, to avoid that code from being executed concurrently due to the > softirq design. When NAPI instances are assigned their own dedicated kernel > thread however, that concurrent code execution can no longer happen. Meaning NAPI will now run in process context? That's not possible, lots of things depend on being in BH context. There are per-CPU cross-NAPI resources, I think we have some expectations that we don't need to take RCU locks here and there.. > Removing the lock helps lower latencies when handling real-time traffic > (whose processing could still be delayed because of on-going processing of > best-effort traffic), and should also have a positive effect on overall > performance. > > Signed-off-by: Yannick Vignon <yannick.vignon@nxp.com> > --- > net/core/dev.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/net/core/dev.c b/net/core/dev.c > index 15ac064b5562..e35d90e70c75 100644 > --- a/net/core/dev.c > +++ b/net/core/dev.c > @@ -7131,13 +7131,11 @@ static int napi_threaded_poll(void *data) > for (;;) { > bool repoll = false; > > - local_bh_disable(); > > have = netpoll_poll_lock(napi); > __napi_poll(napi, &repoll); > netpoll_poll_unlock(have); > > - local_bh_enable(); > > if (!repoll) > break;
diff --git a/net/core/dev.c b/net/core/dev.c index 15ac064b5562..e35d90e70c75 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -7131,13 +7131,11 @@ static int napi_threaded_poll(void *data) for (;;) { bool repoll = false; - local_bh_disable(); have = netpoll_poll_lock(napi); __napi_poll(napi, &repoll); netpoll_poll_unlock(have); - local_bh_enable(); if (!repoll) break;