o Make epoch batch limit a global int, and move it to kern.epoch namespace.
o Change epoch batch size to 64. Benchmarks doesn't show any improvement above this number.
o Limit taskqueue/gtaskqueue executions in epoch to epoch_batch_max.
Details
Details
- Reviewers
erj • hselasky jeff markj
Diff Detail
Diff Detail
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 30694 Build 28426: arc lint + arc unit
Event Timeline
Comment Actions
I like the idea, but needs to be tested first. I'd suggest to go with this patch first, since it is a bugfix for taskqueues, and default value adjustment is something that you wanted me to do long time.
Comment Actions
The most simple fix is to not coalesce epoch calls. Can we agree on that?
Keep it simple stupid, KISS. One EPOCH enter / exit for every GROUPTASKQUEUE call.
There are other ways to optimise epoch calls on a system-per-CPU based method.
Comment Actions
The patch looks right to me. I still think this batching is dangerous as it increases free-to-reuse latency substantially for a fairly small perf gain. I would like to explore ways to make epoch sections cheaper without compromising system liveness.