[{"id":1766569,"web_url":"http://patchwork.ozlabs.org/comment/1766569/","msgid":"<20170911233008.0c807473@bahia.lan>","list_archive_url":null,"date":"2017-09-11T21:30:08","subject":"Re: [Qemu-devel] [PATCH v7 17/38] libqos: Use explicit QTestState\n\tfor remaining libqos operations","submitter":{"id":69178,"url":"http://patchwork.ozlabs.org/api/people/69178/","name":"Greg Kurz","email":"groug@kaod.org"},"content":"On Mon, 11 Sep 2017 12:20:01 -0500\nEric Blake <eblake@redhat.com> wrote:\n\n> Drop one more client of global_qtest by teaching all remaining\n> libqos stragglers to pass in an explicit QTestState.  Change the\n> setting of global_qtest from being implicit in libqos' call to\n> qtest_start() to instead be explicit in all clients that are\n> still relying on global_qtest.\n> \n> Note that qmp_execute() can be greatly simplified in the process,\n> and that we also get rid of interpolation of a JSON string into a\n> temporary variable when qtest_qmp() can do it more reliably.\n> \n> Signed-off-by: Eric Blake <eblake@redhat.com>\n> \n> ---\n> v7: split libqos changes from test-ahci, catch more spots\n> ---\n\nFor tests/virtio-9p-test.c.\n\nAcked-by: Greg Kurz <groug@kaod.org>\n\n>  tests/ahci-test.c         |  1 +\n>  tests/ivshmem-test.c      |  1 +\n>  tests/libqos/libqos-pc.c  |  2 +-\n>  tests/libqos/libqos.c     | 30 ++++++++++--------------------\n>  tests/megasas-test.c      |  5 ++++-\n>  tests/rtas-test.c         |  1 +\n>  tests/usb-hcd-uhci-test.c |  1 +\n>  C    |  1 +\n>  tests/virtio-blk-test.c   |  1 +\n>  tests/virtio-net-test.c   | 15 +++++++++------\n>  tests/virtio-scsi-test.c  | 16 +++++++++-------\n>  11 files changed, 39 insertions(+), 35 deletions(-)\n> \n> diff --git a/tests/ahci-test.c b/tests/ahci-test.c\n> index c94d1bd712..d6696cc370 100644\n> --- a/tests/ahci-test.c\n> +++ b/tests/ahci-test.c\n> @@ -157,6 +157,7 @@ static AHCIQState *ahci_vboot(const char *cli, va_list ap)\n> \n>      s = g_malloc0(sizeof(AHCIQState));\n>      s->parent = qtest_pc_vboot(cli, ap);\n> +    global_qtest = s->parent->qts;\n>      alloc_set_flags(s->parent->alloc, ALLOC_LEAK_ASSERT);\n> \n>      /* Verify that we have an AHCI device present. */\n> diff --git a/tests/ivshmem-test.c b/tests/ivshmem-test.c\n> index d35c922254..d8f8530a4d 100644\n> --- a/tests/ivshmem-test.c\n> +++ b/tests/ivshmem-test.c\n> @@ -131,6 +131,7 @@ static void setup_vm_cmd(IVState *s, const char *cmd, bool msix)\n>          g_printerr(\"ivshmem-test tests are only available on x86 or ppc64\\n\");\n>          exit(EXIT_FAILURE);\n>      }\n> +    global_qtest = s->qs->qts;\n>      s->dev = get_device(s->qs->pcibus);\n> \n>      s->reg_bar = qpci_iomap(s->dev, 0, &barsize);\n> diff --git a/tests/libqos/libqos-pc.c b/tests/libqos/libqos-pc.c\n> index b554758802..a9c1aceaa7 100644\n> --- a/tests/libqos/libqos-pc.c\n> +++ b/tests/libqos/libqos-pc.c\n> @@ -25,7 +25,7 @@ QOSState *qtest_pc_boot(const char *cmdline_fmt, ...)\n>      qs = qtest_vboot(&qos_ops, cmdline_fmt, ap);\n>      va_end(ap);\n> \n> -    qtest_irq_intercept_in(global_qtest, \"ioapic\");\n> +    qtest_irq_intercept_in(qs->qts, \"ioapic\");\n> \n>      return qs;\n>  }\n> diff --git a/tests/libqos/libqos.c b/tests/libqos/libqos.c\n> index 40018b9c07..9798e1d027 100644\n> --- a/tests/libqos/libqos.c\n> +++ b/tests/libqos/libqos.c\n> @@ -20,7 +20,7 @@ QOSState *qtest_vboot(QOSOps *ops, const char *cmdline_fmt, va_list ap)\n>      QOSState *qs = g_new0(QOSState, 1);\n> \n>      cmdline = g_strdup_vprintf(cmdline_fmt, ap);\n> -    qs->qts = qtest_start(cmdline);\n> +    qs->qts = qtest_init(cmdline);\n>      qs->ops = ops;\n>      if (ops) {\n>          qs->alloc = ops->init_allocator(qs->qts, ALLOC_NO_FLAGS);\n> @@ -80,29 +80,21 @@ void set_context(QOSState *s)\n>      global_qtest = s->qts;\n>  }\n> \n> -static QDict *qmp_execute(const char *command)\n> +static QDict *qmp_execute(QTestState *qts, const char *command)\n>  {\n> -    char *fmt;\n> -    QDict *rsp;\n> -\n> -    fmt = g_strdup_printf(\"{ 'execute': '%s' }\", command);\n> -    rsp = qmp(fmt);\n> -    g_free(fmt);\n> -\n> -    return rsp;\n> +    return qtest_qmp(qts, \"{ 'execute': %s }\", command);\n>  }\n> \n>  void migrate(QOSState *from, QOSState *to, const char *uri)\n>  {\n>      const char *st;\n> -    char *s;\n>      QDict *rsp, *sub;\n>      bool running;\n> \n>      set_context(from);\n> \n>      /* Is the machine currently running? */\n> -    rsp = qmp_execute(\"query-status\");\n> +    rsp = qmp_execute(from->qts, \"query-status\");\n>      g_assert(qdict_haskey(rsp, \"return\"));\n>      sub = qdict_get_qdict(rsp, \"return\");\n>      g_assert(qdict_haskey(sub, \"running\"));\n> @@ -110,30 +102,28 @@ void migrate(QOSState *from, QOSState *to, const char *uri)\n>      QDECREF(rsp);\n> \n>      /* Issue the migrate command. */\n> -    s = g_strdup_printf(\"{ 'execute': 'migrate',\"\n> -                        \"'arguments': { 'uri': '%s' } }\",\n> -                        uri);\n> -    rsp = qmp(s);\n> -    g_free(s);\n> +    rsp = qtest_qmp(from->qts,\n> +                    \"{ 'execute': 'migrate', 'arguments': { 'uri': %s }}\",\n> +                    uri);\n>      g_assert(qdict_haskey(rsp, \"return\"));\n>      QDECREF(rsp);\n> \n>      /* Wait for STOP event, but only if we were running: */\n>      if (running) {\n> -        qmp_eventwait(\"STOP\");\n> +        qtest_qmp_eventwait(from->qts, \"STOP\");\n>      }\n> \n>      /* If we were running, we can wait for an event. */\n>      if (running) {\n>          migrate_allocator(from->alloc, to->alloc);\n>          set_context(to);\n> -        qmp_eventwait(\"RESUME\");\n> +        qtest_qmp_eventwait(to->qts, \"RESUME\");\n>          return;\n>      }\n> \n>      /* Otherwise, we need to wait: poll until migration is completed. */\n>      while (1) {\n> -        rsp = qmp_execute(\"query-migrate\");\n> +        rsp = qmp_execute(from->qts, \"query-migrate\");\n>          g_assert(qdict_haskey(rsp, \"return\"));\n>          sub = qdict_get_qdict(rsp, \"return\");\n>          g_assert(qdict_haskey(sub, \"status\"));\n> diff --git a/tests/megasas-test.c b/tests/megasas-test.c\n> index ce960e7f81..81837e14af 100644\n> --- a/tests/megasas-test.c\n> +++ b/tests/megasas-test.c\n> @@ -15,13 +15,16 @@\n> \n>  static QOSState *qmegasas_start(const char *extra_opts)\n>  {\n> +    QOSState *qs;\n>      const char *arch = qtest_get_arch();\n>      const char *cmd = \"-drive id=hd0,if=none,file=null-co://,format=raw \"\n>                        \"-device megasas,id=scsi0,addr=04.0 \"\n>                        \"-device scsi-hd,bus=scsi0.0,drive=hd0 %s\";\n> \n>      if (strcmp(arch, \"i386\") == 0 || strcmp(arch, \"x86_64\") == 0) {\n> -        return qtest_pc_boot(cmd, extra_opts ? : \"\");\n> +        qs = qtest_pc_boot(cmd, extra_opts ? : \"\");\n> +        global_qtest = qs->qts;\n> +        return qs;\n>      }\n> \n>      g_printerr(\"virtio-scsi tests are only available on x86 or ppc64\\n\");\n> diff --git a/tests/rtas-test.c b/tests/rtas-test.c\n> index 34a692163f..009bda6d23 100644\n> --- a/tests/rtas-test.c\n> +++ b/tests/rtas-test.c\n> @@ -14,6 +14,7 @@ static void test_rtas_get_time_of_day(void)\n>      time_t t1, t2;\n> \n>      qs = qtest_spapr_boot(\"-machine pseries\");\n> +    global_qtest = qs->qts;\n> \n>      t1 = time(NULL);\n>      ret = qrtas_get_time_of_day(qs->qts, qs->alloc, &tm, &ns);\n> diff --git a/tests/usb-hcd-uhci-test.c b/tests/usb-hcd-uhci-test.c\n> index 0fb7f8d223..290416d845 100644\n> --- a/tests/usb-hcd-uhci-test.c\n> +++ b/tests/usb-hcd-uhci-test.c\n> @@ -95,6 +95,7 @@ int main(int argc, char **argv)\n>                     \"available on x86 or ppc64\\n\");\n>          exit(EXIT_FAILURE);\n>      }\n> +    global_qtest = qs->qts;\n>      ret = g_test_run();\n>      qtest_shutdown(qs);\n> \n> diff --git a/tests/virtio-9p-test.c b/tests/virtio-9p-test.c\n> index ad33d96387..07cbb7f37c 100644\n> --- a/tests/virtio-9p-test.c\n> +++ b/tests/virtio-9p-test.c\n> @@ -46,6 +46,7 @@ static QVirtIO9P *qvirtio_9p_start(const char *driver)\n>          g_printerr(\"virtio-9p tests are only available on x86 or ppc64\\n\");\n>          exit(EXIT_FAILURE);\n>      }\n> +    global_qtest = v9p->qs->qts;\n> \n>      return v9p;\n>  }\n> diff --git a/tests/virtio-blk-test.c b/tests/virtio-blk-test.c\n> index 99bb6f26cd..0cf33b6810 100644\n> --- a/tests/virtio-blk-test.c\n> +++ b/tests/virtio-blk-test.c\n> @@ -77,6 +77,7 @@ static QOSState *pci_test_start(void)\n>          g_printerr(\"virtio-blk tests are only available on x86 or ppc64\\n\");\n>          exit(EXIT_FAILURE);\n>      }\n> +    global_qtest = qs->qts;\n>      unlink(tmp_path);\n>      g_free(tmp_path);\n>      return qs;\n> diff --git a/tests/virtio-net-test.c b/tests/virtio-net-test.c\n> index 8b43d3dd65..acecef0a3e 100644\n> --- a/tests/virtio-net-test.c\n> +++ b/tests/virtio-net-test.c\n> @@ -53,18 +53,21 @@ static QVirtioPCIDevice *virtio_net_pci_init(QPCIBus *bus, int slot)\n> \n>  static QOSState *pci_test_start(int socket)\n>  {\n> +    QOSState *qs;\n>      const char *arch = qtest_get_arch();\n>      const char *cmd = \"-netdev socket,fd=%d,id=hs0 -device \"\n>                        \"virtio-net-pci,netdev=hs0\";\n> \n>      if (strcmp(arch, \"i386\") == 0 || strcmp(arch, \"x86_64\") == 0) {\n> -        return qtest_pc_boot(cmd, socket);\n> +        qs = qtest_pc_boot(cmd, socket);\n> +    } else if (strcmp(arch, \"ppc64\") == 0) {\n> +        qs = qtest_spapr_boot(cmd, socket);\n> +    } else {\n> +        g_printerr(\"virtio-net tests are only available on x86 or ppc64\\n\");\n> +        exit(EXIT_FAILURE);\n>      }\n> -    if (strcmp(arch, \"ppc64\") == 0) {\n> -        return qtest_spapr_boot(cmd, socket);\n> -    }\n> -    g_printerr(\"virtio-net tests are only available on x86 or ppc64\\n\");\n> -    exit(EXIT_FAILURE);\n> +    global_qtest = qs->qts;\n> +    return qs;\n>  }\n> \n>  static void driver_init(QVirtioDevice *dev)\n> diff --git a/tests/virtio-scsi-test.c b/tests/virtio-scsi-test.c\n> index 87a3b6e81a..4d544ddbc3 100644\n> --- a/tests/virtio-scsi-test.c\n> +++ b/tests/virtio-scsi-test.c\n> @@ -34,20 +34,22 @@ typedef struct {\n> \n>  static QOSState *qvirtio_scsi_start(const char *extra_opts)\n>  {\n> +    QOSState *qs;\n>      const char *arch = qtest_get_arch();\n>      const char *cmd = \"-drive id=drv0,if=none,file=null-co://,format=raw \"\n>                        \"-device virtio-scsi-pci,id=vs0 \"\n>                        \"-device scsi-hd,bus=vs0.0,drive=drv0 %s\";\n> \n>      if (strcmp(arch, \"i386\") == 0 || strcmp(arch, \"x86_64\") == 0) {\n> -        return qtest_pc_boot(cmd, extra_opts ? : \"\");\n> +        qs = qtest_pc_boot(cmd, extra_opts ? : \"\");\n> +    } else if (strcmp(arch, \"ppc64\") == 0) {\n> +        qs = qtest_spapr_boot(cmd, extra_opts ? : \"\");\n> +    } else {\n> +        g_printerr(\"virtio-scsi tests are only available on x86 or ppc64\\n\");\n> +        exit(EXIT_FAILURE);\n>      }\n> -    if (strcmp(arch, \"ppc64\") == 0) {\n> -        return qtest_spapr_boot(cmd, extra_opts ? : \"\");\n> -    }\n> -\n> -    g_printerr(\"virtio-scsi tests are only available on x86 or ppc64\\n\");\n> -    exit(EXIT_FAILURE);\n> +    global_qtest = qs->qts;\n> +    return qs;\n>  }\n> \n>  static void qvirtio_scsi_stop(QOSState *qs)","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xrh1k3HS6z9sBZ\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 12 Sep 2017 07:31:06 +1000 (AEST)","from localhost ([::1]:60695 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1drWIK-0008FQ-H6\n\tfor incoming@patchwork.ozlabs.org; Mon, 11 Sep 2017 17:31:04 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:43881)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <groug@kaod.org>) id 1drWHn-0008Eb-2V\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 17:30:32 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <groug@kaod.org>) id 1drWHj-0004Tr-Pi\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 17:30:31 -0400","from 8.mo1.mail-out.ovh.net ([178.33.110.239]:54404)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <groug@kaod.org>) id 1drWHj-0004SX-ES\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 17:30:27 -0400","from player169.ha.ovh.net (b9.ovh.net [213.186.33.59])\n\tby mo1.mail-out.ovh.net (Postfix) with ESMTP id CC26C931EF\n\tfor <qemu-devel@nongnu.org>; Mon, 11 Sep 2017 23:30:25 +0200 (CEST)","from bahia.lan (gar31-1-82-66-74-139.fbx.proxad.net [82.66.74.139])\n\t(Authenticated sender: groug@kaod.org)\n\tby player169.ha.ovh.net (Postfix) with ESMTPSA id 90B8958007C;\n\tMon, 11 Sep 2017 23:30:09 +0200 (CEST)"],"Date":"Mon, 11 Sep 2017 23:30:08 +0200","From":"Greg Kurz <groug@kaod.org>","To":"Eric Blake <eblake@redhat.com>","Message-ID":"<20170911233008.0c807473@bahia.lan>","In-Reply-To":"<20170911172022.4738-18-eblake@redhat.com>","References":"<20170911172022.4738-1-eblake@redhat.com>\n\t<20170911172022.4738-18-eblake@redhat.com>","X-Mailer":"Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-redhat-linux-gnu)","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha1;\n\tboundary=\"Sig_/B5UOpXGiqka2+OCpe4Hb4nr\";\n\tprotocol=\"application/pgp-signature\"","X-Ovh-Tracer-Id":"31806676161894793","X-VR-SPAMSTATE":"OK","X-VR-SPAMSCORE":"-100","X-VR-SPAMCAUSE":"gggruggvucftvghtrhhoucdtuddrfeelledrgedtgdduieekucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddm","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"178.33.110.239","Subject":"Re: [Qemu-devel] [PATCH v7 17/38] libqos: Use explicit QTestState\n\tfor remaining libqos operations","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Alexander Graf <agraf@suse.de>, thuth@redhat.com,\n\t\"open list:IDE\" <qemu-block@nongnu.org>,\n\t\"Aneesh Kumar K.V\" <aneesh.kumar@linux.vnet.ibm.com>,\n\tJason Wang <jasowang@redhat.com>, qemu-devel@nongnu.org,\n\tarmbru@redhat.com, \"open list:sPAPR\" <qemu-ppc@nongnu.org>,\n\tGerd Hoffmann <kraxel@redhat.com>,\n\tStefan Hajnoczi <stefanha@redhat.com>, pbonzini@redhat.com,\n\tJohn Snow <jsnow@redhat.com>, David Gibson <david@gibson.dropbear.id.au>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1766629,"web_url":"http://patchwork.ozlabs.org/comment/1766629/","msgid":"<487f96ab-d6d9-efd0-436f-cb67e7dfbe77@redhat.com>","list_archive_url":null,"date":"2017-09-12T00:01:38","subject":"Re: [Qemu-devel] [PATCH v7 17/38] libqos: Use explicit QTestState\n\tfor remaining libqos operations","submitter":{"id":64343,"url":"http://patchwork.ozlabs.org/api/people/64343/","name":"John Snow","email":"jsnow@redhat.com"},"content":"On 09/11/2017 01:20 PM, Eric Blake wrote:\n> Drop one more client of global_qtest by teaching all remaining\n> libqos stragglers to pass in an explicit QTestState.  Change the\n> setting of global_qtest from being implicit in libqos' call to\n> qtest_start() to instead be explicit in all clients that are\n> still relying on global_qtest.\n> \n> Note that qmp_execute() can be greatly simplified in the process,\n> and that we also get rid of interpolation of a JSON string into a\n> temporary variable when qtest_qmp() can do it more reliably.\n> \n> Signed-off-by: Eric Blake <eblake@redhat.com>\n> \n\nReviewed-by: John Snow <jsnow@redhat.com>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx04.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx04.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=jsnow@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xrlNF24d2z9sBZ\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 12 Sep 2017 10:02:21 +1000 (AEST)","from localhost ([::1]:32877 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1drYeh-0000uH-FJ\n\tfor incoming@patchwork.ozlabs.org; Mon, 11 Sep 2017 20:02:19 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:58081)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <jsnow@redhat.com>) id 1drYeF-0000sp-5v\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 20:01:51 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <jsnow@redhat.com>) id 1drYeE-0004xD-CP\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 20:01:51 -0400","from mx1.redhat.com ([209.132.183.28]:26171)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <jsnow@redhat.com>)\n\tid 1drYeA-0004t1-6s; Mon, 11 Sep 2017 20:01:46 -0400","from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id D6E6885541;\n\tTue, 12 Sep 2017 00:01:44 +0000 (UTC)","from [10.18.17.231] (dhcp-17-231.bos.redhat.com [10.18.17.231])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 55862600C8;\n\tTue, 12 Sep 2017 00:01:39 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com D6E6885541","To":"Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org","References":"<20170911172022.4738-1-eblake@redhat.com>\n\t<20170911172022.4738-18-eblake@redhat.com>","From":"John Snow <jsnow@redhat.com>","Message-ID":"<487f96ab-d6d9-efd0-436f-cb67e7dfbe77@redhat.com>","Date":"Mon, 11 Sep 2017 20:01:38 -0400","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<20170911172022.4738-18-eblake@redhat.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.11","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.28]);\n\tTue, 12 Sep 2017 00:01:45 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH v7 17/38] libqos: Use explicit QTestState\n\tfor remaining libqos operations","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"thuth@redhat.com, \"open list:IDE\" <qemu-block@nongnu.org>,\n\tJason Wang <jasowang@redhat.com>, Alexander Graf <agraf@suse.de>,\n\tarmbru@redhat.com, Greg Kurz <groug@kaod.org>,\n\t\"open list:sPAPR\" <qemu-ppc@nongnu.org>,\n\t\"Aneesh Kumar K.V\" <aneesh.kumar@linux.vnet.ibm.com>,\n\tStefan Hajnoczi <stefanha@redhat.com>, pbonzini@redhat.com,\n\tDavid Gibson <david@gibson.dropbear.id.au>,\n\tGerd Hoffmann <kraxel@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}}]