Dipankar made RCU limit the batch size to improve latency, but that approach is unworkable: it can cause the RCU queues to grow without bounds, since the batch limiter ended up limiting the callbacks. So make the limit much higher, and start planning on instead limiting the batch size by doing RCU callbacks more often if the queue looks like it might be growing too long.
Showing the changes to kernel (1 of 1 file). Show all
Unified · Split
| @@ -71,7 +71,7 @@ DEFINE_PER_CPU(struct rcu_data, rcu_bh_data) = { 0L }; · 70 unmodified lines | |||
| 71 | 71 | ||
| 72 | /* Fake initialization required by compiler */ | 72 | /* Fake initialization required by compiler */ |
| 73 | static DEFINE_PER_CPU(struct tasklet_struct, rcu_tasklet) = {NULL}; | 73 | static DEFINE_PER_CPU(struct tasklet_struct, rcu_tasklet) = {NULL}; |
| 74 | static int maxbatch = 10; | 74 | static int maxbatch = 10000; |
| 75 | 75 | ||
| 76 | #ifndef __HAVE_ARCH_CMPXCHG | 76 | #ifndef __HAVE_ARCH_CMPXCHG |
| 77 | /* | 77 | /* |