{"id":2196682,"url":"http://patchwork.ozlabs.org/api/1.0/covers/2196682/?format=json","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.0/projects/14/?format=json","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":""},"msgid":"<20260216034432.23912-1-richard.henderson@linaro.org>","date":"2026-02-16T03:44:19","name":"[RFC,00/13] target/arm: Support SME for KVM","submitter":{"id":72104,"url":"http://patchwork.ozlabs.org/api/1.0/people/72104/?format=json","name":"Richard Henderson","email":"richard.henderson@linaro.org"},"series":[{"id":492243,"url":"http://patchwork.ozlabs.org/api/1.0/series/492243/?format=json","date":"2026-02-16T03:44:19","name":"target/arm: Support SME for KVM","version":1,"mbox":"http://patchwork.ozlabs.org/series/492243/mbox/"}],"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=HoynBAOE;\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=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.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 4fDpZ90YDGz1xpY\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 16 Feb 2026 14:45:05 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vrpXQ-0002V2-Aq; Sun, 15 Feb 2026 22:44:44 -0500","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <richard.henderson@linaro.org>)\n id 1vrpXO-0002Ur-Ul\n for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:42 -0500","from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <richard.henderson@linaro.org>)\n id 1vrpXN-0002NF-5d\n for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:42 -0500","by mail-pl1-x636.google.com with SMTP id\n d9443c01a7336-2aae146b604so20919615ad.3\n for <qemu-devel@nongnu.org>; Sun, 15 Feb 2026 19:44:39 -0800 (PST)","from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.36\n for <qemu-devel@nongnu.org>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sun, 15 Feb 2026 19:44:38 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1771213479; x=1771818279; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:from:to:cc:subject:date:message-id:reply-to;\n bh=N1dWwblShtU/K1pEStkcQTqcgPLAHki/FI2GQRACns4=;\n b=HoynBAOEicHDhN7yujRWkptybXL+GXPdjqmhtdOR1AEwLCkYb/Eg7bR25xXYcpELXI\n THiBx+tmLe9kTxCI8zXkPSfJDQ6nNSreV22WLLHmf9+aHZkrwgJYhrlR5GZ0vtmkoWwR\n lQpAwx2XBSgSkaynkw8Bu5GUuRRgZBk1kQUZAtL2BXIfMDraRQfn3OU88UZsuOiwalhH\n rioT0K+p8v2pjl1gRMZ174rp4HpGpdXYwQ551TCT9SLMu4XhtBz8Y92kZ9gONKenTEY2\n xNfmrlP+hVuSKu3F8qYqsg/rj+7w0c9otNtbhHcl/xu9QTc7jDmbkdhZ5lT4WZhQlf7H\n pRyw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1771213479; x=1771818279;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=N1dWwblShtU/K1pEStkcQTqcgPLAHki/FI2GQRACns4=;\n b=Ew6ol1ZLwGEmAz8LZx7ax8d8N/Ezx54Sbtdr6FQymYu6QEFKgd4/iSje2ppvg6GiQc\n JfzjUqdnQvTU8lLpFr3wp8PQsgw2c8TKllOGRpAVwdrRG4QX1I4Pg3evlRnEGE+KKKfL\n wUPBpbpBazy+7flKSkzIxH7vfJFfxW9PVK9MM6w1viSlfgQFWhaZZueTkRALA3KZC8yI\n grztDFmwLJHYvPXSrew7YfE1kcop+G5p8h9WQ3lSN3cN6oLzpgyVzadLyeO8V9rryxG/\n w7d3/SHbAVJVPj0EzqWvL7l7zkGV4hy6Hx+/b+irgMAvw3k2eiUnStc0EyllDgj6erpF\n 4q5g==","X-Gm-Message-State":"AOJu0YxFAGKCGZQ3oF64CiUDm4fhWL1Fxkciy8WNnj6hTHRlK9YHY4dw\n iHrv9+/zblVHOZM8TIawSFEgBuVnVv2zp55pmaXPp+xml7rCtOjNzU+QSNbniXRIhhuwqvzuKx5\n khVAFQE4=","X-Gm-Gg":"AZuq6aLbzMTlYedQZIi45SnUkISzUiqpyJ6eKA1W4Tftll42XdNcEX6UoeEKlfEAGBv\n bFoBJR0zRW9yUwNqdx5yHf/nFHOfe9wyYq4IBhjtUGmnLKiVYiDCyjw5AWJca2JaEZR80SEJ/yy\n 3QVN9/5Z0CdNJfyOl4fSBqy/twMzfrzWJs4sJ6ZukMiLPI69NA+/OAB0RSnjeRhegS1Tmm/TORw\n lfI/XWgDlEWJ5u8H7XvTT/G6n5cKLJKnpgNwID8tgHlllm5MObK3EqL+Ism8JUmwrmeOIsM9PWd\n dJf/6b/cvPDLic4YbZZ/GdlfFZKM3hJd8H4lUGhorX/4LrCAPm0GwdUIDwVfUcHjrJIDBVfzMBl\n B2hstlDOdU4nqK8eHplhtkB2EMWD+aPApsLsoW+HJOdqdVm6cwZUS1Hyifg+q8mn0jSLYiOC9IS\n UJutnmFWW3SVu3TFtHMNV+9nPyUVKxbkMrrNcz2AUQf4k=","X-Received":"by 2002:a17:903:b48:b0:2aa:d600:d03e with SMTP id\n d9443c01a7336-2ab4cf84015mr93452445ad.18.1771213478601;\n Sun, 15 Feb 2026 19:44:38 -0800 (PST)","From":"Richard Henderson <richard.henderson@linaro.org>","To":"qemu-devel@nongnu.org","Subject":"[RFC PATCH 00/13] target/arm: Support SME for KVM","Date":"Mon, 16 Feb 2026 13:44:19 +1000","Message-ID":"<20260216034432.23912-1-richard.henderson@linaro.org>","X-Mailer":"git-send-email 2.43.0","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2607:f8b0:4864:20::636;\n envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.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=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":"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":"RFC mostly because the kernel support is not yet upsteam.\nThis is based on\n\nhttps://lore.kernel.org/linux-arm-kernel/20251223-kvm-arm64-sme-v9-0-8be3867cb883@kernel.org/\n\nProperly testing this will take more time.  I'm not 100%\nsure how to confirm that the SME registers have the correct\nvalue across migration.\n\nI'm thinking of a test case in which the ZArray is loaded,\nthe test program pauses, migration or vm save/load initiated,\nand the ZArray contents are verified after continuing.\nBut anything that takes timing into account like that\nseems way sketchy, so I dunno.\n\nAll I can say at the moment is that the VM does start up\nwith SME enabled and stuff doesn't crash, but that the\nget/put paths are not really exercised.\n\n\nr~\n\n\nRichard Henderson (13):\n  NOTFORMERGE: Update linux-headers for arm64 kvm from SME devel branch\n  target/arm: Remove aarch64 test for kvm\n  target/arm: Move kvm_arm_sve_get_vls within kvm.c\n  target/arm: Init sve_vq in kvm_arm_set_cpu_features_from_host\n  target/arm: Move kvm test out of cpu_arm_set_sve\n  target/arm: Drop kvm_arm_sve_supported\n  target/arm: Remove kvm test in arm_set_pmu\n  target/arm: Drop kvm_arm_pmu_supported\n  target/arm: Detect SME in kvm_arm_get_host_cpu_features\n  target/arm: Add vq argument to kvm_arch_{get,put}_sve\n  target/arm: Add have_ffr argument to kvm_arch_{get,put}_sve\n  target/arm: Add SME state to kvm_arch_{get,put}_registers\n  target/arm: Add SME properties for KVM\n\n linux-headers/asm-arm64/kvm.h |  33 ++++\n linux-headers/linux/kvm.h     |   1 +\n target/arm/kvm_arm.h          |  35 ----\n target/arm/cpu.c              |   4 -\n target/arm/cpu64.c            |  90 ++++++----\n target/arm/kvm-stub.c         |  15 --\n target/arm/kvm.c              | 308 +++++++++++++++++++++++-----------\n target/arm/tcg/cpu64.c        |   2 +-\n 8 files changed, 306 insertions(+), 182 deletions(-)"}