[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5384B26D.1000703@kernel.dk>
Date: Tue, 27 May 2014 09:42:37 -0600
From: Jens Axboe <axboe@...nel.dk>
To: Mikulas Patocka <mpatocka@...hat.com>
CC: Kent Overstreet <kmo@...erainc.com>, linux-kernel@...r.kernel.org,
dm-devel@...hat.com, "Alasdair G. Kergon" <agk@...hat.com>,
Mike Snitzer <msnitzer@...hat.com>
Subject: Re: [PATCH] block: flush queued bios when the process blocks
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists