From: "Benoît Canet" <benoit.canet@irqsave.net>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: "Kevin Wolf" <kwolf@redhat.com>,
"Benoît Canet" <benoit.canet@irqsave.net>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 3/3] blockdev: acquire AioContext in block_set_io_throttle
Date: Wed, 14 May 2014 17:11:12 +0200 [thread overview]
Message-ID: <20140514151112.GC5955@irqsave.net> (raw)
In-Reply-To: <1400077367-23409-4-git-send-email-stefanha@redhat.com>
The Wednesday 14 May 2014 à 16:22:47 (+0200), Stefan Hajnoczi wrote :G
> The block_set_io_throttle QMP and HMP commands modify I/O throttling
> limits for block devices.
>
> Acquire the BlockDriverState's AioContext to protect against race
> conditions with an IOThread that is running I/O for this device.
>
> Cc: Benoît Canet <benoit.canet@irqsave.net>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> blockdev.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/blockdev.c b/blockdev.c
> index 7810e9f..e0f1978 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -1663,6 +1663,7 @@ void qmp_block_set_io_throttle(const char *device, int64_t bps, int64_t bps_rd,
> {
> ThrottleConfig cfg;
> BlockDriverState *bs;
> + AioContext *aio_context;
>
> bs = bdrv_find(device);
> if (!bs) {
> @@ -1706,6 +1707,9 @@ void qmp_block_set_io_throttle(const char *device, int64_t bps, int64_t bps_rd,
> return;
> }
>
> + aio_context = bdrv_get_aio_context(bs);
> + aio_context_acquire(aio_context);
> +
> if (!bs->io_limits_enabled && throttle_enabled(&cfg)) {
> bdrv_io_limits_enable(bs);
> } else if (bs->io_limits_enabled && !throttle_enabled(&cfg)) {
> @@ -1715,6 +1719,8 @@ void qmp_block_set_io_throttle(const char *device, int64_t bps, int64_t bps_rd,
> if (bs->io_limits_enabled) {
> bdrv_set_io_limits(bs, &cfg);
> }
> +
> + aio_context_release(aio_context);
> }
>
> int do_drive_del(Monitor *mon, const QDict *qdict, QObject **ret_data)
> --
> 1.9.0
>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
next prev parent reply other threads:[~2014-05-14 15:10 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-14 14:22 [Qemu-devel] [PATCH 0/3] throttle: use AioContext for dataplane support Stefan Hajnoczi
2014-05-14 14:22 ` [Qemu-devel] [PATCH 1/3] throttle: add throttle_detach/attach_aio_context() Stefan Hajnoczi
2014-05-14 15:05 ` Benoît Canet
2014-05-15 7:57 ` Stefan Hajnoczi
2014-05-15 11:25 ` Benoît Canet
2014-05-14 14:22 ` [Qemu-devel] [PATCH 2/3] throttle: add detach/attach test case Stefan Hajnoczi
2014-05-14 15:08 ` Benoît Canet
2014-05-14 14:22 ` [Qemu-devel] [PATCH 3/3] blockdev: acquire AioContext in block_set_io_throttle Stefan Hajnoczi
2014-05-14 15:11 ` Benoît Canet [this message]
2014-05-14 15:14 ` [Qemu-devel] [PATCH 0/3] throttle: use AioContext for dataplane support Benoît Canet
2014-05-14 17:40 ` Benoît Canet
2014-05-15 7:46 ` Stefan Hajnoczi
2014-06-03 13:44 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140514151112.GC5955@irqsave.net \
--to=benoit.canet@irqsave.net \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.