linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC 0/9] support concurrent sync io for bfq on a specail occasion
@ 2021-11-27 10:11 Yu Kuai
  2021-11-27 10:11 ` [PATCH RFC 1/9] block, bfq: add new apis to iterate bfq entities Yu Kuai
                   ` (10 more replies)
  0 siblings, 11 replies; 21+ messages in thread
From: Yu Kuai @ 2021-11-27 10:11 UTC (permalink / raw)
  To: tj, axboe, paolo.valente
  Cc: cgroups, linux-block, linux-kernel, yukuai3, yi.zhang

Bfq can't handle sync io concurrently as long as the io are not issued
from root group currently.

Previous patch set:
https://lore.kernel.org/lkml/20211014014556.3597008-2-yukuai3@huawei.com/t/

During implemting the method mentioned by the above patch set, I found
more problems that will block implemting concurrent sync io. The
modifications of this patch set are as follows:

1) count root group into 'num_groups_with_pending_reqs';
2) don't idle if 'num_groups_with_pending_reqs' is 1;
3) If the group doesn't have pending requests while it's child groups
have pending requests, don't count the group.
4) Once the group doesn't have pending requests, decrease
'num_groups_with_pending_reqs' immediately. Don't delay to when all
it's child groups don't have pending requests.

Noted that I just tested basic functionality of this patchset, and I
think it's better to see if anyone have suggestions or better
solutions.

Yu Kuai (9):
  block, bfq: add new apis to iterate bfq entities
  block, bfq: apply news apis where root group is not expected
  block, bfq: handle the case when for_each_entity() access root group
  block, bfq: count root group into 'num_groups_with_pending_reqs'
  block, bfq: do not idle if only one cgroup is activated
  block, bfq: only count group that the bfq_queue belongs to
  block, bfq: record how many queues have pending requests in bfq_group
  block, bfq: move forward __bfq_weights_tree_remove()
  block, bfq: decrease 'num_groups_with_pending_reqs' earlier

 block/bfq-cgroup.c  |  3 +-
 block/bfq-iosched.c | 92 +++++++++++++++++++++++----------------------
 block/bfq-iosched.h | 41 +++++++++++++-------
 block/bfq-wf2q.c    | 44 +++++++++++++++-------
 4 files changed, 106 insertions(+), 74 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2021-12-17  2:53 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-27 10:11 [PATCH RFC 0/9] support concurrent sync io for bfq on a specail occasion Yu Kuai
2021-11-27 10:11 ` [PATCH RFC 1/9] block, bfq: add new apis to iterate bfq entities Yu Kuai
2021-11-27 10:11 ` [PATCH RFC 2/9] block, bfq: apply news apis where root group is not expected Yu Kuai
2021-11-27 10:11 ` [PATCH RFC 3/9] block, bfq: handle the case when for_each_entity() access root group Yu Kuai
2021-12-10 10:06   ` Paolo Valente
2021-11-27 10:11 ` [PATCH RFC 4/9] block, bfq: count root group into 'num_groups_with_pending_reqs' Yu Kuai
2021-11-27 10:11 ` [PATCH RFC 5/9] block, bfq: do not idle if only one cgroup is activated Yu Kuai
2021-11-27 10:11 ` [PATCH RFC 6/9] block, bfq: only count group that the bfq_queue belongs to Yu Kuai
2021-11-27 10:11 ` [PATCH RFC 7/9] block, bfq: record how many queues have pending requests in bfq_group Yu Kuai
2021-11-27 10:11 ` [PATCH RFC 8/9] block, bfq: move forward __bfq_weights_tree_remove() Yu Kuai
2021-12-10 10:00   ` Paolo Valente
2021-12-11  2:18     ` yukuai (C)
2021-11-27 10:11 ` [PATCH RFC 9/9] block, bfq: decrease 'num_groups_with_pending_reqs' earlier Yu Kuai
2021-12-10 10:21   ` Paolo Valente
2021-12-11  2:10     ` yukuai (C)
2021-12-16 16:34       ` Paolo Valente
2021-12-17  2:53         ` yukuai (C)
2021-12-10  8:20 ` [PATCH RFC 0/9] support concurrent sync io for bfq on a specail occasion yukuai (C)
2021-12-10  9:20 ` Paolo Valente
2021-12-10  9:50   ` yukuai (C)
2021-12-10 10:23     ` Paolo Valente

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).