Messages in this thread | | | From | Shaohua Li <> | Subject | [PATCH 0/5] blk plug fixes | Date | Thu, 30 Apr 2015 10:45:13 -0700 |
| |
These are some block plug related patches. The first 3 are independent and can apply separately.
For the multiple queue case, I only handled !BLK_MQ_F_DEFER_ISSUE case. The DEFER_ISSUE is really confusing, I'm not sure what's the correct behavior.
BTW, calling blk_mq_merge_queue_io is confusing too to me. The request will be dispatched immediately or offload to a workqueue to dispatch. In either case, the request will be dispatched soon. There is a tiny window there are requests in the queue and requests can be merged. I thought we can delete the code with plug merge. And if out of order request merge is important, we really should add a ELEVATOR_INSERT_SORT_MERGE like mechanism. This makes me more confusing about BLK_MQ_F_DEFER_ISSUE too.
Thanks, Shaohua
Jeff Moyer (1): blk-mq: fix plugging in blk_sq_make_request
Shaohua Li (4): blk: clean up plug sched: always use blk_schedule_flush_plug in io_schedule_out blk-mq: do limited block plug for multiple queue case blk-mq: make plug work for mutiple disks and queues
block/blk-core.c | 34 ++++++++------- block/blk-mq.c | 120 ++++++++++++++++++++++++++++++++-------------------- block/blk.h | 3 +- kernel/sched/core.c | 8 +--- 4 files changed, 98 insertions(+), 67 deletions(-)
-- 1.8.1
| |