[Top][All Lists]

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

Re: [Qemu-block] [PATCH 10/12] block: Drain throttling queue with BdrvCh

From: Paolo Bonzini
Subject: Re: [Qemu-block] [PATCH 10/12] block: Drain throttling queue with BdrvChild callback
Date: Thu, 24 Mar 2016 10:32:33 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0

On 24/03/2016 09:25, Kevin Wolf wrote:
> I think your cancellation series (allows to) gets rid of most if not all
> blk_drain() callers in the device emulation, so it becomes harder for
> guests to trigger one. Ideally only the monitor should allow triggering
> a drain.

More precesely you still need to call drain, but indeed they won't be
able to game throttling.

> On the other hand, your other series introduces bdrv_drain() calls where
> we have open-coded nested event loops waiting for a single request
> today. I'm pretty sure that these can be triggered by the guest and that
> throttling the drain would be desirable therefore.

The open-coded nested event loops are typically triggered only from
qemu-io, bdrv_create, etc.  They shouldn't be worse than the "disable
throttling for sync I/O" that we used to have.

> Okay. Actually, such a pair of callbacks - not only into the
> BlockBackend, but from there into the guest device - was a thought
> already when we introduced aio_disable_external(). Do you think it would
> make sense to change things in the mid term so that the users of a
> BlockBackend just get drain_begin/end callbacks?

Yes, aio_disable_external and aio_disable_internal can be moved to the
BdrvChildRole callbacks too.


reply via email to

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