[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87lh17efap.fsf@notabene.neil.brown.name>
Date: Tue, 12 Jul 2016 12:55:10 +1000
From: NeilBrown <neilb@...e.com>
To: Lars Ellenberg <lars.ellenberg@...bit.com>,
Jens Axboe <axboe@...nel.dk>
Cc: linux-block@...r.kernel.org,
"Martin K. Petersen" <martin.petersen@...cle.com>,
Mike Snitzer <snitzer@...hat.com>,
Peter Zijlstra <peterz@...radead.org>,
Jiri Kosina <jkosina@...e.cz>,
Ming Lei <ming.lei@...onical.com>,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
linux-kernel@...r.kernel.org, linux-raid@...r.kernel.org,
Takashi Iwai <tiwai@...e.de>, linux-bcache@...r.kernel.org,
Zheng Liu <gnehzuil.liu@...il.com>,
Kent Overstreet <kent.overstreet@...il.com>,
Keith Busch <keith.busch@...el.com>, dm-devel@...hat.com,
Shaohua Li <shli@...nel.org>, Ingo Molnar <mingo@...hat.com>,
Alasdair Kergon <agk@...hat.com>,
Roland Kammerer <roland.kammerer@...bit.com>
Subject: Re: [dm-devel] [PATCH v2 1/1] block: fix blk_queue_split() resource exhaustion
On Tue, Jul 12 2016, Lars Ellenberg wrote:
....
>
> Instead, I suggest to distinguish between recursive calls to
> generic_make_request(), and pushing back the remainder part in
> blk_queue_split(), by pointing current->bio_lists to a
> struct recursion_to_iteration_bio_lists {
> struct bio_list recursion;
> struct bio_list queue;
> }
>
> By providing each q->make_request_fn() with an empty "recursion"
> bio_list, then merging any recursively submitted bios to the
> head of the "queue" list, we can make the recursion-to-iteration
> logic in generic_make_request() process deepest level bios first,
> and "sibling" bios of the same level in "natural" order.
>
> Signed-off-by: Lars Ellenberg <lars.ellenberg@...bit.com>
> Signed-off-by: Roland Kammerer <roland.kammerer@...bit.com>
Reviewed-by: NeilBrown <neilb@...e.com>
Thanks again for doing this - I think this is a very significant
improvement and could allow other simplifications.
NeilBrown
Download attachment "signature.asc" of type "application/pgp-signature" (819 bytes)
Powered by blists - more mailing lists