Re: dm: reduce the number of processes per dm device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Thu, 8 Oct 2015, Mike Snitzer wrote:

> On Thu, Oct 08 2015 at  3:59pm -0400,
> Mikulas Patocka <mpatocka@xxxxxxxxxx> wrote:
> 
> > 
> > 
> > On Thu, 8 Oct 2015, Mike Snitzer wrote:
> > 
> > > On Thu, Oct 08 2015 at 12:15pm -0400,
> > > Mikulas Patocka <mpatocka@xxxxxxxxxx> wrote:
> > > 
> > > > The patch 54efd50bfd873e2dbf784e0b21a8027ba4299a3e ("block: make
> > > > generic_make_request handle arbitrarily sized bios") makes it possible for
> > > > block devices to process large bios. The patch allocates a new bio set
> > > > queue->bio_split for each device, this bio set is used for allocating bios
> > > > when the driver needs to split large bios.
> > > > 
> > > > Each bio_set allocates a workqueue process, thus the above patch increases
> > > > the number of processes allocated per block device.
> > > > 
> > > > Device mapper doesn't need the queue->bio_split bio_set, thus we can
> > > > deallocate it. This reduces the number of allocated processes per
> > > > dm-device from 3 to 2.
> > > 
> > > This header needs more context added, specifically we need to tell the
> > > reader the answer to: why doesn't DM need queue->bio_split?
> > 
> > Dm doesn't need queue->bio_split because it has its own bioset md->bs. We 
> > can't use queue->bio_split instead of md->bs because md->bs has non-zero 
> > front pad depending on targets loaded in the table.
> 
> Sure but my point was that bio-based DM targets by definition aren't the
> last device in a stack.
>  
> > > Is this a resource that only the lowest layer's request_queue would 
> > > need? And given DM's stacking nature it doesn't need it simply because 
> > > it'll never be the lowest layer?
> > 
> > All request-based drivers need queue->bio_split, but some non-dm bio-based 
> > drivers need it too.
> 
> Not all request-based drivers right?  request-based DM (aka DM mpath)
> shouldn't _need_ queue->bio_split either right?

It uses queue->bio_split because it is used at the begining of 
blk_queue_bio. All request-based drivers use blk_queue_bio.

Mikulas

--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel



[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux