Cover Letter Detail
Show a cover letter.
GET /api/1.2/covers/2224582/?format=api
{ "id": 2224582, "url": "http://patchwork.ozlabs.org/api/1.2/covers/2224582/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20260417164328.1009132-1-alex.bennee@linaro.org/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/1.2/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260417164328.1009132-1-alex.bennee@linaro.org>", "list_archive_url": null, "date": "2026-04-17T16:43:20", "name": "[0/7] tests/tcg: more capabilities for aarch64-softmmu tests", "submitter": { "id": 39532, "url": "http://patchwork.ozlabs.org/api/1.2/people/39532/?format=api", "name": "Alex Bennée", "email": "alex.bennee@linaro.org" }, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20260417164328.1009132-1-alex.bennee@linaro.org/mbox/", "series": [ { "id": 500373, "url": "http://patchwork.ozlabs.org/api/1.2/series/500373/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=500373", "date": "2026-04-17T16:43:20", "name": "tests/tcg: more capabilities for aarch64-softmmu tests", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/500373/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/2224582/comments/", "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=TwRlV9Ur;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fy11S5qcVz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 18 Apr 2026 02:44:11 +1000 (AEST)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wDmIB-0003P8-MJ; Fri, 17 Apr 2026 12:43:45 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <alex.bennee@linaro.org>)\n id 1wDmI2-0003NJ-Qp\n for qemu-devel@nongnu.org; Fri, 17 Apr 2026 12:43:34 -0400", "from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alex.bennee@linaro.org>)\n id 1wDmI0-0004rS-37\n for qemu-devel@nongnu.org; Fri, 17 Apr 2026 12:43:34 -0400", "by mail-wm1-x32f.google.com with SMTP id\n 5b1f17b1804b1-488afb0427eso11131145e9.1\n for <qemu-devel@nongnu.org>; Fri, 17 Apr 2026 09:43:31 -0700 (PDT)", "from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-488fb7a0589sm21277785e9.19.2026.04.17.09.43.29\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 17 Apr 2026 09:43:29 -0700 (PDT)", "from draig.lan (localhost [IPv6:::1])\n by draig.lan (Postfix) with ESMTP id 7209B5F94F;\n Fri, 17 Apr 2026 17:43:28 +0100 (BST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1776444210; x=1777049010; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=R0EWXP0g57s+kt+kiENK76TgaMvdaDZg54RtGtUrk/o=;\n b=TwRlV9UrUzUq3trRnfrXvX5iEBdA9Vyj42GGTSlfFXQ9V0lsWhQkHxh1N041vyl6Sg\n wCdKe7l7YablptoW2urlGcxc3yxJGtL7N7WQBPb9swquVRu0qTChMGvE5ZSFG1LBkv1s\n wAf2EwIoWihD8ntcaVzPSQmiobGsiF6c5Mj+LTDGDDVFAqrf0y4N7RNYgqdT2Smqr9A8\n UHHfY/erPrmmetkjx55P+mlM8187wCXvA/q+xvlY2QH8cdyDBJJmOISS33AudHuVAKxl\n 8SbX3HbSLJ0MgojOVyI53Ljt685F0RLqeoOVkpA+iq/Kvo297v2idR1QvEh7VrHeqizy\n eYQQ==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776444210; x=1777049010;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=R0EWXP0g57s+kt+kiENK76TgaMvdaDZg54RtGtUrk/o=;\n b=Tr67HZPLK+j50uLiXpVct8hh0ev+KKj9JbD4yHK4Ch2eQbMHzeSavbehVwt02fY1pQ\n 6nGPA71VrTlZE2YDYLoyCZUjnB/ssXspwDFrHWnJXXz+AR8eFmbUQag0BTCVz27dyB8/\n cOg0/rklCyHeqyqo97VJ+04luCKSrVw18R7agkQr2MNje69M1GLVC2Wtdc5wj+L2LPkx\n hSn2u27y4W4lD74rp/9856f7DYn+/D7WupvtTzEmsHXdU+xh4bPhbYwOxvuL6kE0voBV\n FB4DikXiCcV1bIHg3XgMZp8NWgk50Hy01WrHXfe9/qgpuoSpq47hxI8FTduSeFdAkBaI\n 2PDA==", "X-Gm-Message-State": "AOJu0YyPv0dYrPJzu1tXm6zi560FmKkWNbTU3VoOm/tIZKb4Oz2WOryh\n ie+cya8D3Y7gekSC/Vg+EDQ4oBg347NWpRMjIflOtVOar3EYZKBofDXZs9uDRJT27R8=", "X-Gm-Gg": "AeBDiev3eULur3/q3Q+Oz8/EnW/t/OM39ocNhBKQVgKgzkWFhkcrua2V+kvPKxax1i+\n u94U/gTlyRwl1BgkafEnXlx1k7K3kDFwthaTGxVmAQ+uucvRwTbV6oS5cxtSHD3MBeJeS2O3l5R\n K8z9qHnvImbVWjqJzXplYsw5tNUaCqUDbcIX+Cw4lg9LdaavM/QqIUiHd80S+92nWt5MtboteOy\n 1UFB19OvHsaztHpE5CoYVIbJtMrB2zy7YRqzlOELX7Mm1FnI1xXkITdv1ExZUBecRp1uHFA1b2E\n bxSQJnpuxDJAptm/Ximlm2HqeO1OZhIh0owwy6alXl+oDdqE1+Esb3djFEvyh9nbPZqUnNSMspI\n DTnWLIJYNVbIJV3FFnoYm5XXHlB33/GNNsPBhdFtXpXi0WjBuw2Ry5po0lcfUZtfn5WkVVJXJLG\n RplbEdwDZHlQYPPDGTi17efmeItTk9NVujPw==", "X-Received": "by 2002:a05:600c:4fd1:b0:488:78f2:6b0 with SMTP id\n 5b1f17b1804b1-488fb78ede0mr51686335e9.29.1776444210275;\n Fri, 17 Apr 2026 09:43:30 -0700 (PDT)", "From": "=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>", "To": "qemu-devel@nongnu.org", "Cc": "qemu-arm@nongnu.org, Peter Maydell <peter.maydell@linaro.org>,\n\t=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>", "Subject": "[PATCH 0/7] tests/tcg: more capabilities for aarch64-softmmu tests", "Date": "Fri, 17 Apr 2026 17:43:20 +0100", "Message-ID": "<20260417164328.1009132-1-alex.bennee@linaro.org>", "X-Mailer": "git-send-email 2.47.3", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "8bit", "Received-SPF": "pass client-ip=2a00:1450:4864:20::32f;\n envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x32f.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,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no", "X-Spam_action": "no action", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://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 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "In the process of writing the WFx code I needed to enhance the support\ncode so we could have interrupts in the test. To do that I needed to\nmap hardware into the page tables. To do that I wanted to make the\npage table code easier to follow and now here we are.\n\nIt's quite a lot of code for a simple thing and of course if we keep\ngoing down this road we'll end up with a kernel all of our own\nalthough not big and professional like Linux.\n\nThe other option would be to build some machinery to exploit our cross\ncompiler support and just import kvm-unit-tests somehow and maybe\nintegrate it with meson more properly. It already has a more mature\nset of helpers and is set up for even more architectural shenanigans\nincluding setup for both GICs and a cleaner unit test wrappers.\n\nWhile earlier versions of the tests where the result of LLM\nprototyping hopefully the splitting and refactoring has made it more\nhuman. There is an additional test for the HPFAR_EL2.NS for bug 2568\nbut I haven't had a chance to properly clean it up yet so I haven't\nincluded it here.\n\nWhat do people think? Should we go down this road or choose the\nkvm-unit-tests option?\n\nAlex.\n\nAlex Bennée (7):\n tests/tcg: introduce a lib dir for aarch64 system tests\n tests/tcg: convert aarch64 feat-xs test to use helpers\n tests/tcg: convert aarch64 asid2 test to use sysreg helpers\n tests/tcg: move aarch64 page table setup to c code\n tests/tcg: add HW page for aarch64 tests\n tests/tcg: create a mini-gic3 library\n tests/tcg: add basic test for aarch64 wf[ie][t] insns\n\n tests/tcg/aarch64/system/lib/gicv3.h | 60 +++++++++\n tests/tcg/aarch64/system/lib/pgtable.h | 80 ++++++++++++\n tests/tcg/aarch64/system/lib/sysregs.h | 42 +++++++\n tests/tcg/aarch64/system/asid2.c | 35 +++---\n tests/tcg/aarch64/system/feat-xs.c | 4 +-\n tests/tcg/aarch64/system/lib/gicv3.c | 70 +++++++++++\n tests/tcg/aarch64/system/lib/pgtable.c | 70 +++++++++++\n tests/tcg/aarch64/system/vtimer.c | 23 +---\n tests/tcg/aarch64/system/wfx.c | 143 ++++++++++++++++++++++\n tests/tcg/aarch64/Makefile.softmmu-target | 22 +++-\n tests/tcg/aarch64/system/boot.S | 125 +++----------------\n tests/tcg/aarch64/system/kernel.ld | 3 +\n 12 files changed, 521 insertions(+), 156 deletions(-)\n create mode 100644 tests/tcg/aarch64/system/lib/gicv3.h\n create mode 100644 tests/tcg/aarch64/system/lib/pgtable.h\n create mode 100644 tests/tcg/aarch64/system/lib/sysregs.h\n create mode 100644 tests/tcg/aarch64/system/lib/gicv3.c\n create mode 100644 tests/tcg/aarch64/system/lib/pgtable.c\n create mode 100644 tests/tcg/aarch64/system/wfx.c" }