Re: blk-mq 5-8 times slower for bmap-tools

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

 



Hi Jens
On Fri, Aug 17, 2018 at 7:41 PM Jens Axboe <axboe@xxxxxxxxx> wrote:
>
> On 8/17/18 11:39 AM, Ricardo Ribalda Delgado wrote:
> > Hello Paolo
> > On Fri, Aug 17, 2018 at 7:35 PM Paolo Valente <paolo.valente@xxxxxxxxxx> wrote:
> >>
> >>
> >>
> >>> Il giorno 17 ago 2018, alle ore 19:31, Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx> ha scritto:
> >>>
> >>> Hello
> >>>
> >>> Coming from: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906328
> >>>
> >>> bmaptools is kind of a "smart dd" tool, that lets you write images
> >>> very fast and securely. Since the last Debian Kernel update it has
> >>> become 5-8 times slower.
> >>>
> >>> After some debugging, we have figured out that the reason for that
> >>> slowness is the Multi-Queue Block IO Queueing Mechanism.
> >>>
> >>> Debian maintainer has pointed out that in the near future the single
> >>> queue will be deprecated.
> >>>
> >>> My question is if we can get a similar perfomance for bmaptools with
> >>> blk-mq and how?
> >>>
> >>
> >> Have you also checked what happens after switching to a different I/O
> >> scheduler for the involved drive (among none, mq-deadline, bfq and
> >> kyber)?
> >
> > I have only tried mq-deadline and none (because they are enabled by
> > default on Debian). Both produce results in the same range: 5-8 times
> > slower.
> >
> > I could easily enable kyber:
> > cat /boot/config-4.17.0-1-amd64  | grep CONFIG_MQ_IOSCHED
> > CONFIG_MQ_IOSCHED_DEADLINE=y
> > CONFIG_MQ_IOSCHED_KYBER=m
> >
> > But I left the card reader on the office, so any test would have to
> > wait until monday sorry :(
>
> Can someone describe what bmaptools does? IOW, how is it different than
> dd? Does it use multiple threads for both reads and writes?

https://github.com/intel/bmap-tools/blob/master/bmaptools/BmapCopy.py

I am not an author, just a user. But from the code it looks like

1) sets the io scheduler to noop
2) Copy the file in chuncks of block_size (4096 by default)
3) fflush
4) restore io scheduler


>
> --
> Jens Axboe
>


-- 
Ricardo Ribalda



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux