* [Qemu-devel] [PATCH] block: Don't acquire AioContext in hmp_qemu_io()
@ 2017-12-12 13:48 Kevin Wolf
2017-12-13 10:26 ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-12-13 10:41 ` [Qemu-devel] " Kevin Wolf
0 siblings, 2 replies; 3+ messages in thread
From: Kevin Wolf @ 2017-12-12 13:48 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, qemu-devel
Commit 15afd94a047 added code to acquire and release the AioContext in
qemuio_command(). This means that the lock is taken twice now in the
call path from hmp_qemu_io(). This causes BDRV_POLL_WHILE() to hang for
any requests issued to nodes in a non-mainloop AioContext.
Dropping the first locking from hmp_qemu_io() fixes the problem.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
hmp.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/hmp.c b/hmp.c
index 35a7041824..2d72f94193 100644
--- a/hmp.c
+++ b/hmp.c
@@ -2318,7 +2318,6 @@ void hmp_qemu_io(Monitor *mon, const QDict *qdict)
{
BlockBackend *blk;
BlockBackend *local_blk = NULL;
- AioContext *aio_context;
const char* device = qdict_get_str(qdict, "device");
const char* command = qdict_get_str(qdict, "command");
Error *err = NULL;
@@ -2338,9 +2337,6 @@ void hmp_qemu_io(Monitor *mon, const QDict *qdict)
}
}
- aio_context = blk_get_aio_context(blk);
- aio_context_acquire(aio_context);
-
/*
* Notably absent: Proper permission management. This is sad, but it seems
* almost impossible to achieve without changing the semantics and thereby
@@ -2368,8 +2364,6 @@ void hmp_qemu_io(Monitor *mon, const QDict *qdict)
*/
qemuio_command(blk, command);
- aio_context_release(aio_context);
-
fail:
blk_unref(local_blk);
hmp_handle_error(mon, &err);
--
2.13.6
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [Qemu-block] [PATCH] block: Don't acquire AioContext in hmp_qemu_io()
2017-12-12 13:48 [Qemu-devel] [PATCH] block: Don't acquire AioContext in hmp_qemu_io() Kevin Wolf
@ 2017-12-13 10:26 ` Stefan Hajnoczi
2017-12-13 10:41 ` [Qemu-devel] " Kevin Wolf
1 sibling, 0 replies; 3+ messages in thread
From: Stefan Hajnoczi @ 2017-12-13 10:26 UTC (permalink / raw)
To: Kevin Wolf; +Cc: qemu-block, qemu-devel
[-- Attachment #1: Type: text/plain, Size: 585 bytes --]
On Tue, Dec 12, 2017 at 02:48:00PM +0100, Kevin Wolf wrote:
> Commit 15afd94a047 added code to acquire and release the AioContext in
> qemuio_command(). This means that the lock is taken twice now in the
> call path from hmp_qemu_io(). This causes BDRV_POLL_WHILE() to hang for
> any requests issued to nodes in a non-mainloop AioContext.
>
> Dropping the first locking from hmp_qemu_io() fixes the problem.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
> hmp.c | 6 ------
> 1 file changed, 6 deletions(-)
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 455 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] block: Don't acquire AioContext in hmp_qemu_io()
2017-12-12 13:48 [Qemu-devel] [PATCH] block: Don't acquire AioContext in hmp_qemu_io() Kevin Wolf
2017-12-13 10:26 ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
@ 2017-12-13 10:41 ` Kevin Wolf
1 sibling, 0 replies; 3+ messages in thread
From: Kevin Wolf @ 2017-12-13 10:41 UTC (permalink / raw)
To: qemu-block; +Cc: qemu-devel
Am 12.12.2017 um 14:48 hat Kevin Wolf geschrieben:
> Commit 15afd94a047 added code to acquire and release the AioContext in
> qemuio_command(). This means that the lock is taken twice now in the
> call path from hmp_qemu_io(). This causes BDRV_POLL_WHILE() to hang for
> any requests issued to nodes in a non-mainloop AioContext.
>
> Dropping the first locking from hmp_qemu_io() fixes the problem.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Applied to block-next.
Kevin
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-12-13 10:41 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-12 13:48 [Qemu-devel] [PATCH] block: Don't acquire AioContext in hmp_qemu_io() Kevin Wolf
2017-12-13 10:26 ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2017-12-13 10:41 ` [Qemu-devel] " Kevin Wolf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).