qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: qemu-devel@nongnu.org, Stefan Hajnoczi <shajnocz@redhat.com>,
	"Daniel P . Berrange" <berrange@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Fam Zheng <famz@redhat.com>,
	Jiri Denemark <jdenemar@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	mdroth@linux.vnet.ibm.com, Eric Blake <eblake@redhat.com>,
	Laurent Vivier <lvivier@redhat.com>,
	marcandre.lureau@redhat.com,
	Markus Armbruster <armbru@redhat.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>
Subject: Re: [Qemu-devel] [RFC v3 27/27] tests: qmp-test: add oob test
Date: Thu, 16 Nov 2017 16:02:56 +0800	[thread overview]
Message-ID: <20171116080256.GA24928@xz-mi> (raw)
In-Reply-To: <20171115102116.GD8130@stefanha-x1.localdomain>

On Wed, Nov 15, 2017 at 10:21:16AM +0000, Stefan Hajnoczi wrote:
> On Mon, Nov 06, 2017 at 05:46:43PM +0800, Peter Xu wrote:
> > +    /*
> > +     * Try a time-consuming command, following by a OOB command, make
> > +     * sure we get OOB command before the time-consuming one (which is
> > +     * run in the parser).
> > +     *
> > +     * When writting up this test script, the only command that
> > +     * support OOB is migrate-incoming.  It's not the best command to
> > +     * test OOB but we don't really have a choice here.  We will check
> > +     * arriving order but not command errors, which does not really
> > +     * matter to us.
> > +     */
> > +    qmp_async("{ 'execute': 'dump-guest-memory',"
> > +              "  'arguments': { 'paging': true, "
> > +              "                 'protocol': 'file:/dev/null' }, "
> > +              "  'id': 'time-consuming-cmd'}");
> > +    qmp_async("{ 'execute': 'migrate-incoming', "
> > +              "  'control': { 'run-oob': true }, "
> > +              "  'id': 'oob-cmd' }");
> > +
> > +    /* Ignore all events.  Wait for 2 acks */
> > +    while (acks < 2) {
> > +        resp = qmp_receive();
> > +        if (qdict_haskey(resp, "event")) {
> > +            /* Skip possible events */
> > +            continue;
> > +        }
> > +        cmd_id = qdict_get_str(resp, "id");
> > +        if (acks == 0) {
> > +            /* Need to receive OOB response first */
> > +            g_assert_cmpstr(cmd_id, ==, "oob-cmd");
> > +        } else if (acks == 1) {
> > +            g_assert_cmpstr(cmd_id, ==, "time-consuming-cmd");
> > +        }
> > +        acks++;
> > +    }
> 
> This test is non-deterministic.  The dump-guest-memory command could
> complete first on a fast machine.
> 
> On a slow machine this test might take a long time...
> 
> Please introduce a test command that is deterministic.  For example,
> when 'x-oob-test' is invoked without 'run-oob': true it waits until
> invoked again, this time with 'run-oob': true.

Yes this sounds good.

> 
> We have similar interfaces in the block layer for controlling the order
> in which parallel I/O requests are processed.  This allows test cases to
> deterministically take specific code paths.

It's great to know that I can create a command to test it.  That
should be much easier.  Thanks,

-- 
Peter Xu

  reply	other threads:[~2017-11-16  8:04 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-06  9:46 [Qemu-devel] [RFC v3 00/27] QMP: out-of-band (OOB) execution support Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 01/27] char-io: fix possible race on IOWatchPoll Peter Xu
2017-11-07  6:43   ` Fam Zheng
2017-11-13 16:52   ` Stefan Hajnoczi
2017-11-14  6:09     ` Peter Xu
2017-11-14 10:32       ` Stefan Hajnoczi
2017-11-14 11:31         ` Peter Xu
2017-11-15  9:37           ` Stefan Hajnoczi
2017-11-15  9:48             ` Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 02/27] qobject: introduce qstring_get_try_str() Peter Xu
2017-11-07  6:47   ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 03/27] qobject: introduce qobject_get_try_str() Peter Xu
2017-11-07  6:48   ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 04/27] qobject: let object_property_get_str() use new API Peter Xu
2017-11-07  6:50   ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 05/27] monitor: move skip_flush into monitor_data_init Peter Xu
2017-11-07  6:51   ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 06/27] qjson: add "opaque" field to JSONMessageParser Peter Xu
2017-11-07  6:54   ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 07/27] monitor: move the cur_mon hack deeper for QMP Peter Xu
2017-11-07  6:58   ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 08/27] monitor: unify global init Peter Xu
2017-11-07  7:03   ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 09/27] monitor: let mon_list be tail queue Peter Xu
2017-11-07  7:05   ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 10/27] monitor: create monitor dedicate iothread Peter Xu
2017-11-07  7:11   ` Fam Zheng
2017-11-08  7:25     ` Peter Xu
2017-11-08 11:18       ` Fam Zheng
2017-11-08 11:35         ` Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 11/27] monitor: allow to use IO thread for parsing Peter Xu
2017-11-07  7:17   ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 12/27] qmp: introduce QMPCapability Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 13/27] qmp: negociate QMP capabilities Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 14/27] qmp: introduce some capability helpers Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 15/27] monitor: introduce monitor_qmp_respond() Peter Xu
2017-11-07  7:24   ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 16/27] monitor: let monitor_{suspend|resume} thread safe Peter Xu
2017-11-07  7:26   ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 17/27] monitor: separate QMP parser and dispatcher Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 18/27] qmp: add new event "request-dropped" Peter Xu
2017-11-15 10:50   ` Stefan Hajnoczi
2017-11-16  5:56     ` Peter Xu
2017-11-16  6:29       ` Peter Xu
2017-11-16  6:49         ` Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 19/27] monitor: send event when request queue full Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 20/27] qapi: introduce new cmd option "allow-oob" Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 21/27] qmp: support out-of-band (oob) execution Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 22/27] qmp: let migrate-incoming allow out-of-band Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 23/27] qmp: isolate responses into io thread Peter Xu
2017-11-07  7:57   ` Fam Zheng
2017-11-08  7:31     ` Peter Xu
2017-11-08 11:16       ` Fam Zheng
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 24/27] monitor: enable IO thread for (qmp & !mux) typed Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 25/27] docs: update QMP documents for OOB commands Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 26/27] tests: qmp-test: verify command batching Peter Xu
2017-11-06  9:46 ` [Qemu-devel] [RFC v3 27/27] tests: qmp-test: add oob test Peter Xu
2017-11-15 10:21   ` Stefan Hajnoczi
2017-11-16  8:02     ` Peter Xu [this message]
2017-11-06 10:12 ` [Qemu-devel] [RFC v3 00/27] QMP: out-of-band (OOB) execution support no-reply
2017-11-06 13:08   ` Peter Xu
2017-11-15  9:42     ` Stefan Hajnoczi
2017-11-16  5:32       ` Peter Xu
2017-11-16  5:39         ` Fam Zheng
2017-11-16  6:36           ` Peter Xu

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=20171116080256.GA24928@xz-mi \
    --to=peterx@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=famz@redhat.com \
    --cc=jdenemar@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=shajnocz@redhat.com \
    --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 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).