qmp: add command "x-oob-test"
This command is only used to test OOB functionality. It should not be used for any other purposes. Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20180309090006.10018-22-peterx@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> [eblake: grammar tweak] Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
3fd2457d18
commit
469638f9cb
@ -3427,3 +3427,21 @@
|
||||
##
|
||||
{ 'event': 'COMMAND_DROPPED' ,
|
||||
'data': { 'id': 'any', 'reason': 'CommandDropReason' } }
|
||||
|
||||
##
|
||||
# @x-oob-test:
|
||||
#
|
||||
# Test OOB functionality. When sending this command with lock=true,
|
||||
# it'll try to hang the dispatcher. When sending it with lock=false,
|
||||
# it'll try to notify the locked thread to continue. Note: it should
|
||||
# only be used by QMP test program rather than anything else.
|
||||
#
|
||||
# Since: 2.12
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# { "execute": "x-oob-test",
|
||||
# "arguments": { "lock": true } }
|
||||
##
|
||||
{ 'command': 'x-oob-test', 'data' : { 'lock': 'bool' },
|
||||
'allow-oob': true }
|
||||
|
16
qmp.c
16
qmp.c
@ -770,3 +770,19 @@ MemoryInfo *qmp_query_memory_size_summary(Error **errp)
|
||||
|
||||
return mem_info;
|
||||
}
|
||||
|
||||
static QemuSemaphore x_oob_test_sem;
|
||||
|
||||
static void __attribute__((constructor)) x_oob_test_init(void)
|
||||
{
|
||||
qemu_sem_init(&x_oob_test_sem, 0);
|
||||
}
|
||||
|
||||
void qmp_x_oob_test(bool lock, Error **errp)
|
||||
{
|
||||
if (lock) {
|
||||
qemu_sem_wait(&x_oob_test_sem);
|
||||
} else {
|
||||
qemu_sem_post(&x_oob_test_sem);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user