From patchwork Wed Jan 3 17:33:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 759615 Delivered-To: patch@linaro.org Received: by 2002:a5d:67c6:0:b0:336:6142:bf13 with SMTP id n6csp6610518wrw; Wed, 3 Jan 2024 09:35:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IGplTW4K3Gc/6L6ZFBGAv9btKDJB8QVmAmIIE+jhurP05MJ01643YByMaQ5n+1mbL7KWdKj X-Received: by 2002:ad4:52e1:0:b0:680:f58:9ed0 with SMTP id p1-20020ad452e1000000b006800f589ed0mr10674671qvu.93.1704303357678; Wed, 03 Jan 2024 09:35:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704303357; cv=none; d=google.com; s=arc-20160816; b=LMjfa56C1pKj3YhcmOQhRZfYFotL1AEtFlBWO6TsaIPhvPBlDUR723OfOtliPAlaWK wNCnPd/a6RNkkc371BS38Z6Uajm9llhpobpLzy9Iog4igZD/m6IKxiLatVKqW1CCYjQI U66m/ckqwBLgPsrCdLwlRcFfAHA8slGN3G2eGqYCfH3skfVw27KXqL/UEi2dfy7PHOpo Azs2BsaTllIHIsOJu6bFWg7Kx166PdAvlwxESCFu9kRC9Aq11WTwHZCzesGmuw9BYE1A X/j/ZBq5qS9cQll+Wan6k+X96jRWwwL6g2tN9WFLFENBpGjLoz/yYiKpFbP6cfgy+Hd7 qFbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dkim-signature; bh=Dts3uGjaAQB4Zj+XcLvFb0kYHGMK7F2/Fd5b3pjZeUQ=; fh=5s6F1VpUg/LkqHSyTlr7gneXArwgJkl0qAfGr3eFpAs=; b=D8LJ1X8kP+K4JuBqUHeHJe8p8PiP8g+TrTjbewOVyHahh0BzVsq3KdgmAjigUbPq4A mvl772wrNsp1Uiv6FKMzpLrF4gXnpHWvYDEcYGefswUg/sZHzOrTMzqLW6Yr7xMBY7MM ALBbez/CW1WjnIt705bujMUpIBKDSbD8HlkY565NCwVh7kSsVu1cUxyccQaFOZkAW4t5 PR8wt+M5t3e+ivZ5URPVa/n5dOUHRSSHeY6Y/D2eIxQcuGYsr3PSU97O0qZIJdAjveXE +fxLBB3uV3svNpYb6/wq/Pno4wq3aJ/nqQOtjhA9KfzUBc/zdObMrdJFJiGhCR32jFsT MLTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=JGIc+2AX; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id r7-20020a0cc407000000b00680b1a796c1si5974516qvi.312.2024.01.03.09.35.57 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Jan 2024 09:35:57 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=JGIc+2AX; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rL57x-0003T8-Dg; Wed, 03 Jan 2024 12:34:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rL57q-0003Pm-Ax for qemu-devel@nongnu.org; Wed, 03 Jan 2024 12:33:54 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rL57o-0002NA-2x for qemu-devel@nongnu.org; Wed, 03 Jan 2024 12:33:53 -0500 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-40d4f5d902dso94504465e9.2 for ; Wed, 03 Jan 2024 09:33:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1704303230; x=1704908030; darn=nongnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Dts3uGjaAQB4Zj+XcLvFb0kYHGMK7F2/Fd5b3pjZeUQ=; b=JGIc+2AXgHAa3ZutKM7yLU8t1NPPNq+WN4uwszu1YRyV5m+SAW9CqfnjGkQyUFOI1M C/vBcnjh4v2KRGN6VpNAFvaX2t4HuFM737gCxdaYHwqtr5kk8UNwH2uDqgYjJm4wS0jg eeJ9co6+u8Tlhmtn0Toit+nNAkdxrkkIgr7qA3sKX0Ec2iuRCowMpUgx9MKCHPtNSe1g GArO2iZ+CZOzcZ6hUrk1tDYsyQS0mMCjGuCYzSof7y0MZF8MzXxbS+w9oTCTb5xXH7WA Bp+5zKMfMCWDIOobsrxyfkY+QpElyGbOziZh9/GZKY3IO3KniEXsGbQ+m7FuEeAhH2z0 Sn3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704303230; x=1704908030; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Dts3uGjaAQB4Zj+XcLvFb0kYHGMK7F2/Fd5b3pjZeUQ=; b=IUOiRk8BSU2vHWz/7cOYeBAv8Sr3ZfusL+mymlxOp/Ufw21Rg6jOn73d6vROHQYDoG eUfHCAq1ha2Hn/iY7+pq6wA3jdV/K322JrM6kAR1dbXUaR7ASHGNNsLzYVH6drWWesu/ 9pU+5fJbEU/KaLmsJTlkciQbejGxzxVyccHkZ8FPApHk4wrqDmsMmekSrHCkgin3WRdE rOzUVooh/fmw0V/8LYeKrEQ6Ub9wRJaZVEAaJhi7LEk0kkiaYbw/2S8dJmvr7/wf6paU JhnbaEGlfiaamCTbsC/VYmuq9GhRNx0rKEKDucj2q5e2bBbgv0bOsJWucc/e/DeUoq33 nfXA== X-Gm-Message-State: AOJu0YyKjmIg/d9efQUCasfcU5qC4LqCITrjLP7OVfGrq+4DLT0rHY54 Nl7wcjWBVxgwGijv+rFi00uQYujv6chWXg== X-Received: by 2002:a05:600c:1f89:b0:40d:628a:13ac with SMTP id je9-20020a05600c1f8900b0040d628a13acmr5402530wmb.124.1704303230402; Wed, 03 Jan 2024 09:33:50 -0800 (PST) Received: from draig.lan ([85.9.250.243]) by smtp.gmail.com with ESMTPSA id iw13-20020a05600c54cd00b0040c11fbe581sm2914640wmb.27.2024.01.03.09.33.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jan 2024 09:33:49 -0800 (PST) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 53A845F926; Wed, 3 Jan 2024 17:33:49 +0000 (GMT) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Richard Henderson , Song Gao , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , David Hildenbrand , Aurelien Jarno , Yoshinori Sato , Yanan Wang , Bin Meng , Laurent Vivier , Michael Rolnik , Alexandre Iooss , David Woodhouse , Laurent Vivier , Paolo Bonzini , Brian Cain , Daniel Henrique Barboza , Beraldo Leal , Paul Durrant , Mahmoud Mandour , Thomas Huth , Liu Zhiwei , Cleber Rosa , kvm@vger.kernel.org, Peter Maydell , Wainer dos Santos Moschetta , =?utf-8?q?Alex_Benn?= =?utf-8?q?=C3=A9e?= , qemu-arm@nongnu.org, Weiwei Li , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , John Snow , Daniel Henrique Barboza , Nicholas Piggin , Palmer Dabbelt , Marcel Apfelbaum , Ilya Leoshkevich , =?utf-8?q?C=C3=A9dric_Le_Goater?= , "Edgar E. Iglesias" , Eduardo Habkost , Pierrick Bouvier , qemu-riscv@nongnu.org, Alistair Francis Subject: [PATCH v2 00/43] testing and plugin updates for 9.0 (pre-PR) Date: Wed, 3 Jan 2024 17:33:06 +0000 Message-Id: <20240103173349.398526-1-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x331.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org This brings in the first batch of testing updates for the next release. The main bulk of these is Daniel and Thomas' cleanups of the qtest timeouts and allowing meson control them. There are a few minor tweaks I've made to some avocado and gitlab tests. The big update is support for reading register values in TCG plugins. After feedback from Akihiko I've left all the smarts to the plugin and made the interface a simple "all the registers" dump. There is a follow on patch to make the register code a little more efficient by checking disassembly. However we can leave the door open for future API enhancements if the translator ever learns to reliably know when registers might be touched. v2 --- - Review feedback for register API - readthedocs update - add expectation docs for plugins The following still need review: docs/devel: document some plugin assumptions docs/devel: lift example and plugin API sections up contrib/plugins: optimise the register value tracking contrib/plugins: extend execlog to track register changes contrib/plugins: fix imatch plugins: add an API to read registers gdbstub: expose api to find registers readthodocs: fully specify a build environment gitlab: include microblazeel in testing tests/avocado: use snapshot=on in kvm_xen_guest Akihiko Odaki (15): hw/riscv: Use misa_mxl instead of misa_mxl_max target/riscv: Remove misa_mxl validation target/riscv: Move misa_mxl_max to class target/riscv: Validate misa_mxl_max only once target/arm: Use GDBFeature for dynamic XML target/ppc: Use GDBFeature for dynamic XML target/riscv: Use GDBFeature for dynamic XML gdbstub: Use GDBFeature for gdb_register_coprocessor gdbstub: Use GDBFeature for GDBRegisterState gdbstub: Change gdb_get_reg_cb and gdb_set_reg_cb gdbstub: Simplify XML lookup gdbstub: Infer number of core registers from XML hw/core/cpu: Remove gdb_get_dynamic_xml member gdbstub: Add members to identify registers to GDBFeature plugins: Use different helpers when reading registers Alex Bennée (11): tests/avocado: use snapshot=on in kvm_xen_guest gitlab: include microblazeel in testing chardev: use bool for fe_is_open readthodocs: fully specify a build environment gdbstub: expose api to find registers plugins: add an API to read registers contrib/plugins: fix imatch contrib/plugins: extend execlog to track register changes contrib/plugins: optimise the register value tracking docs/devel: lift example and plugin API sections up docs/devel: document some plugin assumptions Daniel P. Berrangé (12): qtest: bump min meson timeout to 60 seconds qtest: bump migration-test timeout to 8 minutes qtest: bump qom-test timeout to 15 minutes qtest: bump npcm7xx_pwn-test timeout to 5 minutes qtest: bump test-hmp timeout to 4 minutes qtest: bump pxe-test timeout to 10 minutes qtest: bump prom-env-test timeout to 6 minutes qtest: bump boot-serial-test timeout to 3 minutes qtest: bump qos-test timeout to 2 minutes qtest: bump aspeed_smc-test timeout to 6 minutes qtest: bump bios-table-test timeout to 9 minutes mtest2make: stop disabling meson test timeouts Thomas Huth (5): tests/avocado: Add a test for a little-endian microblaze machine tests/qtest: Bump the device-introspect-test timeout to 12 minutes tests/unit: Bump test-aio-multithread test timeout to 2 minutes tests/unit: Bump test-crypto-block test timeout to 5 minutes tests/fp: Bump fp-test-mulAdd test timeout to 3 minutes docs/devel/tcg-plugins.rst | 72 ++++++- docs/requirements.txt | 2 + accel/tcg/plugin-helpers.h | 3 +- include/chardev/char-fe.h | 19 +- include/exec/gdbstub.h | 62 +++++- include/hw/core/cpu.h | 7 +- include/qemu/plugin.h | 1 + include/qemu/qemu-plugin.h | 51 ++++- target/arm/cpu.h | 27 +-- target/arm/internals.h | 14 +- target/hexagon/internal.h | 4 +- target/microblaze/cpu.h | 4 +- target/ppc/cpu-qom.h | 1 + target/ppc/cpu.h | 5 +- target/riscv/cpu.h | 9 +- target/s390x/cpu.h | 2 - accel/tcg/plugin-gen.c | 43 +++- chardev/char-fe.c | 16 +- chardev/char.c | 2 +- contrib/plugins/execlog.c | 322 +++++++++++++++++++++++----- gdbstub/gdbstub.c | 198 +++++++++++------ hw/core/cpu-common.c | 5 +- hw/riscv/boot.c | 2 +- plugins/api.c | 114 +++++++++- target/arm/cpu.c | 2 - target/arm/cpu64.c | 1 - target/arm/gdbstub.c | 230 ++++++++++---------- target/arm/gdbstub64.c | 122 +++++------ target/avr/cpu.c | 1 - target/hexagon/cpu.c | 4 +- target/hexagon/gdbstub.c | 10 +- target/i386/cpu.c | 2 - target/loongarch/cpu.c | 2 - target/loongarch/gdbstub.c | 13 +- target/m68k/cpu.c | 1 - target/m68k/helper.c | 26 ++- target/microblaze/cpu.c | 6 +- target/microblaze/gdbstub.c | 9 +- target/ppc/cpu_init.c | 7 - target/ppc/gdbstub.c | 114 +++++----- target/riscv/cpu.c | 154 ++++++------- target/riscv/gdbstub.c | 151 +++++++------ target/riscv/kvm/kvm-cpu.c | 10 +- target/riscv/machine.c | 7 +- target/riscv/tcg/tcg-cpu.c | 44 +--- target/riscv/translate.c | 3 +- target/rx/cpu.c | 1 - target/s390x/cpu.c | 1 - target/s390x/gdbstub.c | 105 +++++---- .gitlab-ci.d/buildtest.yml | 4 +- .readthedocs.yml | 19 +- plugins/qemu-plugins.symbols | 2 + scripts/feature_to_c.py | 14 +- scripts/mtest2make.py | 3 +- tests/avocado/kvm_xen_guest.py | 2 +- tests/avocado/machine_microblaze.py | 26 +++ tests/fp/meson.build | 2 +- tests/qtest/meson.build | 25 +-- tests/unit/meson.build | 2 + 59 files changed, 1396 insertions(+), 714 deletions(-) create mode 100644 docs/requirements.txt