qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v13 19/25] replay: add BH oneshot event for bloc


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH v13 19/25] replay: add BH oneshot event for block layer
Date: Wed, 6 Mar 2019 10:29:51 +0100
User-agent: Mutt/1.11.3 (2019-02-01)

Am 06.03.2019 um 10:18 hat Pavel Dovgalyuk geschrieben:
> > From: Kevin Wolf [mailto:address@hidden
> > Am 06.03.2019 um 09:33 hat Pavel Dovgalyuk geschrieben:
> > > > From: Kevin Wolf [mailto:address@hidden
> > > > Am 05.03.2019 um 12:04 hat Pavel Dovgalyuk geschrieben:
> > > > > > > > > @@ -1349,8 +1351,8 @@ static BlockAIOCB 
> > > > > > > > > *blk_aio_prwv(BlockBackend *blk, int64_t
> > > > offset,
> > > > > > int
> > > > > > > > bytes,
> > > > > > > > >
> > > > > > > > >      acb->has_returned = true;
> > > > > > > > >      if (acb->rwco.ret != NOT_DONE) {
> > > > > > > > > -        aio_bh_schedule_oneshot(blk_get_aio_context(blk),
> > > > > > > > > -                                blk_aio_complete_bh, acb);
> > > > > > > > > +        
> > > > > > > > > replay_bh_schedule_oneshot_event(blk_get_aio_context(blk),
> > > > > > > > > +                                         
> > > > > > > > > blk_aio_complete_bh, acb);
> > > > > > > > >      }
> > > > > > > >
> > > > > > > > This, and a few other places that you convert, are in fast 
> > > > > > > > paths and add
> > > > > > > > some calls that are unnecessary for non-replay cases.
> > > > > > >
> > > > > > > I don't think that this can make a noticeable slowdown, but we 
> > > > > > > can run
> > > > > > > the tests if you want.
> > > > > > > We have the test suite which performs disk-intensive computation.
> > > > > > > It was created to measure the effect of running BH callbacks 
> > > > > > > through
> > > > > > > the virtual timer infrastructure.
> > > > > >
> > > > > > I think this requires quite fast storage to possibly make a 
> > > > > > difference.
> > > > >
> > > > > True.
> > > > >
> > > > > > Or if you don't have that, maybe a ramdisk or even a null-co:// 
> > > > > > backend
> > > > > > could do the trick. Maybe null-co:// is actually the best option.
> > > > >
> > > > > We've got tests with file copying and compression on qcow2 disks.
> > > > > How the null backend can be applied there?
> > > >
> > > > With qcow2, it can't really. null-co:// would work for running something
> > > > like fio directly against a virtual disk, without any image format
> > > > involved. Getting the image format out of the way makes things even a
> > > > little bit faster.
> > > >
> > > > Maybe we should run a micro-benchmark fio with null-co just in addition
> > > > to your higher level tests?
> > >
> > > We run something like that:
> > >   -drive file={},if=none,id=drv,snapshot -device ide-hd,drive=drv -drive
> > > file={},if=none,id=tst,snapshot -device ide-hd,drive=tst -net none 
> > > -monitor stdio --enable-
> > kvm -m 2G
> > >
> > > I don't really get your idea. What should be added to the command line
> > > to run null-co benchmark?
> > 
> > Something like:
> > 
> > -drive file=null-co://,if=none,id=null -device virtio-blk,drive=null
> 
> And this drive should be destination of the copy operations, right?

I don't know your exact benchmark, but this drive should be where the
high I/O rates are, yes.

For getting meaningful numbers, you should have I/O only on the fast
test disk (you're talking about a copy, where is source?), you should
use direct I/O to get the page cache of the guest out of the way, and
you should make sure that multiple requests are issued in parallel.

> > (Testing with IDE is useless, IDE is slow, you'll never get very high
> > IOPS or bandwidth with it, neither before nor after your series.)
> 
> SCSI or something else?

I think virtio-blk is still the fastest we have.

Kevin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]