Messages in this thread | | | Date | Tue, 23 Feb 2016 10:55:48 +0800 | Subject | Re: 4.4-final: 28 bioset threads on small notebook | From | Ming Lei <> |
| |
On Tue, Feb 23, 2016 at 6:58 AM, Kent Overstreet <kent.overstreet@gmail.com> wrote: > On Sun, Feb 21, 2016 at 05:40:59PM +0800, Ming Lei wrote: >> On Sun, Feb 21, 2016 at 2:43 PM, Ming Lin-SSI <ming.l@ssi.samsung.com> wrote: >> >>-----Original Message----- >> > >> > So it's almost already "per request_queue" >> >> Yes, that is because of the following line: >> >> q->bio_split = bioset_create(BIO_POOL_SIZE, 0); >> >> in blk_alloc_queue_node(). >> >> Looks like this bio_set doesn't need to be per-request_queue, and >> now it is only used for fast-cloning bio for splitting, and one global >> split bio_set should be enough. > > It does have to be per request queue for stacking block devices (which includes > loopback).
In commit df2cb6daa4(block: Avoid deadlocks with bio allocation by stacking drivers), deadlock in this situation has been avoided already. Or are there other issues with global bio_set? I appreciate if you may explain it a bit if there are.
Thanks, Ming Lei
| |