From: Omar Sandoval <osandov@xxxxxx> Hello, I've spent the past few weeks experimenting with different heuristics for Kyber in order to deal with some edge cases we've hit here. This series is my progress so far, implementing less handwavy heuristics while keeping the same basic mechanisms. Patches 1 and 2 are preparation. Patch 3 is a minor optimization. Patch 4 is the main change, and includes a detailed description of the new heuristics. Patch 5 adds tracepoints for debugging. Please, take a look and try it out. Thanks! Omar Sandoval (5): block: move call of scheduler's ->completed_request() hook block: export blk_stat_enable_accounting() kyber: don't make domain token sbitmap larger than necessary kyber: implement improved heuristics kyber: add tracepoints block/blk-mq-sched.h | 4 +- block/blk-mq.c | 5 +- block/blk-stat.c | 1 + block/kyber-iosched.c | 541 +++++++++++++++++++---------------- include/linux/elevator.h | 2 +- include/trace/events/kyber.h | 76 +++++ 6 files changed, 383 insertions(+), 246 deletions(-) create mode 100644 include/trace/events/kyber.h -- 2.18.0