[{"id":1763178,"web_url":"http://patchwork.ozlabs.org/comment/1763178/","msgid":"<7ba1c642-f17d-8f55-ae14-18b8bd55fa9d@redhat.com>","list_archive_url":null,"date":"2017-09-05T10:16:20","subject":"Re: [Qemu-devel] [PATCH v6 15/29] libqos: Use explicit QTestState\n\tfor rtas operations","submitter":{"id":66152,"url":"http://patchwork.ozlabs.org/api/people/66152/","name":"Thomas Huth","email":"thuth@redhat.com"},"content":"On 01.09.2017 20:03, Eric Blake wrote:\n> Drop one more client of global_qtest by teaching all rtas test\n> functionality to pass in an explicit QTestState, adjusting all\n> callers.\n> \n> Signed-off-by: Eric Blake <eblake@redhat.com>\n> ---\n>  tests/libqos/rtas.h      |  9 ++++++---\n>  tests/libqos/pci-spapr.c | 18 ++++++++++++------\n>  tests/libqos/rtas.c      | 21 ++++++++++++---------\n>  tests/rtas-test.c        |  2 +-\n>  4 files changed, 31 insertions(+), 19 deletions(-)\n> \n> diff --git a/tests/libqos/rtas.h b/tests/libqos/rtas.h\n> index 498eb19230..e3d0f850a7 100644\n> --- a/tests/libqos/rtas.h\n> +++ b/tests/libqos/rtas.h\n> @@ -7,9 +7,12 @@\n>  #define LIBQOS_RTAS_H\n>  #include \"libqos/malloc.h\"\n> \n> -int qrtas_get_time_of_day(QGuestAllocator *alloc, struct tm *tm, uint32_t *ns);\n> -uint32_t qrtas_ibm_read_pci_config(QGuestAllocator *alloc, uint64_t buid,\n> +int qrtas_get_time_of_day(QTestState *qts, QGuestAllocator *alloc,\n> +                          struct tm *tm, uint32_t *ns);\n> +uint32_t qrtas_ibm_read_pci_config(QTestState *qts, QGuestAllocator *alloc,\n> +                                   uint64_t buid,\n>                                     uint32_t addr, uint32_t size);\n> -int qrtas_ibm_write_pci_config(QGuestAllocator *alloc, uint64_t buid,\n> +int qrtas_ibm_write_pci_config(QTestState *qts, QGuestAllocator *alloc,\n> +                               uint64_t buid,\n>                                 uint32_t addr, uint32_t size, uint32_t val);\n>  #endif /* LIBQOS_RTAS_H */\n> diff --git a/tests/libqos/pci-spapr.c b/tests/libqos/pci-spapr.c\n> index d7b2aa75e6..b7199501b4 100644\n> --- a/tests/libqos/pci-spapr.c\n> +++ b/tests/libqos/pci-spapr.c\n> @@ -108,21 +108,24 @@ static uint8_t qpci_spapr_config_readb(QPCIBus *bus, int devfn, uint8_t offset)\n>  {\n>      QPCIBusSPAPR *s = container_of(bus, QPCIBusSPAPR, bus);\n>      uint32_t config_addr = (devfn << 8) | offset;\n> -    return qrtas_ibm_read_pci_config(s->alloc, s->buid, config_addr, 1);\n> +    return qrtas_ibm_read_pci_config(bus->qts, s->alloc, s->buid,\n> +                                     config_addr, 1);\n>  }\n> \n>  static uint16_t qpci_spapr_config_readw(QPCIBus *bus, int devfn, uint8_t offset)\n>  {\n>      QPCIBusSPAPR *s = container_of(bus, QPCIBusSPAPR, bus);\n>      uint32_t config_addr = (devfn << 8) | offset;\n> -    return qrtas_ibm_read_pci_config(s->alloc, s->buid, config_addr, 2);\n> +    return qrtas_ibm_read_pci_config(bus->qts, s->alloc, s->buid,\n> +                                     config_addr, 2);\n>  }\n> \n>  static uint32_t qpci_spapr_config_readl(QPCIBus *bus, int devfn, uint8_t offset)\n>  {\n>      QPCIBusSPAPR *s = container_of(bus, QPCIBusSPAPR, bus);\n>      uint32_t config_addr = (devfn << 8) | offset;\n> -    return qrtas_ibm_read_pci_config(s->alloc, s->buid, config_addr, 4);\n> +    return qrtas_ibm_read_pci_config(bus->qts, s->alloc, s->buid,\n> +                                     config_addr, 4);\n>  }\n> \n>  static void qpci_spapr_config_writeb(QPCIBus *bus, int devfn, uint8_t offset,\n> @@ -130,7 +133,8 @@ static void qpci_spapr_config_writeb(QPCIBus *bus, int devfn, uint8_t offset,\n>  {\n>      QPCIBusSPAPR *s = container_of(bus, QPCIBusSPAPR, bus);\n>      uint32_t config_addr = (devfn << 8) | offset;\n> -    qrtas_ibm_write_pci_config(s->alloc, s->buid, config_addr, 1, value);\n> +    qrtas_ibm_write_pci_config(bus->qts, s->alloc, s->buid,\n> +                               config_addr, 1, value);\n>  }\n> \n>  static void qpci_spapr_config_writew(QPCIBus *bus, int devfn, uint8_t offset,\n> @@ -138,7 +142,8 @@ static void qpci_spapr_config_writew(QPCIBus *bus, int devfn, uint8_t offset,\n>  {\n>      QPCIBusSPAPR *s = container_of(bus, QPCIBusSPAPR, bus);\n>      uint32_t config_addr = (devfn << 8) | offset;\n> -    qrtas_ibm_write_pci_config(s->alloc, s->buid, config_addr, 2, value);\n> +    qrtas_ibm_write_pci_config(bus->qts, s->alloc, s->buid,\n> +                               config_addr, 2, value);\n>  }\n> \n>  static void qpci_spapr_config_writel(QPCIBus *bus, int devfn, uint8_t offset,\n> @@ -146,7 +151,8 @@ static void qpci_spapr_config_writel(QPCIBus *bus, int devfn, uint8_t offset,\n>  {\n>      QPCIBusSPAPR *s = container_of(bus, QPCIBusSPAPR, bus);\n>      uint32_t config_addr = (devfn << 8) | offset;\n> -    qrtas_ibm_write_pci_config(s->alloc, s->buid, config_addr, 4, value);\n> +    qrtas_ibm_write_pci_config(bus->qts, s->alloc, s->buid,\n> +                               config_addr, 4, value);\n>  }\n> \n>  #define SPAPR_PCI_BASE               (1ULL << 45)\n> diff --git a/tests/libqos/rtas.c b/tests/libqos/rtas.c\n> index 0269803ce0..fb25f91723 100644\n> --- a/tests/libqos/rtas.c\n> +++ b/tests/libqos/rtas.c\n> @@ -26,7 +26,8 @@ static void qrtas_copy_ret(uint64_t target_ret, uint32_t nret, uint32_t *ret)\n>      }\n>  }\n> \n> -static uint64_t qrtas_call(QGuestAllocator *alloc, const char *name,\n> +static uint64_t qrtas_call(QTestState *qts, QGuestAllocator *alloc,\n> +                           const char *name,\n>                             uint32_t nargs, uint32_t *args,\n>                             uint32_t nret, uint32_t *ret)\n>  {\n> @@ -37,8 +38,7 @@ static uint64_t qrtas_call(QGuestAllocator *alloc, const char *name,\n>      target_ret = guest_alloc(alloc, nret * sizeof(uint32_t));\n> \n>      qrtas_copy_args(target_args, nargs, args);\n> -    res = qtest_rtas_call(global_qtest, name,\n> -                          nargs, target_args, nret, target_ret);\n> +    res = qtest_rtas_call(qts, name, nargs, target_args, nret, target_ret);\n>      qrtas_copy_ret(target_ret, nret, ret);\n> \n>      guest_free(alloc, target_ret);\n> @@ -47,12 +47,13 @@ static uint64_t qrtas_call(QGuestAllocator *alloc, const char *name,\n>      return res;\n>  }\n> \n> -int qrtas_get_time_of_day(QGuestAllocator *alloc, struct tm *tm, uint32_t *ns)\n> +int qrtas_get_time_of_day(QTestState *qts, QGuestAllocator *alloc,\n> +                          struct tm *tm, uint32_t *ns)\n>  {\n>      int res;\n>      uint32_t ret[8];\n> \n> -    res = qrtas_call(alloc, \"get-time-of-day\", 0, NULL, 8, ret);\n> +    res = qrtas_call(qts, alloc, \"get-time-of-day\", 0, NULL, 8, ret);\n>      if (res != 0) {\n>          return res;\n>      }\n> @@ -70,7 +71,8 @@ int qrtas_get_time_of_day(QGuestAllocator *alloc, struct tm *tm, uint32_t *ns)\n>      return res;\n>  }\n> \n> -uint32_t qrtas_ibm_read_pci_config(QGuestAllocator *alloc, uint64_t buid,\n> +uint32_t qrtas_ibm_read_pci_config(QTestState *qts, QGuestAllocator *alloc,\n> +                                   uint64_t buid,\n>                                     uint32_t addr, uint32_t size)\n>  {\n>      int res;\n> @@ -80,7 +82,7 @@ uint32_t qrtas_ibm_read_pci_config(QGuestAllocator *alloc, uint64_t buid,\n>      args[1] = buid >> 32;\n>      args[2] = buid & 0xffffffff;\n>      args[3] = size;\n> -    res = qrtas_call(alloc, \"ibm,read-pci-config\", 4, args, 2, ret);\n> +    res = qrtas_call(qts, alloc, \"ibm,read-pci-config\", 4, args, 2, ret);\n>      if (res != 0) {\n>          return -1;\n>      }\n> @@ -92,7 +94,8 @@ uint32_t qrtas_ibm_read_pci_config(QGuestAllocator *alloc, uint64_t buid,\n>      return ret[1];\n>  }\n> \n> -int qrtas_ibm_write_pci_config(QGuestAllocator *alloc, uint64_t buid,\n> +int qrtas_ibm_write_pci_config(QTestState *qts, QGuestAllocator *alloc,\n> +                               uint64_t buid,\n>                                 uint32_t addr, uint32_t size, uint32_t val)\n>  {\n>      int res;\n> @@ -103,7 +106,7 @@ int qrtas_ibm_write_pci_config(QGuestAllocator *alloc, uint64_t buid,\n>      args[2] = buid & 0xffffffff;\n>      args[3] = size;\n>      args[4] = val;\n> -    res = qrtas_call(alloc, \"ibm,write-pci-config\", 5, args, 1, ret);\n> +    res = qrtas_call(qts, alloc, \"ibm,write-pci-config\", 5, args, 1, ret);\n>      if (res != 0) {\n>          return -1;\n>      }\n> diff --git a/tests/rtas-test.c b/tests/rtas-test.c\n> index 276c87ef84..34a692163f 100644\n> --- a/tests/rtas-test.c\n> +++ b/tests/rtas-test.c\n> @@ -16,7 +16,7 @@ static void test_rtas_get_time_of_day(void)\n>      qs = qtest_spapr_boot(\"-machine pseries\");\n> \n>      t1 = time(NULL);\n> -    ret = qrtas_get_time_of_day(qs->alloc, &tm, &ns);\n> +    ret = qrtas_get_time_of_day(qs->qts, qs->alloc, &tm, &ns);\n>      g_assert_cmpint(ret, ==, 0);\n>      t2 = mktimegm(&tm);\n>      g_assert(t2 - t1 < 5); /* 5 sec max to run the test */\n> \n\nReviewed-by: Thomas Huth <thuth@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-mx09.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx09.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=thuth@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 3xmjLr308hz9s9Y\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 20:17:08 +1000 (AEST)","from localhost ([::1]:57943 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 1dpAuo-0000pM-8i\n\tfor incoming@patchwork.ozlabs.org; Tue, 05 Sep 2017 06:17:06 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:46397)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <thuth@redhat.com>) id 1dpAuE-0000mB-E9\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:16:35 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <thuth@redhat.com>) id 1dpAu9-0005wH-92\n\tfor qemu-devel@nongnu.org; Tue, 05 Sep 2017 06:16:30 -0400","from mx1.redhat.com ([209.132.183.28]:48642)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <thuth@redhat.com>)\n\tid 1dpAu9-0005vm-03; Tue, 05 Sep 2017 06:16:25 -0400","from smtp.corp.redhat.com\n\t(int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])\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 051664E4C8;\n\tTue,  5 Sep 2017 10:16:24 +0000 (UTC)","from [10.36.116.114] (ovpn-116-114.ams2.redhat.com [10.36.116.114])\n\tby smtp.corp.redhat.com (Postfix) with ESMTPS id E3C817B25C;\n\tTue,  5 Sep 2017 10:16:21 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 051664E4C8","To":"Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org","References":"<20170901180340.30009-1-eblake@redhat.com>\n\t<20170901180340.30009-16-eblake@redhat.com>","From":"Thomas Huth <thuth@redhat.com>","Message-ID":"<7ba1c642-f17d-8f55-ae14-18b8bd55fa9d@redhat.com>","Date":"Tue, 5 Sep 2017 12:16:20 +0200","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":"<20170901180340.30009-16-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.12","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.38]);\n\tTue, 05 Sep 2017 10:16:24 +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 v6 15/29] libqos: Use explicit QTestState\n\tfor rtas 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":"Laurent Vivier <lvivier@redhat.com>, pbonzini@redhat.com,\n\tqemu-ppc@nongnu.org, armbru@redhat.com,\n\tDavid 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>"}}]