On 2014-05-27 09:23, Mikulas Patocka wrote:
On Tue, 27 May 2014, Jens Axboe wrote:
On 2014-05-27 09:03, Mikulas Patocka wrote:
The block layer uses per-process bio list to avoid recursion in
generic_make_request. When generic_make_request is called recursively, the
bio is added to current->bio_list and the function returns immediatelly.
The top-level instance of generic_make_requests takes bios from
current->bio_list and processes them.
This really begs the question of why we just don't use the per-process plugs
for this. We already have scheduler hooks in place to flush those at the
appropriate time. Why are we reinventing something for essentially the same
thing?
--
Jens Axboe
Plugs work with requests, this patch works with bios. They are different
structures, so you can't use one infrastructure to process them.
Yes... I realize the list and plugs are for requests. But there's
nothing preventing a non-rq hook, we have uses like that too. And it
could easily be extended to handle bio lists, too.
The patch adds bio list flushing to the scheduler just besides plug
flushsing.
... which is exactly why I'm commenting. It'd be great to avoid yet one
more scheduler hook for this sort of thing.
--
Jens Axboe
--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel