From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238025; cv=pass; d=zohomail.com; s=zohoarc; b=Oe+HpqN8z4MWCo4NwyS3ooA6UZJZ86HlHPtI3xrWwuFphjbhGOwvluKHmrQO2gnBmcAqpMv+IaRRONIgX9fYInFv8Lbgh8hYzfBB0PTx2wyXeeGjWjMizHD1uenhCRkCwsqIvwKURTNlUyISQDKm+CiHcuHFfLK7qLgW/vKzGGs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238025; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WUaL4fQjodm13B7bXBr9+5hJ+WRfVgk2LSsQ3TYc4fk=; b=E5r/EEOf4X6nfZwZkbzBt0g3pjKz8IgTlOxAEzpdtBHIyXu15kKyMetKVUi/qRzbEa8Mvg7paZWYIeDUwDWhWFltdvZ5pM917PGhL8He4UfVb+3kTzgUWw1k/cLk0yxMJDhIVUTaM4uWSw3blz+Zh9Nv95TpGG6JbNQOh81XaTU= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238025152837.7800418738136; Thu, 16 Jul 2026 14:40:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToL-0001mh-Mb; Thu, 16 Jul 2026 17:40:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToJ-0001ix-9H; Thu, 16 Jul 2026 17:40:03 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToD-0005s1-QW; Thu, 16 Jul 2026 17:40:02 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhk1763910; Thu, 16 Jul 2026 14:39:31 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:31 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:27 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=WUaL4fQjodm13B7bXBr9+5hJ+WRfVgk2LSsQ3TYc4 fk=; b=W31InYLneNvbMnhUr0UfrENtEdUI2VZWB6/QFe3Alv1FJwGpCJp36ENs+ k8ukfsZRzuQwdnWVxEYCUc6ifpsuzLVBJWWLm3tdQsUAjpehh2weA1zB1nsD1LRP 0RdzUnOzBmwfyj8DmipZ9b0JMb9GUMtDXVpc98Z7GGynEcZlegTx2NbXpZJnpZ4/ bnpdyYy6G8s0PzofxTkC2iPRXjqJ5xS7eNrwGwplepkJ494qHPGQ4+qr9Hp8xNKK 7/3N9NiQr7UR0t/4cm9rtYPqQ283FcBgjtOiesJ6jv8Q8BsHjzr1Rwy/fB9yt7Xt l9u61fuIqib9w7OItRvc5GEp5lyIw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=c5glpijjaWrE7dipTaqs3y9/S3+BlTCWyKCkpORPZQQJMHh3SGbH1+FX97aN0NxF09qDzs277w4t9BT+xaPPMim2ddFvdEgP4DJmZIhEMI2PxWUwB9024eVsWjYopQI6t5RwHPYYge3MiqwJgrcvi3xrWX3OCix4m7ZgNOOVTOJ8P0M1zk9ZRiYawyb7/PK3LBHOuNXwHbHCF0PIgXv/PxMkM3IRvIDqjp0iVufq/sNnDOtbDRID0uWQ6CHXHQQNl4QWdr8zOfHEQGSvgRibqthMPaUEvRFyDPznXVIJPFDVve9OayxAGKLk/UB8njH7ffzU+kmvQpnLHw0Ireu09g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WUaL4fQjodm13B7bXBr9+5hJ+WRfVgk2LSsQ3TYc4fk=; b=tk8tqTUTxxua1ojC8icBOEGcM2zTeUOLowlVavjWbLNycAb6X7sdrO3TM90VDJBtRx7B/NIdsuiSKFGTdS0Jv2WxT5kmyKhbkfykMkci8dun1K28EpnC32b4lkOSv60xuiRWAZqk4evqibeQfb0xiJ8bDPVKvDqeGxQ+cRfb3z4uo4ucE8Iz87DIHIYRk0vMOvjiHDEXIa/drGy65+4T8fgYhzS2ndYi4K+W63jNl5tOzwm8JKlW31P/XoTJE162kMOXVHjg1J0S2g+p5WiBJXCbyOCO4X/ujtHW1rP/eoaHfYny9wk7rsaLQ0LyFN+ayU+LSSCd4cGiM4/1VzvSUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WUaL4fQjodm13B7bXBr9+5hJ+WRfVgk2LSsQ3TYc4fk=; b=MWwE5vS7vaUeT8k3G+fVK7Q3AasL8mIFVNS+4mq9KCJW0BK7HDvkKrsDHIY6y0MikAZnznbe/8IlCbch/ZFsOMig8LzxXBIedRh6hT2eOEWXdfSFGhjTLOUDI9u2rD0Z5PDEgM7AW3l4hISfASR1PKpHlXfDAoh3PpquMEVKlEZ6KPmDFQyXnEvi1S+mjpoPGbL5cLQKcwx7BFaDNqvL+mGLa2GKSd7IG983oLMzwTAmr7XvVvGmE3mGSjkRC0+RG5edKcaiZuF48+LELNxApZgQ9L2Tnrkq0iGOXwLMmzqU/tMrzUJ3cKSrUyECIcv70DRJvHDMLXuZEKiirBPgJQ== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 01/19] target/arm/sysreg: regenerate cpu-sysregs.h.inc Date: Thu, 16 Jul 2026 21:38:40 +0000 Message-ID: <20260716213858.609699-2-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: ea55fedc-391b-4a49-6ef4-08dee382b629 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: QlfYDDlxBNn2yot15h+rqdvq1YyZbW376Yn8Cg/mWWcNwCsOlFMDSzTDMI++z2TVKs8gxzyQ2gMoArwFz0izWnSevHmOGHmmyEzB5V8GS7NaXa3EVwlad6rJI7s14ZXIou07fKTEmfHkFWS4DfnNQ1I04PbsVdjA7/acZUzXx7tD3gNTZnQajLwCUdzJqE7ZZRaSCYLlLh8Xkmti4VzAqy5sTdSAwh2S9qV342Nqk1QA/59Xnp1QDc2iwm03xEkm5gz8PpWVcvpGF45v8psCmRlBXnuYMng9IRB9TyQm5s14dgRdrTteqCeV3cGu8Wf7Xm+mG9GrsiY6s9Rz14inwBqZ6U+38kmD9PKIBDdPVo20XrTXPmdXD3UskGbes1rqzwPfngXD82CMnrelHPjRvySaouahUOAnkgERPGy6Vz68FI69Rq7wMnCH+a4/J03UAPtb5UBGK+oX0a2vJMOl9Dlu38dnd0PVsVN+YByfjxjOtWVyFQB9FoPvTN9ALz3znlP31F9USQcbQCIA28nj7D6PhAwhuGl5k8npiz4bA3Anu8wpPTD2M5Gm66Wg7ir3r3GI24siGvbFcS7loocSUL3NnTkVZ8xW0Ky0xdCjGurFfsAKFMCU8DDuALvS1DqAy7lhyShVFY0nd+HcMnI5nGrnBFmO85U3HwLsA2SwAJY= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(22082099003)(18002099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0de5V2bwvvP06u3QToGTg3M5zLk1B5EmbhXcr01kFjTV1DCHrtWrCloJvU8/?= =?us-ascii?Q?ZfB0aoMLohF4pw3gdgKO4su5bwyzfWDWsVgPUpwhl0VlTaI/KgfWSI4xjP6h?= =?us-ascii?Q?II2/6Z0RvS1aULnxXkOb/OqBBLUn+zRZahz/jiq8osnQuhH+tbLeZdeR/z/d?= =?us-ascii?Q?ukEdSdcDY0DaXb8drS9zC/PDVh8EJVOSKunWgdxj2YZHKbXdLZvJSEGLk7tO?= =?us-ascii?Q?0Cc0Nw0K59qDIGkQz3potyt05bMg3goxtAA275wFVb8FgiY0YOL+9ZjlIy0z?= =?us-ascii?Q?/NjLRnoSOhHI7jdsHm4hQoXKuIX2gsvQfxGgXwfY/9XHkgmjY/GeLA+l28qj?= =?us-ascii?Q?KHDEtsJ+g72Pmu1XYV4Y+qwYBKp1dmji2l+TwBhqnJQZwi2b0DsZ+Vx1r2xz?= =?us-ascii?Q?E7UVfR+RNUz77lP4fYRnn60oaN0SH0wR7oag4cMnFIsXkyohRjwNif9ZCDx8?= =?us-ascii?Q?xf42kXfh5JfsGhg19+qoIe/Pg2rxRFXkP6lQPrGBZjcgeP1quKwEiuOMDKzn?= =?us-ascii?Q?1WGnMlvMbmhCz690xSWgbPRPzd4dpL1ZZai43wiRyUwsIklDE6vUSkjNtUuu?= =?us-ascii?Q?TVj7lU4y2yLo5haPUpY5XD8cbXyUV1k2VA+sui4SqXi49ivbvNCh+wBQVv4W?= =?us-ascii?Q?RnObRWSIMvRgZ4cX9Yo5iOtytp/uiV1DDZhd2aGLv66+JMok2ks1QIVsvm3P?= =?us-ascii?Q?khj1QC4WOYHlbxue9rw7fpy1by4+jI0pqFmReyMu/qraUGrhlEVAh7EqphNK?= =?us-ascii?Q?d0TFD64U0MMx11Z4/IJeh7Puo6kIbT383tzbbTTZ/+OuRF3UWXjc5fcfN/M/?= =?us-ascii?Q?q9CnuWDZN+k0y8/yCZicFcIvG9AgI+gbLscMOC70LYnepy8vHie0cKlFKZdG?= =?us-ascii?Q?XtjiMNzTdKRh7liRa0Ukk/0LW5JhY+EUyx7DCvfupi20zYvWI+wHDbmth7Pg?= =?us-ascii?Q?ygmO0At7klf+bacTH0tbwtbOLFFQZxja0HIxbfw7fa8rm3UYbSDF+rCuRc/i?= =?us-ascii?Q?OZIAS+0V1ac0yyrU3OeF7gLRbEFOsXE/2U975aRrsTPuL21mozwrk8EG7Hic?= =?us-ascii?Q?iZLW0lu3oq+rX5HoPuRx2/8qigRBvHPrO/kwUPYnqUudfIcQ+QKHymNK6Q1j?= =?us-ascii?Q?YBEsj7dbwqhRbJPs/FUeU0rTL9JpwWiJUUjRENfXpglfvZt57ls/aStS097Z?= =?us-ascii?Q?ehOtLWaCCSs9daOkvMswUjn4LP25GnozcL5IqbSbD5v6L7QTWvLPLOYgCMXQ?= =?us-ascii?Q?GRm+XXH85QLjBKFjawOza5p9Bsmrgz5b4nysw0DPVVHbsRESn1pm2kOzf00T?= =?us-ascii?Q?iKH3EEINy6ehwpeVLcNvthE1puPsKrQkicjdJ5S6bj48W0z9/dZK7Y/hQSLa?= =?us-ascii?Q?6Qu1jdU3yYdLvClIgh32ZG/pmJQpZVktRSWtIkZaPgr2Y8+5ugyD6s2OPKgW?= =?us-ascii?Q?Hh0L/swX6b2hg3q7zHsNL81iggXOjlTm+6Rnyb2OnGYc+Lf7euAIf46Wm0X2?= =?us-ascii?Q?0GOggQzgheOFW+uRGN2B9VcrHhSvjJEkLwd1gVlmny3Yx9kNdMSzy6EtyT0+?= =?us-ascii?Q?1yA/Znfb1oqjLOT+2tfL/bUNA+sG+yFCq1MWw/AAKLXXx+wgdVLt1Y62c4yj?= =?us-ascii?Q?NtTWfqxygioft2OpDGisDHAJ+Q+qPZpStZbXTbeB9DB+vM/mJRKQ2PXNJ9Ac?= =?us-ascii?Q?xw3wgR+ll5XZpFpr4t41sEU3u03Gf4NZq8zJtQ32DvnZ6lmQv1fx3TQcBLEv?= =?us-ascii?Q?IP/kaF2wrdPe8rQTed/hTWZgeU4bINM=3D?= X-Exchange-RoutingPolicyChecked: bmwIsd62FMdq2keSgjdA98ldaiAkrAXgqkitGXrxUlXv5Hyr8/+4ghlAoNWHP/BKJ08jKPB6afTnrTvk2OX8Cz7cCl8c/wCrWL485zU1zBrNzi7fqrQqVSLHDsWph4W/BIewZxhkZQQCSb+eBgFENbSH8to9FfohxOGf5cwcg9h34y6iEmQhYjsvgv+EG9oE07wsfMf4+cAaYldKpVWRym8PBhAU+n2bKbLHZoQjZay2Y9B37B76USel8iZvONdtp18ovY5eMCm256QJYgIUBOf0vFUux5h4UpCakPb7NeYIhBh8K/1z2dNa7eUjR/56Dov+drAGRLnDTDIpDfICzw== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: ea55fedc-391b-4a49-6ef4-08dee382b629 X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:27.6315 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: haqnln94GPlYdRXS1HHEM+W8PfCKtZxurF6CL3lqc/1vk0KD5qnfingCVEoXz7GCIcWQUPI6/Qf1nodtYNGCKefjy95Eo2Ek8uwn6qV8IU8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX5MTUdkW5ZGqR mvM9ns76XXbhkb/nDQtIrRr3S3RgHjznwbyIb3nrLHHLLYe+hUozVVKPj/5YW/nqX1E9NafWDxA 6BdZx+rbqHSBz0NlROPtJGiPaopvtUnmN5vs8ZQEZoQNMtl2wBRertAJH4h+pD8OENsTlCS3ys8 1mt8wwFzWxBZjxfHwn4s+U9O0SKawtgitGtdYx/XD85OOAOckyRbaAy4xPIw0eU9XJJPsyBVwqr Uuk6X+Sor528ksEF5TE2TG8d7Czq/ZyIKfvFgPeEdamEqyCTQx7CSy6ERpV1Z24TgixEgww0Epz +Ld7aOtYdIVg+z4FYqd3IigCKoKgE4HChkVRHDF9IElyoShWCsA+oqaq7lKZOMZ+p43b4sXS65+ aeZX3HtcKMv33F8e9evPCsSA1er6OL89xxUsfc3p8pVJB928xdmvao/TNtub5fr0m4q+O+hV/kM NCNME2vN9jcd1ZT9+KQ== X-Proofpoint-GUID: Uhe_ukFgIxE2s2_6ZkoZi4oTp1oMfGhI X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX+9m1Dxhml+jx SyfcHFQQU5D8116uBO+kN777GPDfdKyoztaenHCO+hhoIywD28C+75DfwVxPp72za8CRHL0N05O jubd5ez2Lo4G3F/yzvVm4PwY95Cu2yU= X-Proofpoint-ORIG-GUID: Uhe_ukFgIxE2s2_6ZkoZi4oTp1oMfGhI X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f93 cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=vBEc4jnpDwqIhEWvTNgA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238027370158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Khushit Shah --- target/arm/cpu-sysregs.h.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/target/arm/cpu-sysregs.h.inc b/target/arm/cpu-sysregs.h.inc index 05f558610b..2188cd7be0 100644 --- a/target/arm/cpu-sysregs.h.inc +++ b/target/arm/cpu-sysregs.h.inc @@ -19,6 +19,7 @@ DEF(ID_AA64FPFR0_EL1, 3, 0, 0, 4, 7) DEF(ID_AA64ISAR0_EL1, 3, 0, 0, 6, 0) DEF(ID_AA64ISAR1_EL1, 3, 0, 0, 6, 1) DEF(ID_AA64ISAR2_EL1, 3, 0, 0, 6, 2) +DEF(ID_AA64ISAR3_EL1, 3, 0, 0, 6, 3) DEF(ID_AA64MMFR0_EL1, 3, 0, 0, 7, 0) DEF(ID_AA64MMFR1_EL1, 3, 0, 0, 7, 1) DEF(ID_AA64MMFR2_EL1, 3, 0, 0, 7, 2) --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238077; cv=pass; d=zohomail.com; s=zohoarc; b=Iq8fEi2tR6Ucw3ohgMtlJz5cMaOCPNs2m9NO+AabD+iHyo803eXaGTH8hcCWC/EOA5CyNZwZH5Y8raTnYct8eMsCmBVeX+KXHIdUnNO8j6VVtBM6bNhFxBUArhxme2wsF2t2DK9OC5FB8l7hWST4VBNt7uGuHrhClIYYdxpA3IM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238077; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=So3apT2orzziGkXImwzwY/f5x9JgyHASh53z4qGaXVs=; b=QCVfnuxV75GTuo+/2TaFuSm9qkT2tH/qrLhL3G1a8TK6XGuhu3m+Ib0yqxeronGsTwXxVIX/Vkp1jaA5xxUxfl628OYkJHWFnGJQvSiFepiPjo7vanTNqsoV57yO5s8bNk984nsBdBZVFK3t9J0bO9ZNx+R8Tje5ei+egOksBfs= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238077005143.2777668530067; Thu, 16 Jul 2026 14:41:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToN-0001p3-F1; Thu, 16 Jul 2026 17:40:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToJ-0001iw-8j; Thu, 16 Jul 2026 17:40:03 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToD-0005sL-RZ; Thu, 16 Jul 2026 17:40:02 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhl1763910; Thu, 16 Jul 2026 14:39:32 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-3 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:32 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:28 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=So3apT2orzziGkXImwzwY/f5x9JgyHASh53z4qGaX Vs=; b=lDSen1JyO55+NhzxYnfYQ055rjmbdRPIqTOFVvMo3WvMplao8FQBgyhF8 y1lernMoID6IVz2GBz2wPsiHp/3KVjKaUJj3+xKJqiOS1bS+S9wfTHb3h7lXA1V2 Ujmw87eZSYEMhwqD1vzc5LBn8ooOPI4koYrVt+WdCOGFCobJx7IXsm8Ia5h/k0iI +jX0jgU3hNwMrAnsqr++E0uC8vj/nhvISOKo/Oq2l8p/TvtGHKgDynAOVgg8FxN5 +ilfP8b3qok8YPajE1ZV2uJ875/ycrsKP8fR8XOl0j00nXHt5RrQtRGn/vhPiDND ollebG+oKiMHcpySpiW9JUs+Ubk+w== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yM9h0PlulUAc2ZQ9ej8HFNAuNvFZTmHVXQmNBThQh8uwxsBJiTYuxDcoJo6SJeRh+ojqrCUw0kyi8v37xw0SpNnhLNs79GCUmCh6Kw0nfKe8I4BrAVGtSXKAb86yz4UD8zoXQ6MW/9MLbWhiAfLbwFZxIcDJLYUwhmlsK8TQAt0X20xaN2ppxuZUInKcZHhtsDIjdxhLv4kW6KQP/cQvfHfS1jOw/gYkkUEX/nW8r8V6GYTHg2qU/YlE+EkhjKVuWUfux5oeMsRs6KkJ2Ow49ZDgaaVv8HZVfhSKkPpuHo2JrpOLerJmIrsOksW5uncoZBlBLaY6IbcUHslpL3DGcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=So3apT2orzziGkXImwzwY/f5x9JgyHASh53z4qGaXVs=; b=RlCTNI4lx73YRvCn1KWFw3x2+05TKdbHX2ZhgBRuoa8ilLq/V196u5ISFSiwhj15djig8YP9xo5bcRXLEqfJahM9bgxU2OJoVjEjsRfUYzq64VoSjx4Ux5spVjN/bKE495ss8GIFZ32himFiAcMxMYwlYrUX1hVjKPVeYHAQG3FMS6bgROIXoYVOPhWUbJ2SnD3OPW3jTOzPDCxm9gLYTRd0DTY+uc338olMtd+c0v+BQ2k4QOd+qNv5hUPBXnXv7TN9Dot97jRzS3IUg45J3S/faxO0CFyfYlxgpbhUIEXY28vF0zSz4nD4xzloFvy9uHvQB5W/tqJwu/QflmhDNw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=So3apT2orzziGkXImwzwY/f5x9JgyHASh53z4qGaXVs=; b=lIMobeikcbbSaoDifAYJiTeaPEhRdLNhrfCaWgWmt6DKocLcfUWzwHwKUj800rMFqM8sU4RSPlE4OpLar1TCz2SacvS7GFC2ovixgeeI7TJbkZSh54aL3lZSb63pssmZDXdww0vYxndouza6Z4U50f/wWkQM0uXAvVBgH07JmcyKN6C+7w3S9/kQVIfok46OuGASEFCg8mzn/zywJxf4hn84pLW7gXbPV+vQNHS3xvqFA+mR98scOPZGuPPIxW+Q+d6aA16zAgz7IeETxJkcx9J7nFkIrg3bR0KxRDvJve2AT1Uh/cEqpSWSF30PYqBs1tKihqfy5KxGnlCn3QwEBA== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 02/19] scripts: bug fixes in update-aarch64-cpu-sysreg-properties Date: Thu, 16 Jul 2026 21:38:41 +0000 Message-ID: <20260716213858.609699-3-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: e27d23c6-b2ec-4f8d-0cf8-08dee382b6a3 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|6133799003|22082099003|18002099003|56012099006|3023799007|10067099003; X-Microsoft-Antispam-Message-Info: z0ArUNNS7nnIQG1sI57RjyXWhkloO+eFQ3pj76uNAQBn4cQmXG3AApSPap8hJGEAPviSP5J9XILyFVGHM+6UMwQR1cfNCXjMLco/tgl7A9iSpvwSJG/FfX+NgFkNzZKdR35sXO3nYucosOoCUcLE6ZlUE4rkijc7WLO+y1RhF3R2fNas2Gf354WbFK5nrAFYQmUdpb6099sx27mXvQPx+JKHdv1ImP2Im+VSnEXtrF5QTKeJGMuxT9hWDve+w8aQWL567Vz9dE4Ee/rXuUD47cI+eODR1a5W7CJSHrvRCDZNQiu9cE686VYWn8rjh+cg3my1WSxuips1ecVTmxeRYeqHd/phoKcru+FMJvQRuVhxdLdXk3R4GkaUCWr9Lvca2SpSCo7fxqC5//qNLsHN4d9yctogSI8vyD92TrZDHoK+B6NQPX3kU1bZM2sIQSfXrVI0MNrWVKpNxO417Gd65aEw151lM7YbAjlTvquTgU68mniAxgAczT3ck1+1EzdeHSBw34bjGoUBm6tMvToIXqvZGz5UCN4Le/YQJqxA127F8YPGcj+QNNXNXAp9EMHu9/e/oZ19dlDA+gmSDghCz6HRGdvQdANTjJ536UKJPugWuMdB9TZjVYS/3erZiasHrocScCBRUkqB4g4x/oSO8rcL5Ui6ONyDIV4KCPjFbN0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(6133799003)(22082099003)(18002099003)(56012099006)(3023799007)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WxQ8sZ1vp+iYmhF2XPo03Fsf5cpEYzvee3ZY5hPRVtaus3gyhBkE9D8qOqes?= =?us-ascii?Q?lLt7mnplt8d2aX9AbGD1S4UyBMovspGtNTJ7vj4pgNboKd8o5cd5LXZM+dkc?= =?us-ascii?Q?8Ra1PJHNeQKMNWk1MYTKVMePxuCdZi7CLn+NHwtr/wdCBjlGpEIXuNa/YHoz?= =?us-ascii?Q?LbqK1LiuFbQd2Jy/hMP1DJLLIY/AQFDed5ruVEKMrixkGCIhEPBbRDfjMw3q?= =?us-ascii?Q?A/vS87vRwm1W8gQ4JBfwv/DFJHWOUx0828b70GBVf1fbygrKQx5i0p+O1Z0b?= =?us-ascii?Q?nX56XI3CYpG4JL+vfIUqi0owjZm5vVpfk/LNJ8J+Jl+U4xD4ebC6xJbDsJC2?= =?us-ascii?Q?m2lORr/L2r/hoFIl0HLZn1PJM+/ah0LRzG+Vn9vQR9e6aO427jouSKl9iehT?= =?us-ascii?Q?so3uYfO03szRUflJjHa5GTzI0LZoSvC7jgHFcDutqBGVsFs5/IaZkSQ8e7Xo?= =?us-ascii?Q?RfMZg6QLbn4fdnfGJhbG4BQnS0tH57vELgdTUrMO3YCL1mCFcYFwmv1bEcOe?= =?us-ascii?Q?J0DMYhKbBaEcL+57D4uLV0KbeUp25mDU0OoTxmT/QQmdS3Guv3DtfB4gtpG4?= =?us-ascii?Q?UFiNBmQp7L0HYMjYVV4bAwU4MwYebLgq1ne3ac264+kD5Wxn/sOaVbblZUkg?= =?us-ascii?Q?94U5bMWe5c0X1eF9adi6c7V/hJ3HzbUJ84JlB33Q7POpJGbdedEzZ9juWoAM?= =?us-ascii?Q?/+rVpHJ2DMU11WQLuStvlC7aftatuLesaPtkmYfZm7quFLppk4xvPc2EGbfY?= =?us-ascii?Q?O3F6B7jpQJEyjjS47PTwWWZgIn44VdADfiTOd6lHDdd3u5/zRsc1e7UnRkX0?= =?us-ascii?Q?dKXY+bLQCoYvA1BMwKGtUJhOLorXgIx7k8E9tIKnE8ZgKjyhNZ5LUmrn7WG7?= =?us-ascii?Q?5eV4RQ5D4VpI8HXfBBdcNV3BUZWTXC6R6dCgAq3z6Ht/o9K0TeKebwtqROfv?= =?us-ascii?Q?ce0pgflmutcnxUZGcXCeLaMHHBKQcse/05xExS7COKejceufqzGz3Ua3i15L?= =?us-ascii?Q?VPWkZnYJTMsk/O5Kx+E12KXemDroljM9ifGq9bZ253pIHpHm+boQ2GnQv9KK?= =?us-ascii?Q?rnywSh35a6bv/RXQXKKAzvLfRYHIctMTxx8AmV5AkrOURPcFTx+D/v62zCwo?= =?us-ascii?Q?KNqLjiN49gtlYYJBUyq7QH0AtphBoBUOMp2LgOHP8QrrPC2Trb7vC1i4khcI?= =?us-ascii?Q?FalLCJAjFSNuuz9hrQTsWIPUS4AfASxWEziddrM3XyHnMiQ7pz8fG4C2IYmP?= =?us-ascii?Q?lXDyRf/h5aZACzMB7R+eXzs0XAl6Sq3tWcVt7QQGiPhZ76UbIQDqkfX+8ouy?= =?us-ascii?Q?QziMJ4530Dyt7WDXsNezr4VDCUFGZbGNUafHA1JmC6mDNqfi9H7KI5xaytw0?= =?us-ascii?Q?iEYlXbVgs8BG6SKIjmswZ7/VoPNmTNk/ImbQ8nvZQJemBUmqAMpAx25KcnS4?= =?us-ascii?Q?D8qtrUeeemdAp6oF5AMXDtArxg6DVAxuJX46UcnLF0nCLtLCxKX07ktWq7Ns?= =?us-ascii?Q?vrglp/pPUDM0Bl8WPTDYAk218pzpuUnfuUNB20EGjUvHqEk63TdlLqqiwNf5?= =?us-ascii?Q?ddjXudbNAuBV5ZLhsZx4PpoTEnISOLQZLipxxpq9nCJgMQaZRaoS2fsZjWSx?= =?us-ascii?Q?4nUhHGSJdEH/+IZuoSFJjMQpCUzaMZmE8S0CNEpb/WVAL+NzUFG2aZffxtOh?= =?us-ascii?Q?l5eujBvAmWWMNb2CV6ZFvKqReyo15BCIsLzaSP31CBazuhfxlZ4WrZYRt++Y?= =?us-ascii?Q?KamhcU5LLnapYTlLtkXAX6D0CikKGxE=3D?= X-Exchange-RoutingPolicyChecked: kLV975OzXNp/MM18EZBciQFRY5tQnv4x78X2k/5vjlTSGYKck6fniowPJSCyEfOnt0Z3Ycqi3k8fiCqEswMI7y+AbJMhUb3zkExSY+67KNA8GD1rnWxqrVMyCHeHbPdfQVlguYY6QmEP2VUwWljvlwiGNwae1jlEpdr7wx1zHaF4Zwi/wx/TlyA1m0Ge0u3NSfgKTiCFEeEGlT/2C07yqvJRts48J87KynEhNKXwMXDs6XzbmP3Puwuxtn44vIlmP9BLBuNlb+1//gd7Hi30CnBDBRSFAS49u2K1PAwEr4WJMT+v7Vmy9U9V1HRnEul9esu1GEBDKfwztdwH9ie5VQ== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: e27d23c6-b2ec-4f8d-0cf8-08dee382b6a3 X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:28.3608 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hGdLGk+GsyzWa8N9rdmhOx94mmr89BWAHHefFgARArHZdxD3hoRFLikd32Rhu9ZsUis7IiSCFcQqAufxz6RLhIHscNcutNPBa7rrX7KGzYI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX++xn60e8VN20 PKlPQqrioVF6ZdP2UF6mIZaZ9VcUw3OiRBAdm/DZrFi+f+5mpf+YCEWp4kxZHcH6KGkqinWUxlP WZKfo6waHVJwU613CoLCdYaeICCX+xvgBbPinekhJWoSedR6VokQDmmvZh6if3Dk6YRYagKF+pw dbsKUVCHukS/YTJ5Dsz/zk11MwdvjMzmMIymwjkfdvMMBsHIEFeCZsmd7sV+hZ5SxyWgXBxBrPd 2KIgJVx8IgMOvDL2dhHltZqNfwSpDTBeOXHlZ9ZZTzhopVIFbIrEY7pe9CIv3kLJcWvwYm9mjFq bR9450/b2plNkjaZVh+HTS+iOgxkz89cWwDu8MwygYhiatHIjImtJTelYXiMuxQamiS/U7iupZP Af2KzoSJ5WWV7rdhaARaJI6HOK7WDhu9UR2FPn240eEYH0UwG7Rzpy0VlHa4GXUjfpJCtD8Xcba nKYaz5I5g0OVRSTLIvg== X-Proofpoint-GUID: 9NbnjPziWgG02vOvErF1FZC2Lqkfhj7G X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX8PTgnIfbSFbA KG+Q2JVgwumt7vVg+NhUCfFAe2E+jTZUWxHocHKAIiRUuNlJms+Jl8YCn75nWoPy36q3uzum99z rR0uw5bUKpeSWJ3pS4DU1fzyben8gU0= X-Proofpoint-ORIG-GUID: 9NbnjPziWgG02vOvErF1FZC2Lqkfhj7G X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f94 cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=nWYhzk2I-dwAJmrfhdMA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238079250158500 Content-Type: text/plain; charset="utf-8" - handle quoted bitstrings and decimal - skip Values.ValueRange entries. - Emit unique RESx_{lsb} names for reserved fields so no two fields in a register share a name. - Emit a dummy 64-bit VAL field for registers with no defined fields, such as AIDR_EL1 and REVIDR_EL1. Signed-off-by: Khushit Shah --- .../update-aarch64-cpu-sysreg-properties.py | 67 +++++++++++++------ 1 file changed, 45 insertions(+), 22 deletions(-) mode change 100644 =3D> 100755 scripts/update-aarch64-cpu-sysreg-propertie= s.py diff --git a/scripts/update-aarch64-cpu-sysreg-properties.py b/scripts/upda= te-aarch64-cpu-sysreg-properties.py old mode 100644 new mode 100755 index 9e829fda2e..ecc35db528 --- a/scripts/update-aarch64-cpu-sysreg-properties.py +++ b/scripts/update-aarch64-cpu-sysreg-properties.py @@ -106,6 +106,29 @@ def collect_fields(item, bit_offset=3D0): =20 return fields =20 +def parse_value_int(raw_val): + if raw_val is None or isinstance(raw_val, bool): + return None + + # may already be real number + if isinstance(raw_val, int): + return raw_val + + raw_str =3D str(raw_val).strip() + + if "'" in raw_str: + # quoted bitstring like "'0100'" + bits =3D raw_str.replace("'", "") + try: + return int(bits, 2) + except ValueError: + return None + + # unquoted, try decimal + try: + return int(raw_str, 0) + except ValueError: + return None =20 def extract_field_enums(field): enums =3D [] @@ -124,32 +147,23 @@ def extract_field_enums(field): if not isinstance(val_entries, list): return enums =20 + # A Values.ValueRange field specifies start and end value for a range. + # Don't enumerate anything for them. + for val_entry in val_entries: + if isinstance(val_entry, dict) and \ + val_entry.get("_type") =3D=3D "Values.ValueRange": + return [] + for val_entry in val_entries: if not isinstance(val_entry, dict): continue - =20 + if val_entry.get("_type") =3D=3D "Values.Value": - raw_val =3D val_entry.get("value") - if raw_val is None: + int_val =3D parse_value_int(val_entry.get("value")) + if int_val is None: continue - =20 - # some of the values have ' like "'0100'" - raw_val_str =3D str(raw_val).strip().replace("'", "") - =20 - try: - # convert into bin=20 - int_val =3D int(raw_val_str, 2) - except ValueError: - try: - # Fallback to dec if not bin - int_val =3D int(raw_val_str, 0) - except ValueError: - continue - =20 - enums.append({ - 'value': int_val - }) - =20 + enums.append({'value': int_val}) + return enums =20 def generate_sysreg_properties_from_registers_json(id_reg_names, raw_json_= path): @@ -210,7 +224,7 @@ def generate_sysreg_properties_from_registers_json(id_r= eg_names, raw_json_path): msb > current_fieldset_fields[unique_key]['msb']: enums =3D extract_field_enums(val) current_fieldset_fields[unique_key] =3D { - 'raw_name': name, + 'raw_name': unique_key, 'lsb': lsb, 'msb': msb, 'width': width, @@ -238,6 +252,15 @@ def generate_sysreg_properties_from_registers_json(id_= reg_names, raw_json_path): # Sort decreasing lsbs sorted_fields =3D sorted(unique_fields.items(), key=3Dlambda x: x[1]['lsb'], reverse=3DTrue) + if len(sorted_fields) =3D=3D 0: + # cases like REVIDR_EL1 and AIDR_EL1. + # augment a dummy fields VAL. + sorted_fields.append(('VAL', { + 'lsb': 0, + 'msb': 63, + 'width': 64, + 'enums': [] + })) =20 for unique_key, bits in sorted_fields: enums_list =3D bits.get('enums', []) --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238099; cv=pass; d=zohomail.com; s=zohoarc; b=W4hqkWkay10vAlm1s1r9arSqNal7iefxZQuGu97xrj8DwP5rWQDkoQU5lQmZ6NYRC8II+Ye2FNqmYUl7iHU3e/zQMXLYAP0aE4ddIQGN6ayMR25z6CtJevUgmxAuBwZWY/awHeLluBUv6lPztK3RdxaymquJfa7Zdxn5oO/AQwU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238099; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qDTFLcsX4AREI942Lyums/HlLuzuyHCJiC1RLHMcQcs=; b=If+1ydD+cyhLxGTmyz/1+n9W5XtDCG3QSvyZXyrSX8WaXF4MCm7QXzFyCJ7/UdG7rparixH3CKlfFHjKqcotBTVa/hXach1hJOiB/zlelw2zOMHDuu1Zqo7U1eb1xO3pMIOLKInx+aiU9DVAt4HUiNot7KFLxeENsHqfEGz5NUU= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238099344389.754989461377; Thu, 16 Jul 2026 14:41:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToi-00029r-39; Thu, 16 Jul 2026 17:40:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToe-00023y-Ez; Thu, 16 Jul 2026 17:40:24 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToZ-0005tV-U0; Thu, 16 Jul 2026 17:40:24 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhm1763910; Thu, 16 Jul 2026 14:39:33 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-4 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:33 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:29 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=qDTFLcsX4AREI942Lyums/HlLuzuyHCJiC1RLHMcQ cs=; b=tu87Vea8hC0oCaTWNdqhiFfUuBlPudYUYD/xufOPqxBTnGMOe1Bu+FhcH QPVlIXXg+NaIwGsQuDiXlJoUdsNxGPTCZ9lJLdsFZU9QmR/rK65Rl7q4UYhthFWn NWA6nAh3Vtjg5XvBaFn3aZl+ub7OZA7GcCysckA6EEc/RvWUAvJlQszZ4JcoaJMd rMLsA/7aBq5XqfwbKn8RQQVPx5HIRw1K+1ySfIqq+G4aw5sITN+5vDczrqNZsnbZ rnkldYEtIRLnqt1bGvSO6J7DDbfxb2A6wnWf9keGLEkOhjxu99hx7xT5NDS9ARU0 xz00JpMFVzbJp2OfpwkrJfEQfCEMw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YxA8zFClInmFkiCsXV60kp5LnAXYr5nOviOAS5A0t4ntBgJ1BvL0I8MwhcvS7KcW/nyhYjtRFWGMBY75gnlCepOaWK8b1yHkgscxVKB3jiYq5qvc861QWsiqgTSt5Rk4SoOH1pckZ54EyyG2voCl8S96bgrp/C9GAc8sLSL+IDfUA/nm7YrPGB+raBS+tZizE9fd/lYjE7eAkkxy+HnaNIXPJzUfgKddn3Bu7Hw8uVJUxoSPMSZIf4+pRWWozcNnYXHITBuIKVhyKBiuphO5trpHV3ixW93VGizHHqjFlDNxgd3h2AU4O50nPfHu9OdV7TxSzgMvbhBLqt+J+Ra8TA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qDTFLcsX4AREI942Lyums/HlLuzuyHCJiC1RLHMcQcs=; b=kr9FgRPMxvJqVLn9cgH9xO4ak8baDFIhe5Lit10k83lyW1JSUQzoOnMaNMWxPGdMNg3ClMt5NOENfoBm1+gRM3Tf5eiChy00lryLeS5N5GMPq3Tn1gJvaim42Zels9yalShq4Zw+E/6joemezALt7x31Kw7p05Lvjf+WX1RPpKxZ6N7zbeID7VZE2pWKlmYTj+VmterNAVTpqESuV4Vxo9HJbMeJ2wP5SUuA3kufyn8B7XDQwvbkc1bIM4MnjWQ/MUzX4wihxMsMw1go8l8wrDyGo4QyCXAQg9esy9ulE9A64/gLKARIaTmAmYU/bAn+4FY/+3QhRLt1JNEPpQUO1w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qDTFLcsX4AREI942Lyums/HlLuzuyHCJiC1RLHMcQcs=; b=OXciNae59FzGeBBGqi6uTChMZ+KTM8bxIUTJUFtJT8IOVQ5xihskJD6Eq9+EZgiLlZrib7Mp7MCheQyOwgDsLDglN+O2p6SKsFjWPeuDvylRAvPZfHyY2RC44w/h/S7LbBN/+jpOa5Lot9eyfYuE5AN3ximvDPWpMTvUICpwCzDaCCaH86OvSZAru82FP7cOkqOkgw0e7BnaKyhGvJiV1ugEZh5cibqlhv98xNsd4lCT28yK1oluVSQdjkF1KPfmU+f5GaoobJp0YQOUda8szf76JHEGV6BN+cfRczj2Jx5ZkDeoqlqN6pbHgnJ27NRs5hyQQeKBrA6i8KEoU9/M6g== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 03/19] target/arm: regenerate cpu-idregs.h.inc Date: Thu, 16 Jul 2026 21:38:42 +0000 Message-ID: <20260716213858.609699-4-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: 12313622-7eb9-46cd-63e7-08dee382b728 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: z6o0bhClUaoRl9o+HiRtIePEU4sOQ/4KX0vik3X0DPDWtGqWWXU6WTThT1eFvRH6Qgw0t/7rDXUfjdwRZGsFaOW5t2cFSkwUCCJDXl2zbw63kpO6cipquqURqO6WEvQ+KKFVj2MneVCoj7Vfgx13/brG5G+dTuMhUdeLZ0CXR64Pho1pYGreUBOIM/rhOegwFqPsu8HNe48M8CLqqx6sr+WNw6gAh50EYxDi0zG2wUZwN2WH32B6qRx0/ANieaTiZq1J4u4D843B9hLzoNUlhMdixT0K8ggiVudPA9aHzPYoCkuyDycI+4uvCTeh2R26D+suHRRl8QWqbLhesDmwEN6zJIT5HQaFzIn7Kym6TzDyeRmDTYKchc2h44LvQKTIkciHH5e+ltI/5AoXC86HnZOU9JkI5uHA5XUjEtNbsABTGDE7tPjHvUxaiNLaiRxyZ1Qw/3WLjNTKpXVEaTlrUZR7h6yuho3zxaWKRFrxRTuw7U/r/FyidMbtEwDsX9DoK2W/kC63p6v6AN0/cRCYTbr2DzrEsyeQLANmSQt41kukAM8M1zfgx4xZmo/HOkuQO5yMAzbBpvQUsTI3WyzcRte+rVCGD0cddFEwD77pwrgPwKM6uOQlKGNjNO+6F/Y5wETHewLgx9XeT+u73Lcv1fUlpabKS9hgj09SbujfSv0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(22082099003)(18002099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?j6KVbDrvHRQB0C5TjWnyE1GXEZt8W7r9YMWj/CxRzwpsidpdZ2717FAllCQ7?= =?us-ascii?Q?zQPdVA+bgvukLYsadUOPjwPdgW/mkbDUckjjNqmdSzFbamgb6bRDcfPrRc3V?= =?us-ascii?Q?siGGZSbMfLJp7fhtKJI7tsc0lOUtwMRIpmz8XD4TLyA3HM2JrL+/tJoia7T1?= =?us-ascii?Q?WnZxcEzHVoAoG1uWQe2sgTxruWQV58JVU0L93oFZwNJ1rIYnUjbDYluCRUGp?= =?us-ascii?Q?98pmO4hyKH1b0piJVHOp4M9eE9B3heBbatkpG8plZD/kckstkTeC61wNeOQ/?= =?us-ascii?Q?kzct/uS0Fd4mBXOPUpg1yTHNIBe5hPIEG/n+nCfPQtAVk8jT6a2lmZZ4ZpbR?= =?us-ascii?Q?YRMvVWye4M7Q7mGrhbLQj0ZYeEi2YLjzVFWcXNdiCThdUkPJaCXjaPol58BO?= =?us-ascii?Q?iDhWoXMUbNyZLHQJR04DiIXGou5AWYenNAw6bnXK3H9IjQ/ZYVFLSqjA/FXw?= =?us-ascii?Q?3BKLOHVUugH7qnn7u/b/JbU6zvgbMCoKWSWUeAVk8xbE4K2EzulCvvoY3Fwm?= =?us-ascii?Q?95Vq6M8Hb5AEOd68314pySkTMy0VF71K9CmOeMBj+T0yUuWwoVytjW2yMcv8?= =?us-ascii?Q?DMCy4wT8DjBK3VP4hHaTnCJiW+XLjNYNQb2PwGoUNv1vtaftwnC1pjDJ0BWJ?= =?us-ascii?Q?bc4zRNu2r9f+OKQkUX2Ek/+Bv0btYpi0Dp1AbKu8PLhbwgMDYAhYRE/ANynH?= =?us-ascii?Q?UigoSFdua+c8qAZ6zTfDK2GBWOiiXb4y5CmEtqNlVY7cblFGwk5Z44Q7IsB8?= =?us-ascii?Q?+WzvHwfv5QNWdAyV1878HXzi6oEhwV99yYw7l623MEeLgCuEXXX44nFUSUPC?= =?us-ascii?Q?qlbTCCN/4lFhMXt2vqf2AcREs1Pos25QFa3e+LP5KMZu56h7rkvel/A1ZDgD?= =?us-ascii?Q?irIp+79D/bmSKbom76MfEZfFRN7J+tDADmL7ZSBI8gTQnY7zb6BJ2xntAFnU?= =?us-ascii?Q?Rcn3VAxNd0RmcJvbmX6KzLGkbCiJSzla5iNEeBH64kwEom0rM2Z//ocuHNEI?= =?us-ascii?Q?Da0lMunHdIPzp+m7WEXKu3/0r3clstblTCna1LNFiyRqlrMLn95dU4ZpjX7d?= =?us-ascii?Q?e1iGT6oGMNXZUeew1CyTlOqPxh3ifcZDK8lWdcQJt0fUDsAK/RQQuPy+ZIdb?= =?us-ascii?Q?RyEL2vyOYSNnCDlNNKApOBWP1rSn04SWDA3DGNiSWqldhU3f+JyTarzVFeXI?= =?us-ascii?Q?3c1/peRbOvS30zIo4D9xsUKfeUDA6x2f7decdguWlRgrt10hZNdCQzvVh0Jd?= =?us-ascii?Q?BxQa0pZSOlWjMTQI2uAFk1oqQ3hs2ayhS2UQtaBpdiAN5l9jKDG/39cehVB/?= =?us-ascii?Q?MT1E0sivUDmCtn/BLaGo3qXTrHapYWKhXP6ZbQyj5E48Kir1+TglpO5VB+EZ?= =?us-ascii?Q?+pO3nrYTb9ZlOtACLAMHz4UtU5sjE4yZBAwlZvr/no10idezuzayZIOg/lO5?= =?us-ascii?Q?4Spr9ZIL6KyTND60npwPO1YN+OWYHMAlYw0CJrW+q/lwsvQM7S6yuk2Y+0C5?= =?us-ascii?Q?Duj7Kdhp8h8OVOFisO29ruYNMJ40DFj2ivsxXw1Hg/EIye1FZw3xVhK2CqUf?= =?us-ascii?Q?WJPQFXUBr/spkWGoV/bC+/0aruJiyMEhDZ6fmYMadl0lJLO+SPr15n6iqRHx?= =?us-ascii?Q?zAMvjStIU9N9KSe5qLQhhbzBR5bysD1ggUEcmvM75LMqqtDlEqTIMbyfGNTM?= =?us-ascii?Q?vaGxx0eF2fFwk9QPBCFjjMPBCdvaIvsYrMV18O7KfgHTbZP/ZakiU1snNIf5?= =?us-ascii?Q?qumTdwMu9PWPGfl4dyCP9TfaPr1v5J0=3D?= X-Exchange-RoutingPolicyChecked: oiCGdYRwXQ912c4hTx7FCwKqw/8cLRq7UylgdAaBbgVnCeiB13zXhSCuOWJDHtdj6QaBn3pOyXUJgSX3oyOO5NY3Wo4BXw32XZuGkbg4dQNVPd1gg8qElOduQhacD8vEWihFTXJFXeQ7I7g9ESbCNnwnTFhjz07WSSADoNRqd9Un+BG2p2pcxBS/c4w0k5kuNgoyAlOBucc1ethbAIl357vdWLMUKiecyRGNwPMfUJS+zdRAWl7NVHC8C3kfNCK4zwV9F1vC4LcGo29CjX4lOgEjOBnzek5TRTYKpggPrhoFmVVm7eMV14YsNtVgOzlkwoA3rImv58Ak52X9jKCcIQ== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 12313622-7eb9-46cd-63e7-08dee382b728 X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:29.3036 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: h7TerberRJ3L+RVHKlguH8+12qCLHc8YVGsdT1WqDmJ2qfdbaR7wF7QighblfGfS0MDbkqnU17gFdJ1kpHr9UL22tU4/00WYOdptVJ7Hiho= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX15fCzG9ayq4q yYkLi41Osat4ml0z2T+NZaBzhSIslGJmbPgxzFURF8i/l+eAMdJDj1jKA1V04lVQhQX2ft0JeT2 bYUE3y3LcCdsgttVbRUO9VcE08wAcZVJNAZalqZJnzyuWJ2NFd5pf6xJ1EbCGrf9H20QVM5+AwM R5kOjkwHmdAXDkBboNi8fkw971w1xBh6fXhrFKiW3V7nF/oauVBvrEW4+BwTGTKKWcSfAY4Jdyx xXEje1YhsZ7iVidTAhhsOZG7LK3uqko3dtNP4UUrYBz5jsN7Uu4UJQUFw9xGHG6u7WomnShait4 TV8cT0Iqu94iSQdEKGewGOQzNMIvJZ6yBRQDl104Z5BIIessi+HTmOjwd7gCToEJKvESNOSkYIa u8HzazdG+Eqt2EJFaHxIWsEijiEp/Dnz7KoORPzsFWJcxpP3wgIqcQnHvdlRAcY3+FawOQ/fJkR 1/OjcyfF/2ZI9ryq2Rw== X-Proofpoint-GUID: njh_diHm3E-nRPolTaSltKOiu9ZJaVlg X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX2ttExctqs+FQ adMzc9t3vNNOxeSJplw5oWgZYsfZbxqyhOeYvWOeLDjcOpgn2QoJddag56LMFmo7Do0cWefUQw5 XAsPG3dGTRitO570mDnXceLCX2BSmOA= X-Proofpoint-ORIG-GUID: njh_diHm3E-nRPolTaSltKOiu9ZJaVlg X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f95 cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=u1GiRk8wNk4rfhKQ8NAA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_75_100=0.001 autolearn=no 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238100918158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Khushit Shah --- target/arm/cpu-idregs.h.inc | 165 +++++++++++++++++------------------- 1 file changed, 76 insertions(+), 89 deletions(-) diff --git a/target/arm/cpu-idregs.h.inc b/target/arm/cpu-idregs.h.inc index 5fdc84237c..1851b37937 100644 --- a/target/arm/cpu-idregs.h.inc +++ b/target/arm/cpu-idregs.h.inc @@ -12,23 +12,24 @@ /* IDREG_END(REG) */ =20 IDREG_START(AIDR_EL1) + IDREG_FIELD(AIDR_EL1, VAL, 0, 64) IDREG_END(AIDR_EL1) =20 IDREG_START(CCSIDR2_EL1) - IDREG_FIELD(CCSIDR2_EL1, RES0, 24, 40) + IDREG_FIELD(CCSIDR2_EL1, RES0_24, 24, 40) IDREG_FIELD(CCSIDR2_EL1, NumSets, 0, 24) IDREG_END(CCSIDR2_EL1) =20 IDREG_START(CCSIDR_EL1) - IDREG_FIELD(CCSIDR_EL1, RES0, 56, 8) + IDREG_FIELD(CCSIDR_EL1, RES0_56, 56, 8) IDREG_FIELD(CCSIDR_EL1, NumSets, 32, 24) - IDREG_FIELD(CCSIDR_EL1, RES0, 24, 8) + IDREG_FIELD(CCSIDR_EL1, RES0_24, 24, 8) IDREG_FIELD(CCSIDR_EL1, Associativity, 3, 21) IDREG_FIELD(CCSIDR_EL1, LineSize, 0, 3) IDREG_END(CCSIDR_EL1) =20 IDREG_START(CLIDR_EL1) - IDREG_FIELD(CLIDR_EL1, RES0, 47, 17) + IDREG_FIELD(CLIDR_EL1, RES0_47, 47, 17) IDREG_FIELD(CLIDR_EL1, Ttype7, 45, 2) IDREG_FIELD(CLIDR_EL1, Ttype6, 43, 2) IDREG_FIELD(CLIDR_EL1, Ttype5, 41, 2) @@ -59,10 +60,10 @@ IDREG_START(CLIDR_EL1) IDREG_END(CLIDR_EL1) =20 IDREG_START(CTR_EL0) - IDREG_FIELD(CTR_EL0, RES0, 38, 26) + IDREG_FIELD(CTR_EL0, RES0_38, 38, 26) IDREG_FIELD(CTR_EL0, TminLine, 32, 6) - IDREG_FIELD(CTR_EL0, RES1, 31, 1) - IDREG_FIELD(CTR_EL0, RES0, 30, 1) + IDREG_FIELD(CTR_EL0, RES1_31, 31, 1) + IDREG_FIELD(CTR_EL0, RES0_30, 30, 1) IDREG_FIELD_START(CTR_EL0, DIC, 29, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -80,28 +81,28 @@ IDREG_START(CTR_EL0) IDREG_FIELD_ARCH_VAL(2) IDREG_FIELD_ARCH_VAL(3) IDREG_FIELD_END(CTR_EL0, L1Ip) - IDREG_FIELD(CTR_EL0, RES0, 4, 10) + IDREG_FIELD(CTR_EL0, RES0_4, 4, 10) IDREG_FIELD(CTR_EL0, IminLine, 0, 4) IDREG_END(CTR_EL0) =20 IDREG_START(DCZID_EL0) - IDREG_FIELD(DCZID_EL0, RES0, 9, 55) + IDREG_FIELD(DCZID_EL0, RES0_9, 9, 55) IDREG_FIELD(DCZID_EL0, TBS, 5, 4) IDREG_FIELD(DCZID_EL0, DZP, 4, 1) IDREG_FIELD(DCZID_EL0, BS, 0, 4) IDREG_END(DCZID_EL0) =20 IDREG_START(GMID_EL1) - IDREG_FIELD(GMID_EL1, RES0, 4, 60) + IDREG_FIELD(GMID_EL1, RES0_4, 4, 60) IDREG_FIELD(GMID_EL1, BS, 0, 4) IDREG_END(GMID_EL1) =20 IDREG_START(ID_AA64AFR0_EL1) - IDREG_FIELD(ID_AA64AFR0_EL1, RES0, 32, 32) + IDREG_FIELD(ID_AA64AFR0_EL1, RES0_32, 32, 32) IDREG_END(ID_AA64AFR0_EL1) =20 IDREG_START(ID_AA64AFR1_EL1) - IDREG_FIELD(ID_AA64AFR1_EL1, RES0, 0, 64) + IDREG_FIELD(ID_AA64AFR1_EL1, RES0_0, 0, 64) IDREG_END(ID_AA64AFR1_EL1) =20 IDREG_START(ID_AA64DFR0_EL1) @@ -145,18 +146,14 @@ IDREG_START(ID_AA64DFR0_EL1) IDREG_FIELD_ARCH_VAL(5) IDREG_FIELD_ARCH_VAL(6) IDREG_FIELD_END(ID_AA64DFR0_EL1, PMSVer) - IDREG_FIELD_START(ID_AA64DFR0_EL1, CTX_CMPs, 28, 4) - IDREG_FIELD_ARCH_VAL(15) - IDREG_FIELD_END(ID_AA64DFR0_EL1, CTX_CMPs) - IDREG_FIELD(ID_AA64DFR0_EL1, RES0, 24, 4) + IDREG_FIELD(ID_AA64DFR0_EL1, CTX_CMPs, 28, 4) + IDREG_FIELD(ID_AA64DFR0_EL1, RES0_24, 24, 4) IDREG_FIELD(ID_AA64DFR0_EL1, WRPs, 20, 4) IDREG_FIELD_START(ID_AA64DFR0_EL1, PMSS, 16, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64DFR0_EL1, PMSS) - IDREG_FIELD_START(ID_AA64DFR0_EL1, BRPs, 12, 4) - IDREG_FIELD_ARCH_VAL(15) - IDREG_FIELD_END(ID_AA64DFR0_EL1, BRPs) + IDREG_FIELD(ID_AA64DFR0_EL1, BRPs, 12, 4) IDREG_FIELD_START(ID_AA64DFR0_EL1, PMUVer, 8, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -209,20 +206,14 @@ IDREG_START(ID_AA64DFR1_EL1) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_ARCH_VAL(2) IDREG_FIELD_END(ID_AA64DFR1_EL1, SPMU) - IDREG_FIELD_START(ID_AA64DFR1_EL1, CTX_CMPs, 24, 8) - IDREG_FIELD_ARCH_VAL(0) - IDREG_FIELD_END(ID_AA64DFR1_EL1, CTX_CMPs) - IDREG_FIELD_START(ID_AA64DFR1_EL1, WRPs, 16, 8) - IDREG_FIELD_ARCH_VAL(0) - IDREG_FIELD_END(ID_AA64DFR1_EL1, WRPs) - IDREG_FIELD_START(ID_AA64DFR1_EL1, BRPs, 8, 8) - IDREG_FIELD_ARCH_VAL(0) - IDREG_FIELD_END(ID_AA64DFR1_EL1, BRPs) + IDREG_FIELD(ID_AA64DFR1_EL1, CTX_CMPs, 24, 8) + IDREG_FIELD(ID_AA64DFR1_EL1, WRPs, 16, 8) + IDREG_FIELD(ID_AA64DFR1_EL1, BRPs, 8, 8) IDREG_FIELD(ID_AA64DFR1_EL1, SYSPMUID, 0, 8) IDREG_END(ID_AA64DFR1_EL1) =20 IDREG_START(ID_AA64DFR2_EL1) - IDREG_FIELD(ID_AA64DFR2_EL1, RES0, 28, 36) + IDREG_FIELD(ID_AA64DFR2_EL1, RES0_28, 28, 36) IDREG_FIELD_START(ID_AA64DFR2_EL1, TRBE_EXC, 24, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -235,7 +226,7 @@ IDREG_START(ID_AA64DFR2_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64DFR2_EL1, SPE_EXC) - IDREG_FIELD(ID_AA64DFR2_EL1, RES0, 8, 8) + IDREG_FIELD(ID_AA64DFR2_EL1, RES0_8, 8, 8) IDREG_FIELD_START(ID_AA64DFR2_EL1, BWE, 4, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -248,7 +239,7 @@ IDREG_START(ID_AA64DFR2_EL1) IDREG_END(ID_AA64DFR2_EL1) =20 IDREG_START(ID_AA64FPFR0_EL1) - IDREG_FIELD(ID_AA64FPFR0_EL1, RES0, 32, 32) + IDREG_FIELD(ID_AA64FPFR0_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_AA64FPFR0_EL1, F8CVT, 31, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -273,13 +264,13 @@ IDREG_START(ID_AA64FPFR0_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64FPFR0_EL1, F8MM4) - IDREG_FIELD(ID_AA64FPFR0_EL1, RES0, 16, 10) + IDREG_FIELD(ID_AA64FPFR0_EL1, RES0_16, 16, 10) IDREG_FIELD_START(ID_AA64FPFR0_EL1, F16MM2, 15, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64FPFR0_EL1, F16MM2) - IDREG_FIELD(ID_AA64FPFR0_EL1, RES0, 8, 7) - IDREG_FIELD(ID_AA64FPFR0_EL1, RAZ, 2, 6) + IDREG_FIELD(ID_AA64FPFR0_EL1, RES0_8, 8, 7) + IDREG_FIELD(ID_AA64FPFR0_EL1, RAZ_2, 2, 6) IDREG_FIELD_START(ID_AA64FPFR0_EL1, F8E4M3, 1, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -331,7 +322,7 @@ IDREG_START(ID_AA64ISAR0_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64ISAR0_EL1, RDM) - IDREG_FIELD(ID_AA64ISAR0_EL1, RES0, 24, 4) + IDREG_FIELD(ID_AA64ISAR0_EL1, RES0_24, 24, 4) IDREG_FIELD_START(ID_AA64ISAR0_EL1, Atomic, 20, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(2) @@ -355,7 +346,7 @@ IDREG_START(ID_AA64ISAR0_EL1) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_ARCH_VAL(2) IDREG_FIELD_END(ID_AA64ISAR0_EL1, AES) - IDREG_FIELD(ID_AA64ISAR0_EL1, RES0, 0, 4) + IDREG_FIELD(ID_AA64ISAR0_EL1, RES0_0, 0, 4) IDREG_END(ID_AA64ISAR0_EL1) =20 IDREG_START(ID_AA64ISAR1_EL1) @@ -519,7 +510,7 @@ IDREG_START(ID_AA64ISAR2_EL1) IDREG_END(ID_AA64ISAR2_EL1) =20 IDREG_START(ID_AA64ISAR3_EL1) - IDREG_FIELD(ID_AA64ISAR3_EL1, RES0, 48, 16) + IDREG_FIELD(ID_AA64ISAR3_EL1, RES0_48, 48, 16) IDREG_FIELD_START(ID_AA64ISAR3_EL1, LSCP, 44, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -583,7 +574,7 @@ IDREG_START(ID_AA64MMFR0_EL1) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_ARCH_VAL(2) IDREG_FIELD_END(ID_AA64MMFR0_EL1, FGT) - IDREG_FIELD(ID_AA64MMFR0_EL1, RES0, 48, 8) + IDREG_FIELD(ID_AA64MMFR0_EL1, RES0_48, 48, 8) IDREG_FIELD_START(ID_AA64MMFR0_EL1, ExS, 44, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -736,7 +727,7 @@ IDREG_START(ID_AA64MMFR2_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64MMFR2_EL1, TTL) - IDREG_FIELD(ID_AA64MMFR2_EL1, RES0, 44, 4) + IDREG_FIELD(ID_AA64MMFR2_EL1, RES0_44, 44, 4) IDREG_FIELD_START(ID_AA64MMFR2_EL1, FWB, 40, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -802,7 +793,7 @@ IDREG_START(ID_AA64MMFR3_EL1) IDREG_FIELD_ARCH_VAL(2) IDREG_FIELD_ARCH_VAL(3) IDREG_FIELD_END(ID_AA64MMFR3_EL1, SDERR) - IDREG_FIELD(ID_AA64MMFR3_EL1, RES0, 48, 4) + IDREG_FIELD(ID_AA64MMFR3_EL1, RES0_48, 48, 4) IDREG_FIELD_START(ID_AA64MMFR3_EL1, ANERR, 44, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1056,7 +1047,7 @@ IDREG_START(ID_AA64PFR1_EL1) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_ARCH_VAL(2) IDREG_FIELD_END(ID_AA64PFR1_EL1, SME) - IDREG_FIELD(ID_AA64PFR1_EL1, RES0, 20, 4) + IDREG_FIELD(ID_AA64PFR1_EL1, RES0_20, 20, 4) IDREG_FIELD_START(ID_AA64PFR1_EL1, MPAM_frac, 16, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1084,7 +1075,7 @@ IDREG_START(ID_AA64PFR1_EL1) IDREG_END(ID_AA64PFR1_EL1) =20 IDREG_START(ID_AA64PFR2_EL1) - IDREG_FIELD(ID_AA64PFR2_EL1, RES0, 48, 16) + IDREG_FIELD(ID_AA64PFR2_EL1, RES0_48, 48, 16) IDREG_FIELD_START(ID_AA64PFR2_EL1, VMTETCL, 44, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1144,7 +1135,7 @@ IDREG_START(ID_AA64SMFR0_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64SMFR0_EL1, FA64) - IDREG_FIELD(ID_AA64SMFR0_EL1, RES0, 62, 1) + IDREG_FIELD(ID_AA64SMFR0_EL1, RES0_62, 62, 1) IDREG_FIELD_START(ID_AA64SMFR0_EL1, LUT6, 61, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1164,7 +1155,7 @@ IDREG_START(ID_AA64SMFR0_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(15) IDREG_FIELD_END(ID_AA64SMFR0_EL1, I16I64) - IDREG_FIELD(ID_AA64SMFR0_EL1, RES0, 49, 3) + IDREG_FIELD(ID_AA64SMFR0_EL1, RES0_49, 49, 3) IDREG_FIELD_START(ID_AA64SMFR0_EL1, F64F64, 48, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1209,7 +1200,7 @@ IDREG_START(ID_AA64SMFR0_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64SMFR0_EL1, F32F32) - IDREG_FIELD(ID_AA64SMFR0_EL1, RES0, 31, 1) + IDREG_FIELD(ID_AA64SMFR0_EL1, RES0_31, 31, 1) IDREG_FIELD_START(ID_AA64SMFR0_EL1, SF8FMA, 30, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1222,7 +1213,7 @@ IDREG_START(ID_AA64SMFR0_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64SMFR0_EL1, SF8DP2) - IDREG_FIELD(ID_AA64SMFR0_EL1, RES0, 26, 2) + IDREG_FIELD(ID_AA64SMFR0_EL1, RES0_26, 26, 2) IDREG_FIELD_START(ID_AA64SMFR0_EL1, SBitPerm, 25, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1235,12 +1226,12 @@ IDREG_START(ID_AA64SMFR0_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64SMFR0_EL1, SFEXPA) - IDREG_FIELD(ID_AA64SMFR0_EL1, RES0, 17, 6) + IDREG_FIELD(ID_AA64SMFR0_EL1, RES0_17, 17, 6) IDREG_FIELD_START(ID_AA64SMFR0_EL1, STMOP, 16, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64SMFR0_EL1, STMOP) - IDREG_FIELD(ID_AA64SMFR0_EL1, RES0, 1, 15) + IDREG_FIELD(ID_AA64SMFR0_EL1, RES0_1, 1, 15) IDREG_FIELD_START(ID_AA64SMFR0_EL1, SMOP4, 0, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1248,7 +1239,7 @@ IDREG_START(ID_AA64SMFR0_EL1) IDREG_END(ID_AA64SMFR0_EL1) =20 IDREG_START(ID_AA64ZFR0_EL1) - IDREG_FIELD(ID_AA64ZFR0_EL1, RES0, 60, 4) + IDREG_FIELD(ID_AA64ZFR0_EL1, RES0_60, 60, 4) IDREG_FIELD_START(ID_AA64ZFR0_EL1, F64MM, 56, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1269,12 +1260,12 @@ IDREG_START(ID_AA64ZFR0_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64ZFR0_EL1, SM4) - IDREG_FIELD(ID_AA64ZFR0_EL1, RES0, 36, 4) + IDREG_FIELD(ID_AA64ZFR0_EL1, RES0_36, 36, 4) IDREG_FIELD_START(ID_AA64ZFR0_EL1, SHA3, 32, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64ZFR0_EL1, SHA3) - IDREG_FIELD(ID_AA64ZFR0_EL1, RES0, 28, 4) + IDREG_FIELD(ID_AA64ZFR0_EL1, RES0_28, 28, 4) IDREG_FIELD_START(ID_AA64ZFR0_EL1, B16B16, 24, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1294,7 +1285,7 @@ IDREG_START(ID_AA64ZFR0_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_AA64ZFR0_EL1, EltPerm) - IDREG_FIELD(ID_AA64ZFR0_EL1, RES0, 8, 4) + IDREG_FIELD(ID_AA64ZFR0_EL1, RES0_8, 8, 4) IDREG_FIELD_START(ID_AA64ZFR0_EL1, AES, 4, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1311,11 +1302,11 @@ IDREG_START(ID_AA64ZFR0_EL1) IDREG_END(ID_AA64ZFR0_EL1) =20 IDREG_START(ID_AFR0_EL1) - IDREG_FIELD(ID_AFR0_EL1, RES0, 0, 64) + IDREG_FIELD(ID_AFR0_EL1, RES0_0, 0, 64) IDREG_END(ID_AFR0_EL1) =20 IDREG_START(ID_DFR0_EL1) - IDREG_FIELD(ID_DFR0_EL1, RES0, 32, 32) + IDREG_FIELD(ID_DFR0_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_DFR0_EL1, TraceFilt, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1367,7 +1358,7 @@ IDREG_START(ID_DFR0_EL1) IDREG_END(ID_DFR0_EL1) =20 IDREG_START(ID_DFR1_EL1) - IDREG_FIELD(ID_DFR1_EL1, RES0, 8, 56) + IDREG_FIELD(ID_DFR1_EL1, RES0_8, 8, 56) IDREG_FIELD_START(ID_DFR1_EL1, HPMN0, 4, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1380,7 +1371,7 @@ IDREG_START(ID_DFR1_EL1) IDREG_END(ID_DFR1_EL1) =20 IDREG_START(ID_ISAR0_EL1) - IDREG_FIELD(ID_ISAR0_EL1, RES0, 28, 36) + IDREG_FIELD(ID_ISAR0_EL1, RES0_28, 28, 36) IDREG_FIELD_START(ID_ISAR0_EL1, Divide, 24, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1416,7 +1407,7 @@ IDREG_START(ID_ISAR0_EL1) IDREG_END(ID_ISAR0_EL1) =20 IDREG_START(ID_ISAR1_EL1) - IDREG_FIELD(ID_ISAR1_EL1, RES0, 32, 32) + IDREG_FIELD(ID_ISAR1_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_ISAR1_EL1, Jazelle, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1455,7 +1446,7 @@ IDREG_START(ID_ISAR1_EL1) IDREG_END(ID_ISAR1_EL1) =20 IDREG_START(ID_ISAR2_EL1) - IDREG_FIELD(ID_ISAR2_EL1, RES0, 32, 32) + IDREG_FIELD(ID_ISAR2_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_ISAR2_EL1, Reversal, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1501,7 +1492,7 @@ IDREG_START(ID_ISAR2_EL1) IDREG_END(ID_ISAR2_EL1) =20 IDREG_START(ID_ISAR3_EL1) - IDREG_FIELD(ID_ISAR3_EL1, RES0, 32, 32) + IDREG_FIELD(ID_ISAR3_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_ISAR3_EL1, T32EE, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1539,7 +1530,7 @@ IDREG_START(ID_ISAR3_EL1) IDREG_END(ID_ISAR3_EL1) =20 IDREG_START(ID_ISAR4_EL1) - IDREG_FIELD(ID_ISAR4_EL1, RES0, 32, 32) + IDREG_FIELD(ID_ISAR4_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_ISAR4_EL1, SWP_frac, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1564,12 +1555,12 @@ IDREG_START(ID_ISAR4_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_ISAR4_EL1, Writeback) - IDREG_FIELD_START(ID_ISAR4_EL1, WI, 4, 4) + IDREG_FIELD_START(ID_ISAR4_EL1, WI_4, 4, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_ARCH_VAL(3) IDREG_FIELD_ARCH_VAL(4) - IDREG_FIELD_END(ID_ISAR4_EL1, WI) + IDREG_FIELD_END(ID_ISAR4_EL1, WI_4) IDREG_FIELD_START(ID_ISAR4_EL1, Unpriv, 0, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1578,7 +1569,7 @@ IDREG_START(ID_ISAR4_EL1) IDREG_END(ID_ISAR4_EL1) =20 IDREG_START(ID_ISAR5_EL1) - IDREG_FIELD(ID_ISAR5_EL1, RES0, 32, 32) + IDREG_FIELD(ID_ISAR5_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_ISAR5_EL1, VCMA, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1587,7 +1578,7 @@ IDREG_START(ID_ISAR5_EL1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(ID_ISAR5_EL1, RDM) - IDREG_FIELD(ID_ISAR5_EL1, RES0, 20, 4) + IDREG_FIELD(ID_ISAR5_EL1, RES0_20, 20, 4) IDREG_FIELD_START(ID_ISAR5_EL1, CRC32, 16, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1612,7 +1603,7 @@ IDREG_START(ID_ISAR5_EL1) IDREG_END(ID_ISAR5_EL1) =20 IDREG_START(ID_ISAR6_EL1) - IDREG_FIELD(ID_ISAR6_EL1, RES0, 32, 32) + IDREG_FIELD(ID_ISAR6_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_ISAR6_EL1, CLRBHB, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1649,7 +1640,7 @@ IDREG_START(ID_ISAR6_EL1) IDREG_END(ID_ISAR6_EL1) =20 IDREG_START(ID_MMFR0_EL1) - IDREG_FIELD(ID_MMFR0_EL1, RES0, 32, 32) + IDREG_FIELD(ID_MMFR0_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_MMFR0_EL1, InnerShr, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1696,7 +1687,7 @@ IDREG_START(ID_MMFR0_EL1) IDREG_END(ID_MMFR0_EL1) =20 IDREG_START(ID_MMFR1_EL1) - IDREG_FIELD(ID_MMFR1_EL1, RES0, 32, 32) + IDREG_FIELD(ID_MMFR1_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_MMFR1_EL1, BPred, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1745,7 +1736,7 @@ IDREG_START(ID_MMFR1_EL1) IDREG_END(ID_MMFR1_EL1) =20 IDREG_START(ID_MMFR2_EL1) - IDREG_FIELD(ID_MMFR2_EL1, RES0, 32, 32) + IDREG_FIELD(ID_MMFR2_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_MMFR2_EL1, HWAccFlg, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1784,7 +1775,7 @@ IDREG_START(ID_MMFR2_EL1) IDREG_END(ID_MMFR2_EL1) =20 IDREG_START(ID_MMFR3_EL1) - IDREG_FIELD(ID_MMFR3_EL1, RES0, 32, 32) + IDREG_FIELD(ID_MMFR3_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_MMFR3_EL1, Supersec, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(15) @@ -1824,7 +1815,7 @@ IDREG_START(ID_MMFR3_EL1) IDREG_END(ID_MMFR3_EL1) =20 IDREG_START(ID_MMFR4_EL1) - IDREG_FIELD(ID_MMFR4_EL1, RES0, 32, 32) + IDREG_FIELD(ID_MMFR4_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_MMFR4_EL1, EVT, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1862,7 +1853,7 @@ IDREG_START(ID_MMFR4_EL1) IDREG_END(ID_MMFR4_EL1) =20 IDREG_START(ID_MMFR5_EL1) - IDREG_FIELD(ID_MMFR5_EL1, RES0, 8, 56) + IDREG_FIELD(ID_MMFR5_EL1, RES0_8, 8, 56) IDREG_FIELD_START(ID_MMFR5_EL1, nTLBPA, 4, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1876,7 +1867,7 @@ IDREG_START(ID_MMFR5_EL1) IDREG_END(ID_MMFR5_EL1) =20 IDREG_START(ID_PFR0_EL1) - IDREG_FIELD(ID_PFR0_EL1, RES0, 32, 32) + IDREG_FIELD(ID_PFR0_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_PFR0_EL1, RAS, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1918,7 +1909,7 @@ IDREG_START(ID_PFR0_EL1) IDREG_END(ID_PFR0_EL1) =20 IDREG_START(ID_PFR1_EL1) - IDREG_FIELD(ID_PFR1_EL1, RES0, 32, 32) + IDREG_FIELD(ID_PFR1_EL1, RES0_32, 32, 32) IDREG_FIELD_START(ID_PFR1_EL1, GIC, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -1958,7 +1949,7 @@ IDREG_START(ID_PFR1_EL1) IDREG_END(ID_PFR1_EL1) =20 IDREG_START(ID_PFR2_EL1) - IDREG_FIELD(ID_PFR2_EL1, RES0, 12, 52) + IDREG_FIELD(ID_PFR2_EL1, RES0_12, 12, 52) IDREG_FIELD_START(ID_PFR2_EL1, RAS_frac, 8, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -2006,14 +1997,14 @@ IDREG_START(MIDR_EL1) IDREG_END(MIDR_EL1) =20 IDREG_START(MPIDR_EL1) - IDREG_FIELD(MPIDR_EL1, RES0, 40, 24) + IDREG_FIELD(MPIDR_EL1, RES0_40, 40, 24) IDREG_FIELD(MPIDR_EL1, Aff3, 32, 8) - IDREG_FIELD(MPIDR_EL1, RES1, 31, 1) + IDREG_FIELD(MPIDR_EL1, RES1_31, 31, 1) IDREG_FIELD_START(MPIDR_EL1, U, 30, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) IDREG_FIELD_END(MPIDR_EL1, U) - IDREG_FIELD(MPIDR_EL1, RES0, 25, 5) + IDREG_FIELD(MPIDR_EL1, RES0_25, 25, 5) IDREG_FIELD_START(MPIDR_EL1, MT, 24, 1) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -2024,7 +2015,7 @@ IDREG_START(MPIDR_EL1) IDREG_END(MPIDR_EL1) =20 IDREG_START(MVFR0_EL1) - IDREG_FIELD(MVFR0_EL1, RES0, 32, 32) + IDREG_FIELD(MVFR0_EL1, RES0_32, 32, 32) IDREG_FIELD_START(MVFR0_EL1, FPRound, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -2063,7 +2054,7 @@ IDREG_START(MVFR0_EL1) IDREG_END(MVFR0_EL1) =20 IDREG_START(MVFR1_EL1) - IDREG_FIELD(MVFR1_EL1, RES0, 32, 32) + IDREG_FIELD(MVFR1_EL1, RES0_32, 32, 32) IDREG_FIELD_START(MVFR1_EL1, SIMDFMAC, 28, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -2102,7 +2093,7 @@ IDREG_START(MVFR1_EL1) IDREG_END(MVFR1_EL1) =20 IDREG_START(MVFR2_EL1) - IDREG_FIELD(MVFR2_EL1, RES0, 8, 56) + IDREG_FIELD(MVFR2_EL1, RES0_8, 8, 56) IDREG_FIELD_START(MVFR2_EL1, FPMisc, 4, 4) IDREG_FIELD_ARCH_VAL(0) IDREG_FIELD_ARCH_VAL(1) @@ -2119,17 +2110,13 @@ IDREG_START(MVFR2_EL1) IDREG_END(MVFR2_EL1) =20 IDREG_START(REVIDR_EL1) + IDREG_FIELD(REVIDR_EL1, VAL, 0, 64) IDREG_END(REVIDR_EL1) =20 IDREG_START(SMIDR_EL1) - IDREG_FIELD(SMIDR_EL1, RES0, 60, 4) - IDREG_FIELD_START(SMIDR_EL1, NSMC, 56, 4) - IDREG_FIELD_ARCH_VAL(0) - IDREG_FIELD_ARCH_VAL(15) - IDREG_FIELD_END(SMIDR_EL1, NSMC) - IDREG_FIELD_START(SMIDR_EL1, HIP, 52, 4) - IDREG_FIELD_ARCH_VAL(0) - IDREG_FIELD_END(SMIDR_EL1, HIP) + IDREG_FIELD(SMIDR_EL1, RES0_60, 60, 4) + IDREG_FIELD(SMIDR_EL1, NSMC, 56, 4) + IDREG_FIELD(SMIDR_EL1, HIP, 52, 4) IDREG_FIELD(SMIDR_EL1, Affinity2, 32, 20) IDREG_FIELD_START(SMIDR_EL1, Implementer, 24, 8) IDREG_FIELD_ARCH_VAL(0) @@ -2158,7 +2145,7 @@ IDREG_START(SMIDR_EL1) IDREG_FIELD_ARCH_VAL(2) IDREG_FIELD_ARCH_VAL(3) IDREG_FIELD_END(SMIDR_EL1, SH) - IDREG_FIELD(SMIDR_EL1, RES0, 12, 1) + IDREG_FIELD(SMIDR_EL1, RES0_12, 12, 1) IDREG_FIELD(SMIDR_EL1, Affinity, 0, 12) IDREG_END(SMIDR_EL1) =20 --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238118; cv=pass; d=zohomail.com; s=zohoarc; b=lE9Ctv4sMr85i3WAorhcX+DFYicv00lZ8qg3fZFslyaWa6dQQMK6XdcMYBDVkeD74b/FyPaCtre6tXwzwcPP/FALd8KPlXEcAvMZie9FF0wAZIEUNRW8ItWOeZ3K/uAQYhCmqfWVVsFSWMgdpEZ5W+/NCghn2XTNtiis/kdYn7A= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238118; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1rPYAEe28VKl3zt74hrITF/9pIZB2AyzLLGJGVfteR4=; b=USUghOrM/nxCJ+2xi2x8Tif8seaTMDIfPl2oZSkkDdB+5EGU/AY9nfz13ZN9DPFbSdbmphdK2CzTeH9EYichj2tAt6h4vlEoRNRcumAB/5CMvHv3oTvGQIaKDS44M15ldRA1cCZL6XDJdhdWgPSWSBzRtGRfMgtq7b03dWLk6kw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178423811830662.521120725321225; Thu, 16 Jul 2026 14:41:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToO-0001rr-Oi; Thu, 16 Jul 2026 17:40:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToL-0001la-8Z; Thu, 16 Jul 2026 17:40:05 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToD-0005sk-Uj; Thu, 16 Jul 2026 17:40:04 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhn1763910; Thu, 16 Jul 2026 14:39:34 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-5 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:33 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:30 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=1rPYAEe28VKl3zt74hrITF/9pIZB2AyzLLGJGVfte R4=; b=DZaIcmdljQYf4twzEqmJvr1iu3zKcoySm6ct4deuL9P/BeoGHl5HstAgu zfrXt5dP0B4sBmTPx7jIgVl2m99rko8vGOtGQgQOySPmrOAHCcjkI18OsX/8QGte iEZxoPdEcmlar2KtL+qfyOIKPYz67AEAWqjd8BzMFWCFPwCwtVEaDVWwidJZfT6v 09HMrwO4/levw4LGh4Y3Id55Upd9n6SweuKP4XSkRS9LR0D17lzlqT+ALn3jDoNb 8RvuFiAJkW1Gg6sn4lexS/+fzHmMhynpKHWZFGUqeQwNy8DP2y8Zhxmi+uxQlfeU lDSpM9jIGth9a8gGbPkL/CELcKuCg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XIOdxYK23udIaZY5soSl9lTKEtwKYecvsbNpmmihHNpoj6G3EQYCj3qYLsC72ZEtt3rCwFkR9uE+A1cKmy1+s0Avq10kTQ+qw50q4mn+2OyGrA3DZn3A5G2Beh88wRNp7kz25tq9ltNdsQ+1DP8e3oJk/V/C+SJT63vmnqG3jKC/pLoFgeyCjXfTb9JCnjViY6IpgXy2T+c15wcAxG9oFcE3fi2dj/RnqfKy3FfawTFaLqtNOlF/6tu0SzymVY13we2vfJ6akzqzHhQjFfvo57F99paBjmvid8ErYUPBjnsDMfyVyp6fgtgIaukQ3WPWPg2CiWTYGGo/I74v+64EdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1rPYAEe28VKl3zt74hrITF/9pIZB2AyzLLGJGVfteR4=; b=xQuUhkUGM79cjiLcdY/OdsruOLssStOlAj2MNMKGlO/wDuiGbfcPi5iomZ80St+3W7oYAiw4vmgbptbKPs/49bWtU4wluTdfPfixj25kkZYnZ2gvdh4c47pXojMs716GgBtcvsE/A2oZlpl6OQvGiAg0jrPv2C1Z+nVts6QXGRvhmTisnr9O4vpesNmatoSJuuiHKC/xgwDYtYgmPh4u67/6CjuGqAB4tmmDCX94ojG7Y9k3HMFAxYgQLym8CKN+1gK8XhZTZHUBhnztvgBG4IFv+ciOXnBZXQp9QuUA3ND8hlXEeJ43lr8d1e0bFhI9q6mdW8iArPJ/uUT5uFZPyg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1rPYAEe28VKl3zt74hrITF/9pIZB2AyzLLGJGVfteR4=; b=nZizmDbvEypg7urNmJpC1/yuH/hKg/p673EvDPMsWGYaqmUUVn28FwuVg8pp/A0sb3LZuGUzNvLND677uCLjFLJuJr8VOV6tTqK5FWppy+FDvLXYyhHO3zf1bGMkJU859ixGllQnL3ogz4e+bgifB9Ge7rNVZ0DWWlvNQdBLh0pBRzxotCGB4ozEvZ7oRXt7xJDdsgJmRkOc7f6/bL88LE13KHo1s8NoUglK1vZamyC4rqTMqT4mOsExiuAIws3t7kwnHs3c2uXLXIc1vvyiBRpa6fDkiVle6KNrLCRdNSHH1toncyX1G7Krw8b5i60KOWe0uAeij1KhA5Pws3Bu+A== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 04/19] target/arm: expose all ID regs fields as properties Date: Thu, 16 Jul 2026 21:38:43 +0000 Message-ID: <20260716213858.609699-5-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: baf552d6-9abd-49ed-3a08-08dee382b7b6 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|6133799003|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: SQnMoBrEnNOIl4NcRkR9RkPS4idxhwetcb8Q5eScVuI8N4ogPKpeRLZPh6ry0uwvoA1uyTlGbi5fXxgojAUuOInIrYVDThUK2CKgEJiofM73RboK9yalVdsmQcRAgvNK0aXQo2E4kZyhgWgKMgmIXUvXZu+/Av/nPdSy9ZrcmGEVRPBbZUmYI3KNL84ACm9y9CxmIPXxvgd32NtgCjy/kRD7AS6vnNpVxOVfG372OW2kwoBMUuKVgGsSkfIQ9VpxirWZdoiyDDI8B4z0C1p/aOgX/oSt6b1ChVxdVI9hYZAQQEMwGB6JsYXNioO0ayUHaGq3nGUHj6BiOme9m23NNnlxWMb+K8A7jTZEMvqvPUbm/s2xsLzn4Espmspk/6+FQuysipT9TnilpKBOZicGCVjFiRzyiusaTqvl4BnigNBQXKSctsvRx5sB1MA9RjP2w7nWCZh8UGSGOFdAdjyCOyx33e/BL9mbhTiSGGJehDu5BcslpgOyb367+OuBiJEWOYrH6aTNHaejNL2CieZGok5v6zZYoZvKPYsSvLcbPGKhbGxkY7C4Ww0TpJPIg+64IkIWxMUHFYyGtdqVaU2EqjOQNCXMhmLv5dIm24MYyUjQGqxHFDEvPRlIZvwIb15V39BWBYkpj6LFBRBrmaZ1IKhYgXuzK59dboCiHfEBlgQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(6133799003)(22082099003)(18002099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?q2lCojjj7cDtVOp9l6k/NNuB/HWtrWml48ZYd8l7/4kZmCOIj//omrPhqKd+?= =?us-ascii?Q?vAD4tX8HUiWAV4rHrB6yvYxNLPCRt+Ak7azEtfpv9sXMyjA1LI0glUlNGiJI?= =?us-ascii?Q?ay+SoRU9gAKFM/+mS5Ym/qrp2dI3gcyZG7sYKnJvwMW1e1QS4pX+QddohCCR?= =?us-ascii?Q?PNXWTtjfE+so2I9jFQmisnEhnSi36IPRH9men6yvQOOl/NF5dpsuXmRbBwSB?= =?us-ascii?Q?WEwVO35YcYNVI43CXk6nTqSVJYK7wsGgVEs/xTZ+F5psh51/BZsL99fi6/Rz?= =?us-ascii?Q?WK2qbAyYmgAJFy3tuHarzpwMS+e2u9+nKAQdhpbu0feqVXIwI6stjzeC8aBZ?= =?us-ascii?Q?PSowe0cXryeaoXa/WnLPVnoX6UlHEUqgphjBN3kdFzomB5vA4wBcEvo8As3n?= =?us-ascii?Q?cyA+mEAut7gMrcZw+QY2GRA83IRz6InErTm6O9FApTy/krALpkqwG7gW0cGN?= =?us-ascii?Q?lELD1RQnend1FFJ68anFBXpsiZvI2tMox+5CX4LFauaC0P531/sU1tKLuCZd?= =?us-ascii?Q?R2vVSVyYpdGo5iU7Pixcyftgr3AEyOXN/zxGJONEZmahzeOYXAkHvkI83gz4?= =?us-ascii?Q?Lyr6/z8iZrYPPVm/9L+zXxruIyapXCLE/EujCF/syItqRP5eD0finqFT/hCe?= =?us-ascii?Q?EyU2A7AKj3P561idg2ACSUFYxtM29XBCedphA/WEzGmgOwkBd+4Glvi8odS/?= =?us-ascii?Q?s2dhGuBWaFeYIwwdrSZk3O71X0crAu4mua/QTCuo5hZMJkpgEzY/IYYKhnuW?= =?us-ascii?Q?ptd39j4DuYWemKbJRVW5dXtda/uubrAiWf0F60huFqozXGk8z2BZjJ/R0Ruj?= =?us-ascii?Q?MINr83oZ4YFgdmyJ/owTBGTiUsLM7MjkxP66ZwLvQrv1zYX7Gh6o/6/9beAq?= =?us-ascii?Q?0V7arUGdxOo396qedW4PGNioD+aHrcu/Fap76aq2Rqp4fi/ZrWhvSgWn1BZK?= =?us-ascii?Q?A6eSh7/K42X2hbZ0f2Ucy10LG9PhjsO8GTxzxUjKBwJS7rrmdn5jGsWxKUp8?= =?us-ascii?Q?atUdCizDcnRhXsND8dBfyYOPRow6Rq+k+TiEyI5IXAX1C1Qne2dmZCEBjkGl?= =?us-ascii?Q?8yQeOJpHwWls0yYSkrAXuneVBcZWVAK1bLOG2B/Ww6BSUOncykZygOwnWZw3?= =?us-ascii?Q?tide/APHDIMORsWRuu52bXpNx5gO/Wo1NPx+qB1QWZIRDeLsbvMLiUsRA9vL?= =?us-ascii?Q?dkyQs7zXlOkUymkjuCNbCMvyMegI5AtrKifJLcBJPqJ6604sp3k/srgJN6ba?= =?us-ascii?Q?5WzxB7jRYawMofMTnv0krq6SW8ldbYaXP5Dq34eRNqZr4pA8N2aXw0cJHsi9?= =?us-ascii?Q?6XslrOPao2X0JoiHjnhMGRpR/5vvFjIMz1TNLeu/qMZyq/6Qbhd6nDeab/RH?= =?us-ascii?Q?dKvQaFeGo5vuHRw/Kb52iZWG2hR994Oknbov5fmIFBvvsIWvx3tSuqV+osDu?= =?us-ascii?Q?u0V3f76qO3xq9TR63ceMTNMVCw4majVzTY4HoCId7tiXwck+HfLxCfR679yL?= =?us-ascii?Q?tG89GGmKeVN3AM2YDxZuMO8DwKHr3Ybvubk15KHj5+vP7g10D+h8tHIbimfX?= =?us-ascii?Q?0NwTI8XKN9f8SCteowxNLf0JLpmcCrtFm86gZQ1xuNx+eU6BV44kaZb0k7hK?= =?us-ascii?Q?gbNq/n7VZIEugBZMzR0popMnWFsn6/cvo7b9+ZrO7j6MvVhnEEgCoLL1h7l4?= =?us-ascii?Q?ClqugvhJTYsXR6L6eACrHIonyFqAVWpvaGINi3bY0NhOh3+9lwlYIlq4ZuHy?= =?us-ascii?Q?SpbeSgxBUWdGIiAeovm1XuJXeGXpMDc=3D?= X-Exchange-RoutingPolicyChecked: mprU8wCoDcLJOfJkQnCNBM2+DOLK57Vsr+3yk9XG7VFZKpJ539MMx8N5lZFjwRV+tnRgeQiHOvNQ2RwEkDnDxiJyBJ7dgUtTWsXGg+QtmZXHQJTCmswz2/iXaudqnWElqEERkHBXLoaFBxEBtgIczgZwo+gia7GAzfcRz6u3Kks4QoMY5c/MQNF8PDq060tsiek6zB83IUPVuZVdDz0WQqpkukKb7LlOPWK+xPDr9x4tEa5YbJ54eUL5GwLbcAZpQLzzHU0+kVKW8ly5rqMU7ymB1H9cqhHLtQ4/LoNpgLuZ3zqmQTv8RQ7dM/T0jeai/z+dkmuh98A7ggWpmW2BCA== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: baf552d6-9abd-49ed-3a08-08dee382b7b6 X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:30.2099 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gct7W8yJoP+9tDIqqCFzGlZgVUWdgAGvOVMsvlGi5HiRBg3s667vvpjPoH3y4zf3ycg0O8ZQhLe4h7lE4TwMtJmeFBN4v56xE5/XlozmFcw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX+1RYLvP9h1Bw T7xO49TqeZw/VJ+Xww++9uH0yGb88S0fw7EZcb6HNP2F0JwPmnupyqe8dos00xny2zz4vfdemp0 R53AUnxWpR6qU8luGu9dBOca7eqV14heTzVoZjR79p7Oz2rpN7hsgw4I07fBanRQPMslaTIXuZ9 EajsFEI5TcXpiwOETbbvPFLMdhKg3W5I1SgJ2hazelW0O8qvbsHQC1fiX3rOui7KZu0Sbb+2XpN UJ9EkNjKihX7BX1ATEFtv5bbrYglgP0IlmVnQfo2+bGiVRX2VtdSSXR6NI++ncfgyiS8cke29fi oRqPsQ1ycjRPqsBX45SGB5cwPjBRXgoIFU5Uo8E+kgpdK8w1Xc6QVIiGFsSB8pUyojG/YB4D6FJ bs7ckr4nCz6UfVz1osytR+ImIFGJ5Czyt7LV5hZtcD8KhoOJ7hrqmCS++vKwbUg69ds7bz7Yo1x XkVtGIftYXSeVkHSB1A== X-Proofpoint-GUID: jhr5thzBiXAkC2h4484wCb9-uPvYttSL X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX+/LfOSAkEZ+l 3FG8vb1CK/JzUtdoONBhDm0+dMWXqHMw3l6XqsSzXqzzlx1qjXEkA3krhOnoXGXC0GITQlXk5Fz bs1FGcYa/l8k32GYLRd1IZfNRnwhyrA= X-Proofpoint-ORIG-GUID: jhr5thzBiXAkC2h4484wCb9-uPvYttSL X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f96 cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=yqO6HB84dvTlIR-rmkgA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238119135158500 Content-Type: text/plain; charset="utf-8" Upcoming named cpu models layer requires exposing all the ID register fields as properties. While doing so also move the code to cpu64.c to make it accelerator-agnostic, and rename the function to `aarch64_add_idregs_properties()`. This makes porting this solution to other accelerators easy in future. Signed-off-by: Khushit Shah --- target/arm/cpu64.c | 116 +++++++++++++++++++++++++++++- target/arm/internals.h | 3 + target/arm/kvm.c | 151 ---------------------------------------- target/arm/kvm_arm.h | 8 --- target/arm/trace-events | 4 +- 5 files changed, 119 insertions(+), 163 deletions(-) diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 92a01d4ce7..cdad0fc46d 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -38,6 +38,7 @@ #include "internals.h" #include "cpu-features.h" #include "cpu-idregs.h" +#include "trace.h" =20 /* convert between _IDX and SYS_ */ #define DEF(NAME, OP0, OP1, CRN, CRM, OP2) \ @@ -644,6 +645,113 @@ static const Property arm_cpu_pauth_qarma3_property = =3D static Property arm_cpu_pauth_qarma5_property =3D DEFINE_PROP_BOOL("pauth-qarma5", ARMCPU, prop_pauth_qarma5, false); =20 +#ifndef CONFIG_USER_ONLY +static void set_sysreg_prop(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp) +{ + ARM64SysRegField *field =3D (ARM64SysRegField *)opaque; + ARMCPU *cpu =3D ARM_CPU(obj); + uint64_t *idregs =3D cpu->isar.idregs; + uint64_t old, value, mask; + int lower =3D field->shift; + int length =3D field->length; + int index =3D field->index; + + if (!visit_type_uint64(v, name, &value, errp)) { + return; + } + + if (length < 64 && value > ((1ULL << length) - 1)) { + error_setg(errp, + "idreg %s set value (0x%lx) exceeds length of field (%d= )!", + name, value, length); + return; + } + + if (field->arch_vals) { + /* this field has some enum values */ + for (int i =3D 0; i < field->arch_vals_count; i++) { + if (value =3D=3D field->arch_vals[i].value) { + goto valid; + } + } + error_setg(errp, + "idreg %s set value (0x%lx) does not match any " + "arch valid enum value!", name, value); + return; + } + + /* If the field is RESx or RAZ, it should not be written anything else= */ + if (strstr(field->name, "RES0") && value !=3D 0) { + error_setg(errp, "idreg %s is RES0 field and cannot write %ld", + name, value); + return; + } else if (strstr(field->name, "RAZ") && value !=3D 0) { + error_setg(errp, "idreg %s is RAZ field and cannot write %ld", + name, value); + return; + } else if (strstr(field->name, "RES1") && value !=3D 1) { + error_setg(errp, "idreg %s is RES1 field and cannot write %ld", + name, value); + return; + } + +valid: + mask =3D MAKE_64BIT_MASK(lower, length); + value =3D value << lower; + old =3D idregs[index]; + idregs[index] =3D old & ~mask; + idregs[index] |=3D value; + trace_set_sysreg_prop(name, old, mask, value, idregs[index]); +} + +static void get_sysreg_prop(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp) +{ + ARM64SysRegField *field =3D (ARM64SysRegField *)opaque; + ARMCPU *cpu =3D ARM_CPU(obj); + uint64_t *idregs =3D cpu->isar.idregs; + uint64_t value, mask; + int lower =3D field->shift; + int length =3D field->length; + int index =3D field->index; + + mask =3D MAKE_64BIT_MASK(lower, length); + value =3D (idregs[index] & mask) >> lower; + visit_type_uint64(v, name, &value, errp); + trace_get_sysreg_prop(name, value); +} + +static int +aarch64_add_idreg_properties(Object *obj, ARM64SysReg *reg) +{ + int nb_sysreg_props =3D 0; + + for (int i =3D 0; i < reg->fields_count; i++) { + ARM64SysRegField *field =3D ®->fields[i]; + char *prop_name =3D g_strdup_printf("SYSREG_%s_%s", reg->name, + field->name); + object_property_add(obj, prop_name, "uint64", + get_sysreg_prop, set_sysreg_prop, NULL, field); + g_free(prop_name); + nb_sysreg_props++; + } + + trace_nb_sysreg_props(reg->name, nb_sysreg_props); + return 0; +} + +void aarch64_add_idregs_properties(Object *obj) +{ + for (int i =3D 0; i < NUM_ID_IDX; i++) { + ARM64SysReg *reg =3D &arm64_id_regs[i]; + aarch64_add_idreg_properties(obj, reg); + } +} +#endif + void aarch64_add_pauth_properties(Object *obj) { ARMCPU *cpu =3D ARM_CPU(obj); @@ -865,8 +973,12 @@ static void aarch64_host_initfn(Object *obj) kvm_arm_set_cpu_features_from_host(cpu); aarch64_add_sve_properties(obj); =20 - /* generate SYSREG properties according to writable masks */ - kvm_arm_expose_idreg_properties(cpu, arm64_id_regs); +#ifndef CONFIG_USER_ONLY + /* generate SYSREG properties */ + if (kvm_enabled()) { + aarch64_add_idregs_properties(obj); + } +#endif =20 #elif defined(CONFIG_HVF) hvf_arm_set_cpu_features_from_host(cpu); diff --git a/target/arm/internals.h b/target/arm/internals.h index a632584a4e..7502b6db8a 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1754,6 +1754,9 @@ void aarch64_max_tcg_initfn(Object *obj); void aarch64_add_pauth_properties(Object *obj); void aarch64_add_sve_properties(Object *obj); void aarch64_add_sme_properties(Object *obj); +#ifndef CONFIG_USER_ONLY +void aarch64_add_idregs_properties(Object *obj); +#endif =20 /* Return true if the gdbstub is presenting an AArch64 CPU */ static inline bool arm_gdbstub_is_aarch64(ARMCPU *cpu) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 892433a612..76583db3f0 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -327,157 +327,6 @@ static int get_host_cpu_idregs(ARMCPU *cpu, int fd, A= RMHostCPUFeatures *ahcf) return err; } =20 -static ARM64SysRegField *get_field(int i, ARM64SysReg *reg) -{ - for (int f =3D 0; f < reg->fields_count; f++) { - struct ARM64SysRegField *field =3D ®->fields[f]; - int upper =3D field->shift + field->length - 1; - - if (i >=3D field->shift && i <=3D upper) { - return field; - } - } - return NULL; -} - -static void set_sysreg_prop(Object *obj, Visitor *v, - const char *name, void *opaque, - Error **errp) -{ - ARM64SysRegField *field =3D (ARM64SysRegField *)opaque; - ARMCPU *cpu =3D ARM_CPU(obj); - uint64_t *idregs =3D cpu->isar.idregs; - uint64_t old, value, mask; - int lower =3D field->shift; - int length =3D field->length; - int index =3D field->index; - - if (!visit_type_uint64(v, name, &value, errp)) { - return; - } - - if (length < 64 && value > ((1 << length) - 1)) { - error_setg(errp, - "idreg %s set value (0x%lx) exceeds length of field (%d= )!", - name, value, length); - return; - } - - if (field->arch_vals) { - /* this field has some enum values */ - for (int i =3D 0; i < field->arch_vals_count; i++) { - if (value =3D=3D field->arch_vals[i].value) { - goto valid; - } - } - error_setg(errp, - "idreg %s set value (0x%lx) does not match any " - "arch valid enum value!", name, value); - return; - } - -valid: - - mask =3D MAKE_64BIT_MASK(lower, length); - value =3D value << lower; - old =3D idregs[index]; - idregs[index] =3D old & ~mask; - idregs[index] |=3D value; - trace_set_sysreg_prop(name, old, mask, value, idregs[index]); -} - -static void get_sysreg_prop(Object *obj, Visitor *v, - const char *name, void *opaque, - Error **errp) -{ - ARM64SysRegField *field =3D (ARM64SysRegField *)opaque; - ARMCPU *cpu =3D ARM_CPU(obj); - uint64_t *idregs =3D cpu->isar.idregs; - uint64_t value, mask; - int lower =3D field->shift; - int length =3D field->length; - int index =3D field->index; - - mask =3D MAKE_64BIT_MASK(lower, length); - value =3D (idregs[index] & mask) >> lower; - visit_type_uint64(v, name, &value, errp); - trace_get_sysreg_prop(name, value); -} - -/* - * decode_idreg_writemap: Generate props for writable fields - * - * @obj: CPU object - * @reg: description of the sysreg - */ -static int -decode_idreg_writemap(Object *obj, ARM64SysReg *reg) -{ - uint64_t map =3D reg->writable_mask; - int i =3D ctz64(map); - int nb_sysreg_props =3D 0; - - while (map) { - ARM64SysRegField *field =3D get_field(i, reg); - int lower, upper; - char *prop_name; - uint64_t field_mask; - - if (!field) { - warn_report("%s bit %d of %s is writable but no named field " - "in target/arm/cpu-idregs.h.inc", - __func__, i, reg->name); - warn_report("%s is target/arm/cpu-idregs.h.inc up-to-date?", _= _func__); - map =3D map & ~BIT_ULL(i); - i =3D ctz64(map); - continue; - } - lower =3D field->shift; - upper =3D field->shift + field->length - 1; - - /* Sanity check the field is not a reserved field */ - if (strstr(field->name, "RES0") || strstr(field->name, "RES1") || - strstr(field->name, "RAZ")) { - trace_unexpected_writable_reserved_field(reg->name, field->nam= e, - lower, upper); - continue; - } - prop_name =3D g_strdup_printf("SYSREG_%s_%s", reg->name, field->na= me); - trace_decode_idreg_writemap(field->name, lower, upper, prop_name); - object_property_add(obj, prop_name, "uint64", - get_sysreg_prop, set_sysreg_prop, NULL, field); - g_free(prop_name); - nb_sysreg_props++; - - field_mask =3D MAKE_64BIT_MASK(lower, field->length); - map =3D map & ~field_mask; - i =3D ctz64(map); - } - trace_nb_sysreg_props(reg->name, nb_sysreg_props); - return 0; -} - -/* analyze the writable mask and generate properties for writable fields */ -void kvm_arm_expose_idreg_properties(ARMCPU *cpu, ARM64SysReg *regs) -{ - Object *obj =3D OBJECT(cpu); - - for (int i =3D 0; i < NUM_ID_IDX; i++) { - ARM64SysReg *sysregdesc =3D ®s[i]; - - if (sysregdesc->writable_mask) { - /* - * special case REVIDR_EL1 and AIDR_EL1 which are writable but - * do not expose named fields. They will need to be handled - * separately - */ - if (strcmp(sysregdesc->name, "REVIDR_EL1") && - strcmp(sysregdesc->name, "AIDR_EL1")) { - decode_idreg_writemap(obj, sysregdesc); - } - } - } -} =20 static void kvm_arm_get_host_cpu_features(ARMCPU *cpu, ARMHostCPUFeatures *ahcf) diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h index 2b3474cc36..133a026036 100644 --- a/target/arm/kvm_arm.h +++ b/target/arm/kvm_arm.h @@ -143,14 +143,6 @@ void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu); void kvm_arm_add_vcpu_properties(ARMCPU *cpu); =20 typedef struct ARM64SysReg ARM64SysReg; -/** - * kvm_arm_expose_idreg_properties: - * @cpu: The CPU object to generate the properties for - * @reg: registers from the host - * - * analyze the writable mask and generate properties for writable fields - */ -void kvm_arm_expose_idreg_properties(ARMCPU *cpu, ARM64SysReg *regs); =20 /** * kvm_arm_steal_time_finalize: diff --git a/target/arm/trace-events b/target/arm/trace-events index e67730de6b..f33b0d821d 100644 --- a/target/arm/trace-events +++ b/target/arm/trace-events @@ -15,11 +15,11 @@ arm_gt_update_irq(int timer, int irqstate) "gt_update_i= rq: timer %d irqstate %d" kvm_arm_fixup_msi_route(uint64_t iova, uint64_t gpa) "MSI iova =3D 0x%"PRI= x64" is translated into 0x%"PRIx64 get_host_cpu_idregs(const char *name, uint64_t value) "scratch vcpu host v= alue for %s is 0x%"PRIx64 kvm_arm_writable_idregs_to_cpreg_list(const char *name, uint64_t previous,= uint64_t new) "%s overwrite default 0x%"PRIx64" with 0x%"PRIx64 -decode_idreg_writemap(const char* name, int lower, int upper, char *prop_n= ame) "%s [%d:%d] is writable (prop %s)" + +# cpu64.c get_sysreg_prop(const char *name, uint64_t value) "%s 0x%"PRIx64 set_sysreg_prop(const char *name, uint64_t old, uint64_t mask, uint64_t fi= eld_value, uint64_t new) "%s old reg value=3D0x%"PRIx64" mask=3D0x%"PRIx64"= new field value=3D0x%"PRIx64" new reg value=3D0x%"PRIx64 nb_sysreg_props(const char *name, int count) "%s: %d SYSREG properties" -unexpected_writable_reserved_field(const char *reg_name, const char *field= _name, int lower, int upper) "Unexpected writable reserved field: %s.%s [%d= ,%d], skip it ..." =20 # cpu.c arm_cpu_reset(uint64_t mp_aff) "cpu %" PRIu64 --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238155; cv=pass; d=zohomail.com; s=zohoarc; b=NR/OlL+YXxZ9TmEki8aFOsavl+VkzFbCa1kAPslQ2Ajc/yHJnPiOfQ/BZwk2N5gJcw7k5BjbqAQTxWYbU8DK+e6TnF8gKy+b9Fe/N8E+/LHCsSzMyut+nQXMUxD5V/33HXJGTK5qyDMkExM47e1X49+hRZqwxZRbiUoMTGwj7N8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238155; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=g9u+fqbpF7yk8k5adr45TG9jD3xD95QlJWbDqABRwaw=; b=KBmZCwEw+pQZuHzFYE++ktY7vPJPG9ip1sDIPS+vJEDVXBvTDh857e/yYUIXsYrtbcOiViQe95XZrtaAMcz2NT8xBeV4ZQmPiepalspvsuk38LfZkiONnGwDOJR1akfJgxL06bG8BH601oGYn7bsy12ME3FxUZRmuBBjmhiH3qI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238155391727.971888740543; Thu, 16 Jul 2026 14:42:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToL-0001ll-D8; Thu, 16 Jul 2026 17:40:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToJ-0001iv-82; Thu, 16 Jul 2026 17:40:03 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToD-0005sY-QR; Thu, 16 Jul 2026 17:40:02 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZho1763910; Thu, 16 Jul 2026 14:39:35 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-6 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:34 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:31 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=g9u+fqbpF7yk8k5adr45TG9jD3xD95QlJWbDqABRw aw=; b=EgXPwkmcTCUAeD4dW4HX8riB1IrEbixD/oqXPqQ7vV9L+nbv7b530BJpl VcsROfEIXyWQtqV4n9SBr80NcMKJjhOee+VYzv/HVK1orLa+YkNecGcTVtuoMVmF BOnGuunw0tb36Q7HEI4JuYNBGHaM+tW27Umjd6YjZA2obYcJc8O2nXKMhM8huK/2 GnzxXYbTYCtaFs6KE3E/c7bjQINtfVbLrm3caWBAXbVyjfXnwARuUKuivmcwG+Re 9r8mpPKizzcyA1WpYQmKuihSWDa3sSsSoeQUdrMPW/u/9ItIFJIJevjR+poZuAEU VyTlGBxkAVXsWVcYcozFVLKoKqx3A== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UGXtBtd25HrEbd5Mf2tU1htWrvrPjFDAkpEq3Hy7NbQHLKOYmI1n9CNg3GC71oxq47Av4mUBm5WQqeG3+edY1dFM3LEGQVMQphDzwAi8SPUhP/NQnEIj37UoWiEM0M5lW9DAUKEADHP0BiYdv0J2b8RleU0Kj0T2Xpjw5WDgiTsiR8PIfuvmH+/pu37jhuVJGPNUS4XQ+93wuSAOZByNQtG5qqoabvw8zuPEt7t9/pxykdx0jxhtLvu5kJzVoHVibr+OQSaFqimFhERCAwnhytvaAlbaKo4ing4uXVbRoPa8mQ4phYV2Kj9djWn1Cl7YMOyyigD30ThcdPA1wUUM2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=g9u+fqbpF7yk8k5adr45TG9jD3xD95QlJWbDqABRwaw=; b=UmS2iBjh+5bpL8pAOmcXHSzcKn7A0AAES9wkLwVlPYTDjI7q27rC2QlSnAPQuY2q9r07fXvN6BctxCkVNkbeiZ+aGhxqqL6IKNLY/acW/bODlFUtYP04JlcynjbWqHbP8eFfq77fu+AuW99dO4J1FJE/0Odcbq5SLZZNoYQsrxi+SBB5O/uYPE4jShkgXf97YOXBwF/4okvBRkIUn6qOG8qX5n0aOO2yUvM8GAmPniaq8XGjMVtl3RwpoUURzonJhVOGkaOpdXeC09OiSQazFleQImk3gqsOowLZpaZ6IkqjwpxHlcAGq2sS0lhjq1WTMsoE1N800NGI860bsJh25A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=g9u+fqbpF7yk8k5adr45TG9jD3xD95QlJWbDqABRwaw=; b=FUhVQksYNGnplV3m6wRYnL4ri70hkd+PCZxmiNDWjMYPdLWMJhlFv2Bmu7Eg9MFrgJj6qIRzO3MujO/2DzcKsAPyskgB9G9kl+8k36qMU08nG5tVSO3wMuMFDkc4Q+t6yp98bn+fC8hEEuxJoREUmhwmipviLNBjCEVCG0dBcHHpms6Kiv3eRtTT8T3yFvEM/KXfgFzWaUwTljp+JvkeL/kF7K8UC0bs/O/l7Bqfyu25xbDiIEb6hstoZ5Mm+b+DLxmFwhNZoY2WZFxwcL2G7hQjcTirK5xTY40VY9BTqodWaZJZrRoYEBuaVH/0O8/4G4OB4PlHFMKwQGmBx5pU6g== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 05/19] target/arm/kvm: enable writable implementation ID registers Date: Thu, 16 Jul 2026 21:38:44 +0000 Message-ID: <20260716213858.609699-6-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: 0285c0cc-d768-44f1-3131-08dee382b835 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: zL6wrMyKr2MWDx0XNd/pMMvPC7fasx9hvoMXZ0zeM6NussUVt0DMb8cjScLL6jJItXMxuGB2fOjYztuPIj9owTSAGm9bEYzYBaQ/dY6DuDPDk9YpZsJVC0nJNhvmbokY5c6U+6eqUnNq/qarZlOlwhspjrdg4ERHK/HJLH0UqGCoh7xkhgqsb0VbRcKB5ZtcIUUYabD1nQeXPN+nZe3BvR8BEutg0Zi+ImN4480LhnRwkET1c3c/CNonzWICgVjX16c2c5FggRDsLpmcKKo99x8MnZ7qxzH/QgGEGwBC5pTNv+3Pi/kRwI24fnnlOM3B5w3L6n3YA/NG+KotOR3ThZOEmkMpnaexp0yQ15RTTSuTCLCCdl0C59WCxbrtLbJYYqYSsuP/c5QbcRvv+DzLV2cO04j4VJbW7xN1QWZK7d9vj3vwCmaec9yliMPyd6TB1mY/CHBDXrRZqrKPzzZP4sRkyrcIZYNMNaaisXsQNthRAYOlERe+i1DMLdlLgWvf3hnGaDxPdqebhEkh/lHCI/+Eo6eViJCs/CQTDVpcQUc1p8w2hMvX5nd/jjlS8UMxgAUXq3wF7ZwMU9OluG7EHinaaWttUBkRUhhBbDfx/tdICmjP0SX6obKarHSbvzcnWVesclBg3WRBCVgQSzCq6AFkEDGbCX+uAyw9bQcKaZg= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(22082099003)(18002099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?k/EMYjCz/JcZIykV5Lkolewi8wpYw+dJ2LBYU58WJzuilH1Dg2ktIeD+qBtP?= =?us-ascii?Q?qPDEPwZCPhengi4625yzZ+O7UAfrngwTEy3zdjsHMAff15DRpqGKRawNlgnh?= =?us-ascii?Q?rNDtKwHhOkiHIUHa+GQeKoux7FEIHdLCfeptbS3q9l1z8qmR4MQi+EYQJyu7?= =?us-ascii?Q?wD9R36umi+rhyeuZLS7Cn/EjKzFvZR2jIfFbC08mW8FVVcngNh07kjdLOo2u?= =?us-ascii?Q?iOlg85+AYKYbeoG7fPs/TpSC0mwyKdNLAjpjdk96xXmcIp3p3leaSEyg49c1?= =?us-ascii?Q?KVqk3DFiukdz4hOc8j8x6mNSvO+clfYhj/k6w9qWCRQhBVRBAa3S/268gdOG?= =?us-ascii?Q?a7bqPNJQxJVoqCHmPhlcdMNPpxDnfkLZRgIczNCXrSNV7DZeIuI0uwpNkCzF?= =?us-ascii?Q?ZPI4XSZYM7/cV39hghbUfVBO3fEmjoXf6ikfu2Jl0dYjtIEnBc/W1fxvtJ1s?= =?us-ascii?Q?Km19jNvTj8+78EmpmqVPRRFmwVeKs9aehuaYAh2kwNu1ery7Tt/LYqPusoqo?= =?us-ascii?Q?DavspSDS3fkQ4MJkKJbGdPAW/7pUeXw2u6wtP2qDboMQgj59H3B+2Ndk3x/w?= =?us-ascii?Q?2Sokz1AzVVh/swHh8I3sBoS+SNUm4QTYh5aWJIA4ql4f9FXh5nu80uZe2L0+?= =?us-ascii?Q?RIfoDpYUrM2HUuycedLHUBupXVZsd960Kj8Wp7ImlXfdswkfU7/sEKNywux4?= =?us-ascii?Q?kmOr0hJz1JyQoinf4CcqMUIg/9nuwGUDfYbxE0NcoFrsf77/aipNkfEBSh48?= =?us-ascii?Q?WlyH0v+omCF4n/IvF5SIU4ZTkKfl8SjzhN01fFnGQ+NZlOaZaarNDMovoGLr?= =?us-ascii?Q?wdXhZBze9bZeVn/zqBO0kBYvIYvQPWB/yDoYlAEyGOsnDMga/azFPuiKqAVU?= =?us-ascii?Q?ro840tH8I7pwLHeTZCBor0MwabsfvB6jRekYGwpFsV+vYdeY6XEx6ZWZfyaK?= =?us-ascii?Q?FfDysJBUw/80KrGTwLd4SlSVBmNQ3e91h0lEzhZAchriPiwfpQi3PkTvPZSy?= =?us-ascii?Q?c777S1tpn8aMIqjS3SDTfAMVUu43a3lcViTE708CH99mxsznjmtIr0VbNWdb?= =?us-ascii?Q?UZZqXxfhqQtKgd8mXp+6VsX6FF1gcMbQpkf3KIrzlU5Ur9ESnhDtWQLY4uGd?= =?us-ascii?Q?RzXpjcCsN3MMoVOoA60i170F3ghe8dvQNOmTXLWNTzyoFSNUU8PTCCzr8jw4?= =?us-ascii?Q?RPWBOWAi0FDUrmabElG11jyok2LLSinW08wApkDUK6wcYURt18WoW70gsaHs?= =?us-ascii?Q?rN5xrujx3G5VaS6KmVtS0C9w3Qc5dbL/6CNslkA+YGZOxQkJYTQ0oL3pIilv?= =?us-ascii?Q?ZHCnpnF2y/WJ8S/T0Afzlmwg9/P16I3GAAhBacmynuOuKAVxgJR8t/hMfPDr?= =?us-ascii?Q?WV+Vwq171ArGBamYafbtizm/U2hQe6LGGC9DlKD5VLCtdsCgZPd6AwfwrOnx?= =?us-ascii?Q?hnAS+2/pYmDgW3O9zUwEtumiQzjrD8wB1xEQYBDQGEaa7W5m5Wn2Ku9d776C?= =?us-ascii?Q?3vpBO+7Cx+W6dz/BXsPWHeg/aPkVDv+3EnfPZsBjLL3phGrwS092zI3N4uDy?= =?us-ascii?Q?9VkU7xShqh46WY5ojHFp5BqmTCsnuUziZ9tuP1Sputy7aTp/zCUXhqeyqKCn?= =?us-ascii?Q?3fz6nPWumJfkyibwNoEq/J2KOXy2RTA8PHJxBmkzTtuUJn9l2v4oryeGeOpJ?= =?us-ascii?Q?kbo18vWWuUmg573vvKTwMphw4m6Zwo2iIQHtnDSXjSMWQSkEEPLL7EkjLjPu?= =?us-ascii?Q?QyfAbebLd1oBuiE8dZpftqAteg5BNvw=3D?= X-Exchange-RoutingPolicyChecked: VGKMwPQhRvTl+Zf79K324EbPlYkiqD0+5hafvW6al+ej9Hw3RpN8UkSm1o6scNbZgyC4fJlt1TfwO3IcoWUVKUCwbJ/4aIAPeIPcIu3T9vSrSMNOmA9RtN75YnLJxcBTbr7+n5PS6WVwlYnqiQxQU0uDL8gtKFnNh2JaUaoyAQGn2cxiV/diEod0sNiW5/2wfyjfhSPbxuUMZbDS/IcOjytB34sWxWpl1gI1dsVTc8G6e2uZabPKPEZV1Iu1qXxERh/SQdTsJv6NcUZyGrF312cUdhvEiBGqp0RvRYw6iBNREQ8p92FYpEkOPDoEkRFE6eOREXh4qKLDa1eYM0L8yw== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0285c0cc-d768-44f1-3131-08dee382b835 X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:31.0316 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: pGPqJvsmVY0CrrxuNN1KDL30RVQdhRmSW+UariAVTeeW2hoY7VjiYNL2X3JM6iueZwQJSUsU97wuJLdbkbEY9P3N9m67FcuSX0K0vlJGsPA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX9lWg/bvuj72n S78rx5Fd6GKCHdtA1fOy4TfB5Nzw2zJuu3y3GmU4922RuYae1Kok16wnWyqH8qk1c72dVcsZGxB kHmcds1185WLQNmH3B0atikUnwxLB/US7ADSoT+DwFRR+7msWdR/SWwFRAlxZaBuK7f0Nfkg6qa oLVk4D0/D6QJQMVOH07QSvvkBcpSUD4jQpfP1lbsEwg/Yx95nr2x93bUsBEb4ZvDsszd9TDfDb5 7fRRVUqOxjKGMkT23eWjKAGl5wPNjPIguRFx5IYmowp8dOtQ7GoSACTQK6ldME544HK2LoJrKUG jUd1FAKASebfTD4QIK2gCVcdLwZMW3dHgq1FHgoS5Ek6LNFVy4qx1JXFFYhPm0+Lqoj79JeryVB MrBot13sfdSKi0TNs29OK9/GfUdtJgMjEmK3vTi2CIEROgKaJKoKQ4/7R9Pp9w72vpoGJfK3tU8 qr8xE2E0t7ZTwdEfs6w== X-Proofpoint-GUID: 1KBWOwwUFKbu0O7PHXSGl-BrbG6vLIam X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfXwDxjEfZmotd3 yB7BqbtPw2txDgDJKEvl/VDFSFpXjdPB7QY6nVoMYwOVJlIR20SSo2+3gn2oWeSwtyG6xKR2OuG RBXLVGazVQmkpG64xzKQKOZ1OwjwAn8= X-Proofpoint-ORIG-GUID: 1KBWOwwUFKbu0O7PHXSGl-BrbG6vLIam X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f96 cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=zu2ZhKAq3Qwx2YJsANoA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238158103158500 Content-Type: text/plain; charset="utf-8" Enable KVM_CAP_ARM_WRITABLE_IMP_ID_REGS if the host kernel supports it. This allows QEMU to write implementation-defined ID registers (MIDR, REVIDR) so that named CPU models can present the correct values to the guest instead of inheriting the host's identity. Signed-off-by: Khushit Shah --- target/arm/kvm.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 76583db3f0..63b3727e05 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -741,6 +741,13 @@ int kvm_arch_init(MachineState *ms, KVMState *s) } } =20 + if (kvm_check_extension(s, KVM_CAP_ARM_WRITABLE_IMP_ID_REGS)) { + if (kvm_vm_enable_cap(s, KVM_CAP_ARM_WRITABLE_IMP_ID_REGS, 0)) { + error_report("Failed to enable " + "KVM_CAP_ARM_WRITABLE_IMP_ID_REGS cap"); + } + } + if (s->kvm_eager_split_size) { uint32_t sizes; =20 --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238091; cv=pass; d=zohomail.com; s=zohoarc; b=REs73T1TuKf7UDIuU9inlCY4CZ3OhbL1Icp0fsuD8a68hT+qEJizbTOGNYAucxn+umHqUG9onO1L5y4cq7ggUbs8aTlzTh1hC9yctH1rqcIJkDm2pg5EItTj0O8fY3pXQ5oFaf+rT8jiSz/wBahgN0C2gNIMH+0M5+CzJYjRbyw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238091; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/A+Jkz61pM9EqDC1hkDgkKM3zpmOOMCHvPf1FVTDz1w=; b=bCDM54RqkR3I6T/PSyntqww6rz4zkkPGQi7JfAd4FF0Jp/SszQUDRcCIqIq1XE47QYinIXWfLokxQCkmBiK7LeVkZYsSrpp40S0KubPLMU+g7k+xmP2MDNF0u79XrHyyHAHcnrH8dO43GKBo8f/wTGFf1NPC08/3UhtXKyIllx8= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178423809143735.59402985312522; Thu, 16 Jul 2026 14:41:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToe-00022h-1k; Thu, 16 Jul 2026 17:40:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToc-00020V-HD; Thu, 16 Jul 2026 17:40:22 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToZ-0005tF-Iz; Thu, 16 Jul 2026 17:40:22 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhp1763910; Thu, 16 Jul 2026 14:39:35 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-7 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:35 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:31 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=/A+Jkz61pM9EqDC1hkDgkKM3zpmOOMCHvPf1FVTDz 1w=; b=Eaz8wyyDwEsuZbGRy1wVo0Lf+WeuOWtcr5QKZXEZFXHL11KEKGrCt1a/A R+NWlIMmIg1T/wwH+IZfj1rkv5GPDIFVPjPGTg8+Jho81Bddiwa3tFk4+CL2yH6Z LmvtsFVo+SAn6bbrMEWsGyAdmysZWarPwFomWlGAwb/5GcKIM5llXjQ2RlWekjrM OfMzKHIt2QUK4lV+pz9DkXqiCLknjZ3ccsv10S8DHjFQHTOtw1jWtM0jIXccTE0L pn+OLmWyZwj/AA8bVLKxTEGZb0mI7FFOpeRtOyathBH9TR6n1XXBrEDl/6ACHnGH 846Yqgd1+TWBBgcJ8+Es4fkyroHEA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XoGwfDQslTt2p13I48e7KhYLUj/V5SpjLXyQUsNungqJAvx9EmUvt+5aZikeaINYygEURS+5mvsl/codryvhadsCNZL1hq5CKE4wvwPs1EE3BkaiSUynX/r16kG4inMH4FqJuH8XxS6CuaR7ocfYQBTdpx/wErGKS+OlNbKML0qUTjCP8eJ2ajXIfH98W54pR0jqyCfjO5MJkXeO5U2Q+4z9O04z/xTTBEcNVKrdBSSSEXN8s1Om/0UtbHwoc8rzjC3gxadr48woN0fEtRXu6tdxI27LrLqClVU15t/kVXZPNIIO8HJtCoLN9xB08aqpzu+uZTAP0fFBC/fhB8bB5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/A+Jkz61pM9EqDC1hkDgkKM3zpmOOMCHvPf1FVTDz1w=; b=cMCf8g2/ou3AqWzjzUUj4RSo9qFY43AYbH5x/qY/nc0o6I14fhkeQ4jA67mhZAlVLiAo6TvdQRKNI9gxgU18KxcMKYo1NALkvaBi6V8Q6N/GrjqGjfm8aMRHbJMhcXWAG1zUnKrUMNlarf47n3IwZpB+1g3zulYTR92xfaqlsoGWO4g1abgmr9nnr99M2LF3AXNwvVfQyTtm8J7TbhlHmc47WdmYnzkdKzly324lo6gi2UmCJg8ATR2wJlCvjpTIXhbDeC7J+4WaSyiBSppI3htGEjKgb/KMRgT9oQAo476dpsTfzYndiHJaZYOl/kw0xmJa9QmaR6WMnZSfRGSVhg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/A+Jkz61pM9EqDC1hkDgkKM3zpmOOMCHvPf1FVTDz1w=; b=IRHrBAUgYhGw5/HcXqgjmFVaOlkFBJqoAB5dRY+qZivVYJ51DEAwIsSzsgxdNX0KWz5Bx1EZoIU+bHOObmI6fF+znFVknD8vYbVQqWzMr03McMoSw2n6mHi9D8oZznwS9+qVuhwRQlKPUhWtakzAiHJFAdn07raYugsw8OKxS4JjDQBajUjKoJe5WWIk3nhbi2SxNm8WujBmGu1JFFycAVUo4TxvSPiY6F8BrJD/B8hR/LkbDnP7F1xQgKWKbTbFfD+Q3+Vk4m3/HY5+i5gQQVl2QnYOzsy1YcA/9otq2NQW92NtlXDPRgt1VL78Yrom0P1Xd4k1T0YSw+vWjS3/pQ== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 06/19] target/arm/kvm: Read all ID registers from KVM Date: Thu, 16 Jul 2026 21:38:45 +0000 Message-ID: <20260716213858.609699-7-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: 209ede14-2ac3-4ffe-8bb6-08dee382b8aa x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|6133799003|22082099003|18002099003|56012099006|3023799007|10067099003; X-Microsoft-Antispam-Message-Info: Y/fB/mGS/BxvTXA5LA8EZ07vtfgWja28NGn0obxSGfuqqj6D+NUZLrqAH6TtfO96DwpIVKwT7oFROseOwF6q1WrPLPx6xI4xOVBRnVFZUGeawQ/IQpPxSh7CE83n4jk4Vn1RJKZ+j4B8Bpq4vGsNaP3eCKpWcB9HWV8r6A/m9+WB6WrwmKnr0TzEcLHDM0zFAieJiDin6ZPwN9K2SDLzEgi3aImJBFulJA9wMhtWoKXwmuNYeJl1UIQYLlLLBD8gId7+dTPrtFRnaAP62CLkhsOS1HTEbJVPxMO3D/8mcFAW167E8crFaUFtCWVH4GvQ7yRMwwRecs7dLidyovMBi0tBHDLAm64fVpMxOkgOvAa0BDqaSBBJowCetAHuhHySHk1BXq+tccMNny0HWyxqzA48FESV+BvgFvpVyH5mFtjDO0eHzILAksJtxeIDeQ+7fp9pstKKBoqC5nQMTotLotTgXE1wscaP/G5b8tLuPWCLNdUt1tukerDRr3SzY/XjLEIuroSJC7z9x3Vq+/oZyTmVpGxdxUG4Y9LsOL/3bqvwFJPl0p5shmrLlm9yf3n2HgBuU7LaF7Zp9SKMKF1XURGcj6ToUa9XmgLrm21ETOZK/tFP+zcMLJg1YOctufDq+OxgUKiFWs1rN+4EgwLGWLARKavHg4mSwH2lfg5hkwA= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(6133799003)(22082099003)(18002099003)(56012099006)(3023799007)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4qnPOlJ3Nlr29Gaby5yGZQ+jtTu2Fn3UMGDtv7NqSkaXVzff53fSPC7ZsbtF?= =?us-ascii?Q?B4iAZ/48Sc+CkEtz8sCxtz1hP2VBQqWukBlJBfe3Tjd80o841oBrbSNpik96?= =?us-ascii?Q?65MUyJXCchuBDJ+GECUlNDQF3DixzQRJc5tS8l1JBa/zRVvsETNrTxsosTgV?= =?us-ascii?Q?yIMPJQw4LjqOWzBJjtp92VDdUOCNaeACeQUaU3u4EGpoKVc7DtjgaH8CwADX?= =?us-ascii?Q?iV3Fwt1xMeyzmTKNaS9WxWMdTsv8v49t/tfkUNVfyCKUQQngiQXznqFG+gNx?= =?us-ascii?Q?QWSDiRWeexUDEjmporVTog/Lp3X9iolRK5XlVMLjshcau8TUMru5SE4OstwW?= =?us-ascii?Q?hbAcot7yO3mVKT5gBJdjrXH/UKoX9NNzjNqMv6PeqqG+aYrxErX9eqYgsyt1?= =?us-ascii?Q?rfUo4xGkYUWzobjk5RRoebLxbX2GF6r3idJJL4Oi1PY/RquvigXjZA5y+DSl?= =?us-ascii?Q?/pwTtj6ohiYNV2xGuwYvRcxCXpCvBEs3I1oBV8eh91dKCHn1CoIfYtRlKmqh?= =?us-ascii?Q?SLJqrTZvvaOHOTID34+fGa6bwlMF6fKKFUQay2Xsg2q3okdIGNQBvZ+P+oyi?= =?us-ascii?Q?rKX1TUoKT5hwYp5CpTOX3kzDmZjvPUtn9lz0zoCNhzHPUktfCNfaenO57/6B?= =?us-ascii?Q?nPeHYnLI2SoI2Dzv8ctM87Ixv/7zijh4pGVBqMoFHK7PRxQYEQOPDtEtWB4T?= =?us-ascii?Q?wx/yAHpd8rpMlsHuf4w6EQD+BGfCzKaC9zKcNBubJ0cIT8RBVEKRjNyZbBPj?= =?us-ascii?Q?4sfarVGxHUm8axREQgHBpJ6fPkLVmGF5oNYYiPvuMux9IFmERg/ZtbI+8gNB?= =?us-ascii?Q?8g/9dKsU4BkME7qBWCzx3fTkhb1Q2TKStX/5sPMRWhLZyAHx2uEUpAaRoGea?= =?us-ascii?Q?U9966xkh1TYjWdb3cFH7WYZC0QHt3vfOjGi5MW4IUdbJO67siZsqH3DGK7j3?= =?us-ascii?Q?H3FfjnP+QQ4KZxKiMDyag0i7srv0AhAPMBuIjtOTp4kjSqP98om4rjWdnYVl?= =?us-ascii?Q?HCiOOme+tIode9YkND9p7maaaZtk6DyoeEEbHd/dQtbbEzj8jKM3kJtqZswu?= =?us-ascii?Q?/ZwjfIu/3pjKYGl+TefoPdklwynsD23BvkFZGtHpEhallNGzxLUHfSXAqv6+?= =?us-ascii?Q?m4UplMcLMlIL+ioSK1XwIHfMWREsAVwUeHdldNHODdHECRtp5lfqHnMujC0v?= =?us-ascii?Q?Ntc9poj38CI/G/Ax1pTItJ5QFqpkEgUqcfl+XnkJz/3nAa//zEEuA8xikhPy?= =?us-ascii?Q?gJygB8gtc4NdLTvttVb9tjzfLEPzcL5zSNWjJ/VOZQeXDODF9HHjxC3JMhF6?= =?us-ascii?Q?o0O8cF76CGHoAzdtnfeDhctgMIISWrMuzSeAnG7I70r1Mcf3i1GF5yiHL9t/?= =?us-ascii?Q?7wCLVSwDepeDqY80ERC++uu93lQ9MZjNX6niHrjV5BmiyxtZBmyppGkNJQXq?= =?us-ascii?Q?hPTSv7qxpdp1zt4FprfFgmgqSJcnhGIveJJtLYjkr+ZtqqNUxj4PQ7emwyyO?= =?us-ascii?Q?PZeIT+IugQ2arVt4mLZohlKF5BBPrWwmA7MwtWO/7mKRMIJ5ZR3ZD7cWcCJd?= =?us-ascii?Q?YIBP8jZUzO3q6reW+oLos5uQ3Ct05UMYHHBGbT5y0eCDKoWFTQZ54f/8OjQ4?= =?us-ascii?Q?bEhafkGDLU/olc5FVS9jhhAYtQRYb/YW6a89Kw7w00j+c7BAoRsCnQvh2oOj?= =?us-ascii?Q?I60PQ+JUbj4OnIBy3Yw36FKk9+q+QprE+uL9js4X0PcUpOrcE341xe8ZTgkE?= =?us-ascii?Q?3HtETMVx0IPFoVDQpTcsJSPyQrtt6W0=3D?= X-Exchange-RoutingPolicyChecked: C4OjvPlL8VYe4aKvcwNODv/udO6auiolygXCCdW3bR1/Dy0RTM3JiBbumpF6kpLzlSFR/RntNgqqeXVjX+GDCVmhu4BG9HWbLP/jPK27WpTI9eY2o0HvQRDXgDRgHjn3dJFguYwWg7Gt0aKAB7xPe4cmWA/gMww5KkeCvWXn/CqshZ6vAH7UzKGrvZosBVFLz8yBzsHz83NJQD7D2LDkZMDJiGsoiqNej8LqStpzixTw1GUVLpAElpt1coCRkKX6BtX5ttOT8UKm9hsyoR59SkOifXXw9AP4HGIkQvs1Zf1Qcmy0wa/EyTuiMAJnzuAffQAIcMjfxTFIYEATTUZfyQ== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 209ede14-2ac3-4ffe-8bb6-08dee382b8aa X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:31.7812 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OoWoQc+WqxxLa9yEpoVHdOXAI4x6KNSacb2qaw1MAhSnHXcKmVoc6TtPblL0G0teYE1fQw51exw1sZahsSRpTuyZollBvi11sBlqVJ48+k8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX5MmT9lnIan2Y BcmL4XpV/QatZ2yC0eMQg7z+IEeeAo/xTm7XSfLutTc0NBuQ+7bOMMHro6Eo9YEUPBX3yCftWFN YGIw49NcS7X7jDFXGkC79LfnxNn6mX2B9R2IrbKIgDXa4Iish7xdJyaGaz/MFhIWCuDKSShnCQh Hkq+/8NlS5ETJchr3DJ9uoNoy84Q/G4y7CZKCkQ+ZnLrv3jR+tJxJsaXCHia2xyQQkMizHRSj/8 mjvFOWKAh1/1LVVopdV2+1q02Ii4wZnQwYPCwJysPKQWiDVbMc46kaspfC4uivPuq//+fb2U2WX 2yYbndWdgPtA3Fr73TKw4qbwtitWicTjajPMA576TFWW8yBkbDywiMVtNLtf5i5cUjhs2RfQaHJ lp8s1ePykI5XbGek2SsbASnkNn9HC8e2fH1zoNJ+T2AEVDaLvfWnQ/uWTH67Q4ZaGQZcHgby2Lb cWb6lTZT5MofCCXX8+w== X-Proofpoint-GUID: RzRPIMb211a3u-L7IDHeAX-Gnu8EJbrF X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX1KtNU1nsrD3m 5D0yDQnjpgwnZCs53qk+HHaN/yCzLw+vRyrYrwftsg1C7I+GGIuvFFc6xqQWSlnio9JsC0mKIOd sjGpG7eJxJcFpa89WZIud6c78jvLrFc= X-Proofpoint-ORIG-GUID: RzRPIMb211a3u-L7IDHeAX-Gnu8EJbrF X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f97 cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=MjXts2-mBpChFlE4YxYA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238092971158500 Content-Type: text/plain; charset="utf-8" Try to read all the ID registers from KVM. KVM may return ENOENT, for ID registers it does not support reading from userspace. Ignore those registers. As this list is small, in future we may anyway want to handle those register specially. We want to do this so that we can expose more or less complete host feature view to management stack, as for migration, we want both writable and non-writable ID registers to match. Also remove the unused 'cpu' args throughout the call-chain. Signed-off-by: Khushit Shah --- target/arm/kvm.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 63b3727e05..42ff731f6e 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -292,14 +292,14 @@ static int kvm_feature_idx_to_idregs_idx(int kidx) } =20 /* - * get_host_cpu_idregs: Read all the writable ID reg host values + * get_host_cpu_idregs: Read all the ID reg host values * - * Need to be called once the writable mask has been populated - * Note we may want to read all the known id regs but some of them are not - * writable and return an error, hence the choice of reading only those wh= ich - * are writable. Those are also readable! + * We currently try to read all the registers. If the read fails with + * ENOENT (KVM does not identify the ID register) ignore it. + * Some of the registers that errored with ENOENT will anyway need special + * handling. */ -static int get_host_cpu_idregs(ARMCPU *cpu, int fd, ARMHostCPUFeatures *ah= cf) +static int get_host_cpu_idregs(int fd, ARMHostCPUFeatures *ahcf) { int err =3D 0; int i; @@ -310,26 +310,26 @@ static int get_host_cpu_idregs(ARMCPU *cpu, int fd, A= RMHostCPUFeatures *ahcf) uint64_t *reg; int ret; =20 - if (!sysregdesc->writable_mask) { - continue; - } - reg =3D &ahcf->isar.idregs[i]; ret =3D read_sys_reg64(fd, reg, idregs_sysreg_to_kvm_reg(sysreg)); - trace_get_host_cpu_idregs(sysregdesc->name, *reg); if (ret) { - error_report("%s error reading value of host %s register (%m)", - __func__, sysregdesc->name); - - err =3D ret; + if (errno =3D=3D ENOENT) { + warn_report("%s error reading value of host %s register " + "(ENOENT)", __func__, sysregdesc->name); + } else { + error_report("%s error reading value of host %s register" + " (%m)", __func__, sysregdesc->name); + err =3D ret; + } } + trace_get_host_cpu_idregs(sysregdesc->name, *reg); } return err; } =20 =20 static void -kvm_arm_get_host_cpu_features(ARMCPU *cpu, ARMHostCPUFeatures *ahcf) +kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf) { /* Identify the feature bits corresponding to the host CPU, and * fill out the ARMHostCPUClass fields accordingly. To do this @@ -415,8 +415,8 @@ kvm_arm_get_host_cpu_features(ARMCPU *cpu, ARMHostCPUFe= atures *ahcf) SET_IDREG(&ahcf->isar, ID_AA64PFR0, 0x00000011); /* EL1&0, AArch64= only */ err =3D 0; } else { - /* Make sure all writable ID reg values are initialized */ - err |=3D get_host_cpu_idregs(cpu, fd, ahcf); + /* Try to read all the ID registers */ + err |=3D get_host_cpu_idregs(fd, ahcf); =20 /* * temporarily override the CLIDR_EL1 value since some host values @@ -595,7 +595,7 @@ void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu) g_free(writable_map); =20 if (!arm_host_cpu_features.dtb_compatible) { - kvm_arm_get_host_cpu_features(cpu, &arm_host_cpu_features); + kvm_arm_get_host_cpu_features(&arm_host_cpu_features); } =20 cpu->kvm_target =3D arm_host_cpu_features.target; --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238158; cv=pass; d=zohomail.com; s=zohoarc; b=EncIa0aaXBU7a4xfAM4rZlbUN8NyeDKu5mY1n6i/PVM2APEBnnwcz9PxI+aZsXxtHjBpt2Ly0iHO96vL7zW018TPb8RU5fgavcMyYIiyCrLHBIMO4ZZuppVbyQtMRn4jQHw09tAHYAnFVFI0wZMCZWLdPwWw4E1voWYMAI2YvrE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238158; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GHLOqjnMH8y9r5FKIpyCYoScCUpVaZacIy2XYcBlvpY=; b=O5gxufJpE9itrLVnllmbe98lzyvAT3S60JND1BlUyIX+4FB/kNqoqqU9Z1NYwv16tPMVLRLnM0CLSOWBNmIx/TOlo9L/IikFPMQIBSEZjdU+YIfWYNXLu6mfXOO9JV4VgQ6KWiYA6pLw8QNkp4GAcGWs5UNcEEVcepueU2ASINo= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238158478790.4960074661323; Thu, 16 Jul 2026 14:42:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkTog-000272-1A; Thu, 16 Jul 2026 17:40:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkTod-000219-4R; Thu, 16 Jul 2026 17:40:23 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToZ-0005tX-Sd; Thu, 16 Jul 2026 17:40:22 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhq1763910; Thu, 16 Jul 2026 14:39:37 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-8 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:36 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:32 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=GHLOqjnMH8y9r5FKIpyCYoScCUpVaZacIy2XYcBlv pY=; b=kvyW0r3h3aNNhak+z7xNhDeshT6QBRTrv7KTB1Xs0NxLXA3GaPuByTAZ2 jp5PqkJXUL2BRmAeJQvzt3K9wNp1OZyFPCta1CbWt7qlRKyp1Cwxkt3VJrOmfu1w o5T+Xsl3XKQ8FtBWP2Nze8D6OUj5CYAx/Ac1IbyO4y2Cwnidi01Z8DHUis5Qvm7M N5xbCKx4v082rxulvc0H6rj9vBSKZfAg3vYd7HSpiv+1/yHQ9U+6F8vmC++A9fKc XZjRIwMqUgOPIXRYVbDMS/KMSj91RGEHXxSI9VW8MjGR6sIOGXUQY2BmeiY6vuQk o8A00GS7jD39cFJKCnwR65P5FQXmg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=geDtmpWtJ13uFthMIdMSiR7Kw2AwXOu8L0S6byJL6KZ8399S3LjpCx3muFl5bOxgHQTu2qPNkz/rItFYb7ELvKPZBTduct19RDGqXoIZJ72TFplokPK8tVPARPpym+SX6sO9KDhy+ccgB2CIR0p/v0WOO4LDcG2rgGm8/JSevKYuj5/ZWKkpblEZ9C2cUXZvPJqRB1npgVD8e4RoiTzzhrTiuKwNqkL7+xV5OTYn4lMRHb+c9HWob41ODAGKuauZyrbTDsFn/PeHNdRmmIOTpwTdVpT1Ose1MJPwaNsF/eJyCQNg+jxhJTYzD7TAaPw6Obh/sgpLbU6CrZBiQ/LP1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GHLOqjnMH8y9r5FKIpyCYoScCUpVaZacIy2XYcBlvpY=; b=ssBF3HKsrSWm6J9qOJT8Pmy8bCL4uXeJtRr0hdhL/rmI+IHSarOXs5W0AkehawDXnPh+YXyUtOmsWG3J5Su7UTxo8jVYOfEDg7RSz8Vkh6IB8C9Hzb/F5yZYg/IcG+EEeM5tGNp3RjsDiCQ7C8/J7Z4az+02EJITIq+Sf9r1sVFaYzEhkSge2+X5NtwNNzpw5xwClVPmCrm1lCCtgw200TrSqlS0HhDXJduetaoyxiNEIhDjLtwVkui6ZTO87L7YRtfleM41knYJO/WZLRw+/uFhe0pARFp+ppw8bOaRrJceCxyl5+cbiPxZeFllFcYSFFXYyqknYh/lfOj5TIDHSQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GHLOqjnMH8y9r5FKIpyCYoScCUpVaZacIy2XYcBlvpY=; b=bpt81Aas834R8ujJs8Bxzqa5pyCcZ9P6zUCYGdJv/3OhaWYh6OA29qPJL2XLkb17pK888AqzaWSSZpAgHc2IjIUU0MWs6rD/nItpXLX4Y/bNYK2GxJ8L5d1pHlG8FsZ7td/b+Rif/kxQBrILGQMGezpy8mNYPF7l+ap0EL3JsRr470P2rMOzZFdxjFV5oaQVthNkHeSTFRRoe+qRtIe/JPUiP6V1KwdaSezVlOX49tE6F6oPXnMDkY4FDAj/jyaCjhrGaN25xT6HeU4zaWDlDSZtX3kpVqwhK1Alf63RCEYdc8tG27q+eJe+aPZ5d5jKOaFNE/IRmKGJVs9i82V3TA== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 07/19] target/arm/kvm: handle special ID registers cases when reading from KVM Date: Thu, 16 Jul 2026 21:38:46 +0000 Message-ID: <20260716213858.609699-8-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: e0225a05-bb92-45f7-52be-08dee382b922 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|6133799003|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: vv2bZF5hqsG9QsKukOY8L3tasYeHtBmPNvL9E3eBydG47BGGH/6/539kRvwC0Rrmpr5lRIunHi6AKdltNo66WBTiXyQCiY82Mk60Vy7jtSCIxoIOwIEoQFJKuua+NoZr6RvR4AU2oo0DrUjZoCJlDD4xWEtW8AY6q4OZ6/MuoA9JsOl6eyNBJ6YXfm+aI0HRBfT5ewTo67L3nvK4HxsWE9pnYGLynkkcb+Ur+5wkqv/ZiSPZ1LrEqrDjw1BNSFQw2mOKideeR8KrmehHoRc+ckKM4TwFPjcO6NMYU2E9g2g0KZvpaq9oSHbk10eGQl1jiRs05n4WdLjfd4vZEfJlgBG7W56QPMHU+RJXjyZe3ih/m4SvMK5eXzS8Kq8PqZ7IMxI9oyunfJ57zp9JXCZWOdoy86xnI6t/+b3cIRye2uIFw5XfDzvPISYv/ljISSypkUYRtUhVKtaOvdS1H4Y2gbb55RWcbxD7ysUnXrcNW4H2uBXH4ACvfbDppmEZlUpKAZgJQLaaxnRH0NXNUtF0FLqiksJdZP9vfT1iBCXPbhIwQuGqU1Kgmk5qZl+i6wJOG+KS9lUt/oIhJeHDuiLryQdN2UvbCW6V+CvoVF2ce2sz0ykikuosdSawrOeqNaDyzVdPhiayHwBqeDqxNZHY5y8+oK9TTKVqKTyu6vBagOA= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(6133799003)(22082099003)(18002099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TtkDLjQJ6kPM6bIu1WWwsi5moFgebuKmtvFTh2P7LfRmVfYR2JDtMkwj8yGK?= =?us-ascii?Q?k9MS5dC+B+UaZ6EaIpBCLxltc6nEnjyvHjA3ACopPo5Xl9cLXDASh6I59Gzt?= =?us-ascii?Q?YwU64+GP3JK1wiGsHT276fc8GNLMyL2ueH3MfaBaXL+pDxyt+w8SxGidtkKw?= =?us-ascii?Q?kKyQP2EEXiQLgnMAUKL2Y6cVWZasLUN5+Oo4fR1FCvCZdg6YC8IHWk5QElU/?= =?us-ascii?Q?gujonCIafOWuHDzjHbtkpSaKb69/9y+nL1ctwRoU4RiqVVrp2Po+FSIuRCj9?= =?us-ascii?Q?evQr3bqYvdQ13i2pgSFd4IED6HT9jTgnjQy0Rs5NIV9Jk/O99YwGBMjJojZ0?= =?us-ascii?Q?TWMvQPgGju9LLKFBAtEtUJm0iGdTuJieyD5co7Bwxw0J/LQ/4FTeCB2/Bo0y?= =?us-ascii?Q?NKEEWskPhiGXVv+/LNtZT5jJ5yg2pITtCVwQncErbtQ89XNJRnC48S4oAiiz?= =?us-ascii?Q?XF54QB1ykpQuqol4+0KlBoGgXpoTVpky4qb/0M7UNt4R8jCcq0cRuG89SwLI?= =?us-ascii?Q?/lCLAymScaWhsSPv85MTLH2DIFsxn+MHoM4kr+UaaGRdkjIjAQ6neIclC8YP?= =?us-ascii?Q?FqJXYjNtC9rZpJQXe77f3dkl56fseREGvgddB5M3V8oSEgxmg64oIVTnNHWW?= =?us-ascii?Q?AGPJqGj6uW+wRPGP7+1xxBXnLmUub1/iP20zwgW/8fEi/ErmlvK5huRtR697?= =?us-ascii?Q?zmEm3xGZmRscxNBc7DwrGyQB623lkR9IGI1+A8RaBDLKB/VsinHgvCs66H0G?= =?us-ascii?Q?EzaYFt/6ktBwQU8kGgIMsCvid1FrWwmlJhtENXE/f0PM6gwNne2NADsjG9D0?= =?us-ascii?Q?UaY2YoffbAINrvmmizIBtap8YOZcphq4RW9NZ9m2a32tsFyj+S7uNcpL4814?= =?us-ascii?Q?hPxhZ2+WQdutWyXatqQx57Jgs4XzSItwUdePA/f7+Vgx8qsifDcW4rvh0t8o?= =?us-ascii?Q?g5T9A9TqCrnhtkmT21rSOVqWKV+RSHLJOFyWUI8Qk6jZwfye2pdM381A1svO?= =?us-ascii?Q?YBVusE1EkWRzwu77BXxEFpUyVJe2jdOjA0WlnBiIOH2LiXFl9+9lNUP9UNPr?= =?us-ascii?Q?RDsulzwGgZMg6P207jKF6I1dbyLJfWYJvaG0Ewy1gW796VXjsYUZoQsPTB9+?= =?us-ascii?Q?yyUc+GJGwOiwZX5voQTeFd/EsKqXsd0Trz/8XL/7wDIfi8copKuPRYER8Du6?= =?us-ascii?Q?QkywqPshTI34mOIuLMgKLWMi9P0whxqs+hX2PM7YMPKu5kJ5Uh/fIa+0pOQc?= =?us-ascii?Q?zL7awRr9JlAwIBV2RM/VigeceOCck7TSkvPMP1Q9COzk0oJVQmLKtREP/hJV?= =?us-ascii?Q?XtNvJ1KpQK+dDuB62W10pVnzok4Stn3IubDxqgJ33wFrdXU/sgyJvUPBjPDb?= =?us-ascii?Q?/RY/JqnB4iHs6J6nFAJsngIBAklN6y8zJB2lK6L4ZVkv2CYXryZ7rcirZyld?= =?us-ascii?Q?wJxFiLc+hfDGjGuPYSWxtOohEpd806KCoFaxQAoc/BtmY/uo8att2sYNEcj2?= =?us-ascii?Q?ndis0jEJRcU3NvTAIiZ6dI4dvBpS+nJu12QTQDl+fBdwEBtiPBFXdnnrwYPy?= =?us-ascii?Q?HbFyJQvqM4rLQR/ShR4m9/lpOpky8C5VFUhMopeAlpzBsUYsHoJEabf7TN77?= =?us-ascii?Q?wd8BAGKI+DiEZNIBVdMMiRbaFARoZCHawP5u21wEKDCQQrsjSOucNmSyE6yT?= =?us-ascii?Q?QapMER9v/PlxR+Jo7Y1qPrknxlCCPYxHVUynfVjVmuVXW8BVlCI7kEGchqMn?= =?us-ascii?Q?jZxFF29BFWt6KQJ3bWl/djw4I44Z6wU=3D?= X-Exchange-RoutingPolicyChecked: SUdbEH6EmMpwdWhp+fHub7/mLjusU8uZDDyhLvtyx/YRFahpOEh1oU/O/8WV4NKZIZroS1Ll/4iJoWc9m4G3wtXtG4SPMWDULR+JA1Fnj1TyqC9+WCkdqiQgEJD9d40PtMTQ5qRLWBXktk0YCIwzi4FPP9IVSDejjiCYvhscQrCIV9CJtQQhUEMUhu8JgTJ67RorspIU+35DppVOgVX6aCzPQszqBBHx4L/wnb4hD1OJpOc8mQ8eFaHkKSKXfq5/7hDWWft8WARWIcp3g17WNZlZ7fL565EdzjAzsNjiyDDLLxr4OiX5o0UTOpv80HlFzewl6cV1jarbyVBilsfpww== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0225a05-bb92-45f7-52be-08dee382b922 X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:32.5821 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QKTl/uGeGzfjwih+gpNkZSyT0h4+yD7sMF4mAE8UAc2UcP9SV6IftLYerV+MWzXsPjap4EW09LssQZ0mpsZN30argTivAhRe3I37MVrll8Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX0lNzpAbZ3qTV +8WC/uvOBq0NHh/j/er3N/c152AMmZHgYHuEbgCPlhNTfU2Qt8F5199IL20aB+M3sO3oFHJZI8D 0ZwyPNPNgmzsM0Z0KfvIuovukZOmj6rqt0UFS+z64W2VoT6Gv85g/VzddrgVE13kpxpWd65Od5+ EGhk8kIqhg6zGFItpVvAo7ie/jm4oKYu2av8WIc9a6Vu0k5uMZpeZn1NGh/O9P5cJWHpr1+odfc tpXxnDIaKY+I/qm/lKoMNMRwDITlMURFg+x082hBh2GCQr6rPP0FqDfE7SMF/oBlD4Xm9Q3K7EY 5N42s5Dzxvpb4/mO2npA4yMj3jVNIrY1QLeNfgM3WWlzltwOTm3Xym/QoWMJTRJwwZgXEPcGDKn QysCN/sAoqixuI8/5L4yFK4CAuf7tXznKdgKkPFlCL//iA7WfHuLrHe9PkI/cnzohP9ifaqgRXP fSkeNrlakXAcKXQ9/xw== X-Proofpoint-GUID: 43tyZmr6XNfbz9Z2-eV70N-Ctja7U-w_ X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfXwNV2QMqmCyJR 7lDnUU2rw9HQjJSTI38qWSxwNzsrjkubxSyKtYfz4auy4FPMpzHYKlN5QGk90zjQE650Uq1pkk0 nAV5Jd7CZqaXJDIcYjlJmcq8IyOSmVM= X-Proofpoint-ORIG-GUID: 43tyZmr6XNfbz9Z2-eV70N-Ctja7U-w_ X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f98 cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=wu_xgKG8_DHQqpJy2kwA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238159244158500 Content-Type: text/plain; charset="utf-8" The generic KVM_GET_ONE_REG loop cannot correctly read a handful of ID registers, so specially handle those: - DCZID_EL0: No fine grain trap exists, hence not tracked by KVM. It is EL0-readable and untrapped, so read it directly with MRS. - CCSIDR_EL1/CCSIDR2_EL1: not plain ID registers, their value is selected by CSSELR_EL1. KVM only exposes them via the DEMUX API (KVM_REG_ARM_DEMUX_ID_CCSIDR), so there is no single value to read here. Skip them. - SMIDR_EL1: KVM does not support SME, so there is no meaningful host value. Skip it. - GMID_EL1: not in KVM's sys_reg_descs[] and, being an EL1 register, cannot be read from userspace via MRS either. The guest reads the raw host value; this is a genuine miss when MTE is enabled. Signed-off-by: Khushit Shah --- target/arm/kvm.c | 53 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 42ff731f6e..6974e5c551 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -311,15 +311,50 @@ static int get_host_cpu_idregs(int fd, ARMHostCPUFeat= ures *ahcf) int ret; =20 reg =3D &ahcf->isar.idregs[i]; - ret =3D read_sys_reg64(fd, reg, idregs_sysreg_to_kvm_reg(sysreg)); - if (ret) { - if (errno =3D=3D ENOENT) { - warn_report("%s error reading value of host %s register " - "(ENOENT)", __func__, sysregdesc->name); - } else { - error_report("%s error reading value of host %s register" - " (%m)", __func__, sysregdesc->name); - err =3D ret; + switch (i) { + case DCZID_EL0_IDX: + /* + * DCZID_EL0 is not in KVM's sys_reg_descs[], so + * KVM_GET_ONE_REG will fail. Read it directly from + * hardware since KVM doesn't trap guest reads of it. + */ + asm volatile("mrs %0, DCZID_EL0" : "=3Dr" (*reg)); + break; + case CCSIDR_EL1_IDX: + case CCSIDR2_EL1_IDX: + /* + * CCSIDR_EL1 is not a plain ID register: the value it + * returns is selected by CSSELR_EL1, so there is no single + * value to capture here. It is exposed to userspace only via + * the DEMUX API (KVM_REG_ARM_DEMUX_ID_CCSIDR), indexed by + * CSSELR. Skip reading it here as there is no meaningful host + * value to read. + */ + break; + case SMIDR_EL1_IDX: + /* + * As SME is not yet supported by KVM, ignore reading SMIDR_EL1 + */ + break; + case GMID_EL1_IDX: + /* + * GMID_EL1 is not in KVM's sys_reg_descs[] and guest reads + * the raw host value. But as it is an EL1 register, we cannot + * read it directly. This is a genuine miss when MTE is + * enabled for the guest. + */ + break; + default: + ret =3D read_sys_reg64(fd, reg, idregs_sysreg_to_kvm_reg(sysre= g)); + if (ret) { + if (errno =3D=3D ENOENT) { + warn_report("%s error reading value of host %s registe= r " + "(ENOENT)", __func__, sysregdesc->name= ); + } else { + error_report("%s error reading value of host %s regist= er" + " (%m)", __func__, sysregdesc->name); + err =3D ret; + } } } trace_get_host_cpu_idregs(sysregdesc->name, *reg); --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238176; cv=pass; d=zohomail.com; s=zohoarc; b=CGqxQxQ/Jk0yZPrgZyLO/Ykk/H7p9VyV6SB7xQkpALsLSvdiAsVlL7Oy7TIhk1I9ytYR7jTKgjyOBV8eln8M1ZIzQRDeHpAHE2p8FrXw9mmt1luHZXDtZsr4orIU0/5Qg3ehqOt0z/HyvnyApeMSCnlLqfmS/HLHWYwf1ahz7NI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238176; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zvekfeQcqWHs8d8UDsTB37Cna0DrgJXCV1RYs3py1X4=; b=OZRaRxLcBLCjUdYfXS3fNYzUC2SU7uGSfcRXFfALWPzM1JUWqNg9DGb+hjoryzpmW7obxr3LwxPQPL3Tb3WDqTOGr7KVkcD2Pep9nrL4mSVcYxZ5Q20epAjct7TXfqt8uhxC6AI4hwRbH5Fk12iWgiIWPYxnjHJ9inO9+pjHwoE= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238176596324.6056694300338; Thu, 16 Jul 2026 14:42:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToM-0001n4-1I; Thu, 16 Jul 2026 17:40:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToJ-0001iy-C5; Thu, 16 Jul 2026 17:40:03 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToD-0005sN-Pc; Thu, 16 Jul 2026 17:40:03 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhr1763910; Thu, 16 Jul 2026 14:39:37 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-9 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:37 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:33 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=zvekfeQcqWHs8d8UDsTB37Cna0DrgJXCV1RYs3py1 X4=; b=QSqEiWiaiTqOdekvZWm5E/WMrRPoC631RnEBUt5IvtL8qgMnaMCeRCWJO 84ie4uz8MX9UhopyS/fT2ciY9f6tQ+1y6tlyylosrEW3ce73SXFFkfluvuYMuOIw SFdYomnl5j2pppM66xLfWMAS4wgTTUnE2BTdFc5U0SUPcePgoXsET0rR6NkhH+MY FHR/Urg0WFEdjqoqUInNtbIGvvFMSfbV/sREf2go+7TedTjG0NfqfutvGDlgoAEZ lSdWMWkG98LzoA41T6AZ8bBzz7HhR57fFzlHP+emH8VjwhbOl/PavYpoxiAq1Su0 2DGjTo/pHrWytfWxS1W0gCVg00zLg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bI4FKzNX9rqYNg47tH2HjNQNwYNDCHb9ewS7VhSbCb9i/wpWSlhO/nClwId1KevFOt5lJC8NX7aF5FCxwgHE/aosUaIgDo9oNEgpfe5HR5yxWcLUd9TkO1MlWf6pMw5I6g5h0PTLOWgjGNlZjZ3/z1gxAAm4d6zmHQh0Qq39ZFcSt0jfvKi8Nha+3OWPeZ9J4AHcwGMx7r+7Vw78K4RanLg/3rDHrNpjXCUwpu9KFo5OFAPfvkSzVxvAr7dSKHk5PalCy2Yuq1FLjA3CLDERGEUmFrS9osscgHgoYx0WFfRk47Er0ZaazJusPAwJ2QctyzP05y4Ax1APuIgo3xctQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zvekfeQcqWHs8d8UDsTB37Cna0DrgJXCV1RYs3py1X4=; b=afzXNNFAkiA+ud8ap4Dt48yZomBsgQ+098TytZW0xA4tSk3ASwvDX+to0eqR/4fL1KQ/a6kZTOqKorLgs0xBuTBXbQa/QQVd6Qmj6y2cJpldjdjyeJP5munSXBLs1lLpbDFQlRtl3hnDCWufzcoOoj8dxKDgtHF+xtIEZ6fOU33g0P8NaxiEjzUBKuzk3yqjtIF7CqVR5SFhS8j4nF+0yP4ZfsXiFX2RpGkJy1MKeb3Xtfn3kvL0TUIDWyWKe/JzqpFX/6UwdJfq5gGPIco6AXAaecu55YDd4+xhd6mRwEhegnc0aALkaSuf5TI9oiF0iprEC+j4WAe1JkHh8ltNXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zvekfeQcqWHs8d8UDsTB37Cna0DrgJXCV1RYs3py1X4=; b=Nm4YfI0e1vNUnB/6xbzHrUWdJ/tFr2S2l2NoTwrhEA/dtoUoyHqF4uFPN/7KZtI98kgO3KP2rJBJNsGklRQXQiTpXKKjAahFD28+15H3LiJX+dsau0djd4fruIwJt3zgSVkUoAT+xgvrAC3oMRFUw62SG3trtol0KXaTpHE4nNc9VIKJhMmymAGe7+kSJU2DuBdbB9v0wlVw9fnh8lDWLEobmiYu6JKc5Oza2xrtLr59jcw2YMCdnWlT7g8cAUfjCQpPDyBjaMq+1caMfSWwLHUSQbWgHlS/1xCxajoGb4d6BITBVuOVut/j6a4VRbNjNx0r5ySofpj0dRBGQxauUA== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 08/19] target/arm/kvm: Handle writeback for special ID register fields Date: Thu, 16 Jul 2026 21:38:47 +0000 Message-ID: <20260716213858.609699-9-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: 132a4cbe-35e4-4d2c-e7f1-08dee382b997 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|6133799003|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: rzcu3iWIYKnenXR8muV+q/0TZDveL8IrtqLwBX0A0x1G5Pu+jPflCvtjqp0xVnlvczq12t6A5TGGqUkIggDqqgXkd3PEiUePPtmZpdJM8gkwwnBihKOxh07oZn5vE0FEneRCOs8y1tp3NClfhOz/mS6JcotoZ3OHaRbSUIS5tZ50/UfAPZ/7vooq17jUz1RHysTBz9Uz+JRaJKxTQgG1qrg+ZXhUUPmgMIc7hI5umMpqvY1bAqtc04no+VWqri3LSIQ1lCWBx9+h0Xt7tD2Kl4ZvHQUfVk8aHzgHJq7s5tu2iqQUI9cI56O3PzAdOfSWwvf8Q5s7RfPc3IlW4zIhdDZ74MuZsIe7LxkPEAtmWpkE9Veo2dICXu/+n1pB2ewELdAFsNSEdpsKou+7aveVFxUJi7pCDmMAgH+/dPwF7qEL2fEZPvgVL9UNglutiPrDtlr9lOJqlGVJOb0BAG+T2WpYMZvyQVtA6CzNNQ/J2InvisYQac+Df89wwVvIA0aliH2an26H+kOB0E6Bv+0nm/RMPHMcxJMxj9GUH3nOiscWLeITY8Vaa8eJPxvV/yXrxJqbZ0MUem76GUAQrlBoXsSBHc+o++5Jl5iq4y0iGoVmcSHwz7T/JZlXjzXs7BYoyS+WGC9R014d8aeDMnI3OLtTHWvBlluEwU0Vr+/uMNw= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(6133799003)(22082099003)(18002099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KuTS+DFZdpMxbTrOV1HlyrCOwL8Rgr5idjLu6XW5KT0mmlNqoD/m4HRxZ/Mh?= =?us-ascii?Q?dVeAFkdBEaxebfNEhYrwpUCa4RsjwXgSip9dtOOAyLbM1UrTYPnPGxP7MKHB?= =?us-ascii?Q?OTyMrXF0oCHNs7lTGuh+vavUYFQyX1/q9mt9PLLxLPV8BN4uQz0tIn+pkkNe?= =?us-ascii?Q?MB240aoFo0mGgC71sHAKdy9CfEgeflwkmVLa3CTILrahJ8niyCH6SwLaEJWs?= =?us-ascii?Q?jXFgjpe4zxBCq+0hsBtaCab/RNJ/VwF3HPOxRaFtNXPMJtfOXZ0wVex2TcB4?= =?us-ascii?Q?oSJggSxOX/GAk7PUq8fekcQCwKK28AvbuGdDPWoAnjC8EXevRJVMxtUFRTkd?= =?us-ascii?Q?xx2H7oi0V0oRroRb9Fb+ToSIWaNzNeXBE6etN5N4U1Rl010isql2zon/MlJv?= =?us-ascii?Q?L70Qw5tQrbGV/4temXe7PftG3h+9SHMngu0U6Q9ODLLVxrED6ns2n/+MxHxt?= =?us-ascii?Q?7qeUqiPgMYpxv50nkKDHclJK7jgS+BWgi0yJ/HjYzE1tWhuJRe+FR8mWvujA?= =?us-ascii?Q?dAWF3tZYt5ke6NO8Syp2x+ax6fnqgCz8rf/Dz+QrWZO/0A9Y5mHgnIes22i8?= =?us-ascii?Q?4mD/2OUk9R3Y4YBI+/SpcTTR/pXx2o2IXQsc9wDhdtLqiT/VmAXh4QaeryFO?= =?us-ascii?Q?BH1cUITeKR/y07kYJtURCaXyAd2JIELDp45MNWRo3wujuUtN0FxZbPgIQzXK?= =?us-ascii?Q?sJnut8KU65jMWTYeWekWSerLbL8bDwXyv9qitq77MmmCOW+IjAxkLcTBLDYp?= =?us-ascii?Q?b6EOqPZJ20v50ygyScLC/04JhVV1qskG31Oth/lu0jmhfQWmvCAk4oUHsP/z?= =?us-ascii?Q?Af14qARpN/vEDgPlvhZ1F6v52dtoWdiZ6mUfg7afpEgK1UriQ1CPYjO7gFC3?= =?us-ascii?Q?lgm+dzooIaseaOY/Lc9DFProW5E3uxaLmiyqPcELvtr1AI7VdvyomANcv3ei?= =?us-ascii?Q?e0eygJh6Q4hRm1T8lr/Z6nuOMYcgq7igbJ7UVsyjKvQOcrQc2JUAWefP/2vz?= =?us-ascii?Q?e6VADva+lwsAkj4Zz64u4bL/JoM/7WeBdD4emDCs6NNex1U7NiH3LRC6ALDQ?= =?us-ascii?Q?ALyDITJQVZ6dtgTRTxIo75Mo3OE9bzKFpF2WNQoQ5twc+b9Esp0KDIB5FXh1?= =?us-ascii?Q?q2NjImrj5PEusRxdgWctHkP/VgXYDCvoW4bvYiPwVj3ayalsg5O0AgrcLOhA?= =?us-ascii?Q?hXgKvDQuEKwof8XhgPdyrHTEhaKyVnTFyq4XLJvbkV5soK9GJ32CG3D2rSCe?= =?us-ascii?Q?fMc9H7hXRM9SIl7Ex/LCxnmZeNm/FGR1u55AfXC20cRibr57xhdnpZAa6tWx?= =?us-ascii?Q?SpsVGzK1fPFLaSwdLktmnMhpUqrie9QjaKW6/lrL4VIRMDySLMD/JFFpK2pQ?= =?us-ascii?Q?6XVp2+GD7m7bXVtIgKbJFYEuIkEWW9ApruoKoCK0O3fuq9pxa5u/GGXpT9YW?= =?us-ascii?Q?y9FjTQdWr8LyL2FoLPmHOZHEksx3zb+pHoz8DHHw4bampNU9eR6h61Bye2L8?= =?us-ascii?Q?XAEcywPjbwnPKYY1qqjyugvW9uEQhrcs2qx3fxfAL0F1uKY6DsB3BSehcef6?= =?us-ascii?Q?lbhqDMoMbV9SILtc4dBnph8oBxxzTTlv9fRm7A4fAN6O/DObDlOh51Oe7GWT?= =?us-ascii?Q?rMO7GDLcvBe9+TeVRcYH9MulvJ0ieuyfu1RFQm9esTtg2unrVmYKXfhbGvWG?= =?us-ascii?Q?01qa9NjOAUkP1l1FCtZdbd0kh3oPYAGiFevmBQgyrQxZrdDFNCPWCTmKDmy2?= =?us-ascii?Q?h7ZzJKIjq82VZ56BbWKPe5uCAes+VvE=3D?= X-Exchange-RoutingPolicyChecked: A+AgWtJx3nI5p+htzhf4kkmN2HX1siVVotai63jRUzILvMznG4QQtNDc4bQMmhd9quF35+hb3D3ERMcJYr59u0xKd3KPF+iXRLThLwDZDnq8KvAEuCT/umHunO0MNge+uzV/VswL/T0eAGr6eVL8R2qj9Rf5tZR9ol7oS0BXCt81dr9TvUv0ngePzVu+7TBIeJBrOnueUgwe8m2PjW2ql3B0UbK4qvhR33xIQ0IwLJ05gKkrryyvjcECy/36eFDCtOY31i6THTVi/WNewT/ij5A6/mtn3W7VegvRoXJOJxeQzdGVZMjE1msP9/Z0aB4FDT/Se860AJQylXZsZpFjOg== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 132a4cbe-35e4-4d2c-e7f1-08dee382b997 X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:33.3437 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Vj94gShHwbiQN/75/J3a/99yHDXjsmLr4Vz8qQPBOzgE0vZmtLKiq/V5/lTwibH1J6hIPboGxj4clByHJSMRZ10x3C4U6AMrGg6akXSnJqo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX7/bCE+65Ns31 AT96CwvrXW4744GW/uoURyBcS0GnxanZPtwCejItg12CPLcAfiQyA9i+gy41mANjSQh0jWhwO/B Efwakbjzw656wiV6+R/iBj1U9sj/w8sZtH9Oq/2SRnthtaiUdjuzE5XWMBvnrVUkXGHgGu4dcep AfZqn4aBgoig/O5r+3Gxz3IvUujoUhYfMn8AWPeF8AFuffHndMdQqzfBdHNujkYahhvFoFUVOp1 TVjgZgbmG2IknEac7Xcsmwyay9UBmIarezVO9kJpYg+33YprapZQrSINkg2FDscXhklNr3tF6qN JGN8Ul48qTR/os080KABw3v7X/h3HkyxlAUiRzKc8VkCaAL00RL1Xz/OKTuc0uFuYrXxF1HTtPU VLPPZxXK2inB2qe/eUwUomV0Yd9CAPV9UEVv396JC9YKxRIVB+JLic5DzdD6hCHFTswUoF+qnq4 uNg52tW1rqmbXkYTC5w== X-Proofpoint-GUID: UnD6zOjytkDdx3IIiio5aOav2AgMqFXp X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfXxohzbxRZ/l45 7MoZsCPlB8ww8D/vG65qk3zZpwrX+Lx49Mb2BIIkVOIOYuJmO0EVj8Pr6mnV2sN7rFXzS5UCw2f L/M62df/iOhz+ocrNdoQCvOMJrI8nyw= X-Proofpoint-ORIG-GUID: UnD6zOjytkDdx3IIiio5aOav2AgMqFXp X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f99 cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=OgtRPnsIBCFWunfy8BcA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238177401158500 Content-Type: text/plain; charset="utf-8" Some fields should not be written back to KVM for various reasons: - ID_AA64PFR0_EL1.GIC / ID_PFR1_EL1.GIC are fabricated by KVM based on the gic-version property. - KVM does not allow writing 0 to ID_DFR0_EL1.CopDbg, which breaks booting an AArch64-only guest on a host that also supports AArch32. - ID_DFR0_EL1.PerfMon is populated by KVM even for AArch64-only guests but is not writable there. - MPIDR_EL1 is managed by KVM based on vCPU index. - Hold off writing back CLIDR_EL1 until we properly support exposing cache topology to a KVM guest. Some registers such as DCZID_EL0 are not exposed through the KVM cpreg list at all, but guest still sees the host value, we verify that vCPU's ID regs values match the host value. To do this, refactor kvm_arm_writable_idregs_to_cpreg_list to kvm_arm_write_idregs_to_cpregs_list, which operates per field and now returns an error if a non-writable field mismatches with the host value. Signed-off-by: Khushit Shah --- target/arm/cpu-idregs.c | 19 +++++++ target/arm/cpu-idregs.h | 4 ++ target/arm/kvm.c | 116 ++++++++++++++++++++++++++++++++++------ target/arm/trace-events | 2 +- 4 files changed, 125 insertions(+), 16 deletions(-) diff --git a/target/arm/cpu-idregs.c b/target/arm/cpu-idregs.c index c41d0ab0c4..6fa02af0f3 100644 --- a/target/arm/cpu-idregs.c +++ b/target/arm/cpu-idregs.c @@ -7,6 +7,7 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ #include "qemu/osdep.h" +#include "qemu/bitops.h" #include "qemu/error-report.h" #include "qapi/error.h" #include "cpu.h" @@ -94,3 +95,21 @@ ARM64SysReg arm64_id_regs[NUM_ID_IDX] =3D { #include "cpu-idregs.h.inc" }; =20 +uint64_t arm_get_field_mask(const ARM64SysRegField *field) +{ + return MAKE_64BIT_MASK(field->shift, field->length); +} + +bool arm_field_is_writable(const ARM64SysRegField *field) +{ + uint64_t field_mask =3D arm_get_field_mask(field); + + return (arm64_id_regs[field->index].writable_mask & field_mask) + =3D=3D field_mask; +} + +bool field_matches(const ARM64SysRegField *field, ARMIDRegisterIdx index, + const char *name) +{ + return field->index =3D=3D index && !strcmp(field->name, name); +} diff --git a/target/arm/cpu-idregs.h b/target/arm/cpu-idregs.h index 245f1c8103..d866bd9e0a 100644 --- a/target/arm/cpu-idregs.h +++ b/target/arm/cpu-idregs.h @@ -38,4 +38,8 @@ typedef struct ARM64SysReg { */ extern ARM64SysReg arm64_id_regs[NUM_ID_IDX]; =20 +uint64_t arm_get_field_mask(const ARM64SysRegField *field); +bool arm_field_is_writable(const ARM64SysRegField *field); +bool field_matches(const ARM64SysRegField *field, ARMIDRegisterIdx index, + const char *name); #endif diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 6974e5c551..c38b99cfce 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -951,6 +951,16 @@ static uint64_t *kvm_arm_get_cpreg_ptr(ARMCPU *cpu, ui= nt64_t regidx) return &cpu->cpreg_values[res - cpu->cpreg_indexes]; } =20 +/* Like kvm_arm_get_cpreg_ptr, but returns NULL if the register is not fou= nd. */ +static uint64_t *kvm_arm_find_cpreg_ptr(ARMCPU *cpu, uint64_t regidx) +{ + uint64_t *res; + res =3D bsearch(®idx, cpu->cpreg_indexes, cpu->cpreg_array_len, + sizeof(uint64_t), compare_u64); + + return res ? &cpu->cpreg_values[res - cpu->cpreg_indexes] : NULL; +} + /** * kvm_arm_reg_syncs_via_cpreg_list: * @regidx: KVM register index @@ -1252,32 +1262,105 @@ bool kvm_arm_cpu_post_load(ARMCPU *cpu) return true; } =20 +static bool arm_field_skip_writeback_always(const ARM64SysRegField *field) +{ + /* + * GIC is controlled by the gic-version property and fabricated by KVM + * when the vGIC device is created, so a named CPU model must not touch + * it. KVM also rejects writing 0 to ID_DFR0_EL1.CopDbg, which breaks + * booting a model that lacks AArch32 support on a host that supports + * it. MPIDR_EL1 is managed by KVM based on number of vCPUs, skip + * writing it back. Similarly, skip writing back CLIDR_EL1 till we + * properly support exposing cache for KVM guest. + */ + return field_matches(field, ID_AA64PFR0_EL1_IDX, "GIC") + || field_matches(field, ID_PFR1_EL1_IDX, "GIC") + || field_matches(field, ID_DFR0_EL1_IDX, "CopDbg") + || field->index =3D=3D MPIDR_EL1_IDX + || field->index =3D=3D CLIDR_EL1_IDX; +} + +static bool arm_field_skip_writeback_if_not_writable(const ARM64SysRegFiel= d *field) +{ + /* + * KVM populates ID_DFR0_EL1.PerfMon even for AArch64-only guests but + * does not expose it as writable there, so skip it when it is not + * writable. + */ + return field_matches(field, ID_DFR0_EL1_IDX, "PerfMon"); +} + /* - * Copy writable ID regs from isar.idregs[] to cpreg_list - * in case their value differs from the original init cpreg value + * Copy writable ID reg fields from isar.idregs[] into the KVM cpreg list, + * so the subsequent write_list_to_kvmstate() pushes them to KVM. + * Only writable fields are copied; fields that must not be written back + * (see arm_field_skip_writeback_*) are skipped. + * Returns -1 if any vCPU's ID reg value differs from the host value and t= he + * field is not writable. */ -static void kvm_arm_writable_idregs_to_cpreg_list(ARMCPU *cpu) +static int kvm_arm_write_idregs_to_cpreg_list(ARMCPU *cpu) { for (int i =3D 0; i < NUM_ID_IDX; i++) { ARM64SysReg *sysregdesc =3D &arm64_id_regs[i]; ARMSysRegs sysreg =3D id_register_sysreg[i]; - uint64_t previous, new; + uint64_t writable_mask =3D sysregdesc->writable_mask; + uint64_t desired =3D cpu->isar.idregs[i]; + uint64_t previous, updated; uint64_t *cpreg; =20 - if (!sysregdesc->writable_mask) { + cpreg =3D kvm_arm_find_cpreg_ptr(cpu, idregs_sysreg_to_kvm_reg(sys= reg)); + /* + * Registers such as DCZID_EL0 are not exposed through the cpreg + * list and are therefore not writable. Use the host value + * snapshotted at probe time as the reference to check the vCPU ID + * regs have the same value. + */ + previous =3D cpreg ? *cpreg : arm_host_cpu_features.isar.idregs[i]; + + if (previous =3D=3D desired) { continue; } =20 - cpreg =3D kvm_arm_get_cpreg_ptr(cpu, idregs_sysreg_to_kvm_reg(sysr= eg)); - previous =3D *cpreg; - new =3D cpu->isar.idregs[i]; + for (int j =3D 0; j < sysregdesc->fields_count; j++) { + const ARM64SysRegField *field =3D &sysregdesc->fields[j]; + uint64_t field_mask =3D arm_get_field_mask(field); + uint64_t prev_val =3D previous & field_mask; + uint64_t new_val =3D desired & field_mask; + + if (prev_val =3D=3D new_val) { + continue; + } + + if (arm_field_skip_writeback_always(field) || + (!arm_field_is_writable(field) && + arm_field_skip_writeback_if_not_writable(field))) { + /* Never write this field back; keep KVM's value. */ + writable_mask &=3D ~field_mask; + continue; + } + + if (!arm_field_is_writable(field)) { + error_report("%s.%s is not writable: host=3D0x%" PRIx64 + ", requested=3D0x%" PRIx64, + sysregdesc->name, field->name, + prev_val >> field->shift, new_val >> field->s= hift); + return -1; + } + } + + if (!cpreg || !writable_mask) { + continue; + } =20 - if (previous !=3D new) { - *cpreg =3D new; - trace_kvm_arm_writable_idregs_to_cpreg_list(sysregdesc->name, - previous, new); - } + updated =3D (previous & ~writable_mask) | (desired & writable_mask= ); + if (updated !=3D previous) { + *cpreg =3D updated; + trace_kvm_arm_write_idregs_to_cpreg_list(sysregdesc->name, + previous, updated); + } } + + return 0; } =20 void kvm_arm_reset_vcpu(ARMCPU *cpu) @@ -2235,8 +2318,11 @@ int kvm_arch_init_vcpu(CPUState *cs) if (ret) { return ret; } - /* overwrite writable ID regs with their updated property values */ - kvm_arm_writable_idregs_to_cpreg_list(cpu); + /* overwrite ID reg fields with their updated property values */ + ret =3D kvm_arm_write_idregs_to_cpreg_list(cpu); + if (ret) { + return ret; + } ret =3D write_list_to_kvmstate(cpu, KVM_PUT_FULL_STATE); if (!ret) { return -1; diff --git a/target/arm/trace-events b/target/arm/trace-events index f33b0d821d..f042ab59b8 100644 --- a/target/arm/trace-events +++ b/target/arm/trace-events @@ -14,7 +14,7 @@ arm_gt_update_irq(int timer, int irqstate) "gt_update_irq= : timer %d irqstate %d" # kvm.c kvm_arm_fixup_msi_route(uint64_t iova, uint64_t gpa) "MSI iova =3D 0x%"PRI= x64" is translated into 0x%"PRIx64 get_host_cpu_idregs(const char *name, uint64_t value) "scratch vcpu host v= alue for %s is 0x%"PRIx64 -kvm_arm_writable_idregs_to_cpreg_list(const char *name, uint64_t previous,= uint64_t new) "%s overwrite default 0x%"PRIx64" with 0x%"PRIx64 +kvm_arm_write_idregs_to_cpreg_list(const char *name, uint64_t previous, ui= nt64_t new) "%s overwrite default 0x%"PRIx64" with 0x%"PRIx64 =20 # cpu64.c get_sysreg_prop(const char *name, uint64_t value) "%s 0x%"PRIx64 --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238083; cv=pass; d=zohomail.com; s=zohoarc; b=eT4j+E+KHwcfJE3yQussN1COpA9fYYGQnzELVpwez1avxYf70TOT0eRXocszmSFW4nvw9PImSR/zWeM9BIdiheV67HHUETf55/0GtpWJEzrebAjxH7mv7LeWU9y0zFmuxPNZI2oulMLUBmzlDmDj94bQ7jW20RBaai/sOdqyO4w= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238083; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CIhWjxN7iV8eSrFYXRkDt8l/u/0uuUaPxQMX3ofgZfc=; b=NZIXEWx8BQRKc4x/6hGACNAwjOl2XMWoZp9lmg6GXAGzTZuxSDUmjSJij/0Q53JjogssmFy7hBbJGky6NJw7FgmBnWgKW/eg2RJ6V9wkSR017j2QHa7nTvONk+fix21CCfrAoK+ARS7sFCS4fchV7AtDYZGS9sWjlFxEFLHqXBg= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238083736496.662640549574; Thu, 16 Jul 2026 14:41:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkTof-00026U-EG; Thu, 16 Jul 2026 17:40:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToc-00020M-9H; Thu, 16 Jul 2026 17:40:22 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToY-0005sq-1C; Thu, 16 Jul 2026 17:40:22 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhs1763910; Thu, 16 Jul 2026 14:39:38 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-10 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:38 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:34 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=CIhWjxN7iV8eSrFYXRkDt8l/u/0uuUaPxQMX3ofgZ fc=; b=KFzUyrNSJnMAqiK6YKRP3ChB3grMtI7fKP3xedS21vN/yZAobVLRJPUNG taJKIhGNzCuA31Du4HD4G/f9HaqVUL4wnji3s9SHQnvC8nxlFs4jN04VXk0/9xTe KH9w3A2Gi38spZWZ95Pt8+LsGalGAMjbfCMctLrREa7dbhOJAyk8sjRzOnkigQIA xBM/kPjNjJcvIZ6/n2zOmOSSCRVKv6HliHq5pgV0nJDCxWQuh4Np5/HTkkKcRUOs gF2fMFDu6/hGuJeJURDg8KWlXexJc/EPX/RXAZEiZuKO9jHm2sqEerwYAgDyo3nx a+NnVYcYyLKg9kHw4ZYGZT0ovaVxQ== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mu2y+DcoSY2O/LgTQKQxK8MB1zIeP+JcXUmNrOWvAw1UaK6Qn2Gryk60BzdO6mnsTcMwlDhjyvE3v7c7DTpG0DvH1FX44CB1DzmW97jQeqW0abJDgBsmUZuCUctqmC44i3tkpBaqSvf+bedlKqdJEJEtvkfKUMmXfV/RphIWesbD3qHBdUB9L8i4yiUpSJC+1pq4OkMwXNY+FWSB/Z957gQo4sSPTQ5dvZNzLvPsKdxEjmqDyAlQ/7wQgy3aHFeWFANsu8NrAOzndeGzKlDH0+1vzuhsxO9+3n9FDSFCY6+s6fasRJMat+wAlwNvK9YFl3yenvGiqdloD4X2/1SItw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CIhWjxN7iV8eSrFYXRkDt8l/u/0uuUaPxQMX3ofgZfc=; b=CGoedq2eKsmN6Vk2SOD0NQ4TNQtsMFK4GFghixDRAVXDJgSJbvkCnrLUHbwDjVUugOCQmeOLx00lEbC1PJG5lQir2Q6L8f4D9Idfg0oIcNt+mR0pitnlnsWA8xZ//dqnJKxIiwLnGCPrFTrZoS7YwREfS0CcvjMnVba3QRnZ+vSxAiP0ejx6M43HoSJimHMJ1Ko3nsJDpz9v8jH8OWc5MriFDRM0NJIoCkvi9LxwjGZa8z7qojeCXFO6tWWzVKwg+aJs4bID8NorGkEYS0EvRouNoMfZ5TGR0QIQ50LwUwym55o1RNU9ikOrjqtJEquBwRnBHiYKZ+E71nYvL5GiOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CIhWjxN7iV8eSrFYXRkDt8l/u/0uuUaPxQMX3ofgZfc=; b=jAsuTCZesoBp+kbFRcp/PgFWJpwQP9ztZtkteoCLKcg3mMqKg9gy9eGTqzC2QH7Y+ctPh58fA4G+XQyHsTTV0QQyRvX3Cf+CpYeMuiVpc1/zdAP31Yv/kECH39ldBiMxnu/fRKtacINhQvTWB57XlorbLzTcmX0PPvtERZTgGGb00IUiEJwbbp1QWNdAI5iFUB/yWTkGEwL+lQgUMNPJiJNPe08IXEDSljUiLVid83wHfQBGN21spLazpZcbNUoG55MlVhjWoxqbKZxslGF46wsmEf1zE3TdGEFPx6Wx+ni4M6ZHZjB7lcHyQLnWPAjR78yzp8OpMOx/9NQkRr14pQ== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 09/19] target/arm: Add named cpu model infra + graviton3 named model Date: Thu, 16 Jul 2026 21:38:48 +0000 Message-ID: <20260716213858.609699-10-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: 8df5b58d-427b-4f97-5e3f-08dee382ba0d x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|6133799003|22082099003|18002099003|56012099006|3023799007|10067099003; X-Microsoft-Antispam-Message-Info: uzdalSaOPHKYLWPOFGS8SHln8BmQ+dRhFn43Bx/Lq2HBMPCd4wMkk8WOBq9tFUQOcjNTyC2AQjBSAhZyif5mRN6Cxl9drW6u2TLTX8sT/jBAjIY55CIPrEXKUOpJUSyBvQJQMZp3WjiiSzGLHVVmNhfV0SgeJudEp7cKi+NxoQ/guPxfTzS53jhap+7dZO7Bs8Qj6h4vudbTJrkYsdy36DNPn1Jqh1jbHi24YXQDIqJ5aI2o0AxLjkTq/zTa4S3BXI8ExxRHhyu9pveDz9lyIj77SQrGAQM0sRbyQMTglVrFVnhUHApylWj3RPuVUTQd3YpJP1L7RKdAOiWoWvKdv8/8rt7e+oaHiNfnxAAhBWIUp0Be0p3rbu8TeJZsZ23fxDnBcpwVaRofHCc4+Zrq94F0SqPOERDUr/0j4frKN8I5YrV2x3nG0SKpqA9ZJMshQcdhSMWF7imuD0eKKnEjiS3/EUC81GKUId6+tN0q8KAIPwiwAw2tPoebYHZMkHSHxrLErAQNGE0AKo6T3wzY6qeF6hM7fACEy5Q0oNoKO/6enYCdV38Fg/2kP9VtUe37KAPubO1Ef2UPw2lEOzibNTzW8ENclIsBRdXbMOuS8ZvWeh/ZscC0q67p73isiZ737/7wriE7YbJZeWTN5YtJ1Dbzw5OT1goyeXdx6YBsXvQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(6133799003)(22082099003)(18002099003)(56012099006)(3023799007)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5x/yjLWNOJyjaCLzgjEwehTRX5eCoUe4MKOesb9Uoe4Z/2G+NwkXiq/yOviZ?= =?us-ascii?Q?aWl2kCVCW+NF3NGDvVNesA8QLwBWrWNMY3chFI5iD1dTuYekMrlBiFeDo1Fw?= =?us-ascii?Q?M8c241qpu+Gxzr6w05EJIj0leTg4+JwgDRDKSbDl2c1Zf0GwJ6QmEGwA2SJe?= =?us-ascii?Q?OpLd5BQegotA1EzZBaz78Di7bbSCFreo1UXqXoqMR4Ws9ApI2DsY43K3fNKK?= =?us-ascii?Q?KeoYf+ysRZ0wUDqGP7JY5DoMp1bAHQZ8vJ/JCCR9vNGhiJQU7O44oWVZXtpP?= =?us-ascii?Q?ap48SS75Q82cSYZbNV3V6F+g/t9DSexSvlMulF6fkn8QWZ68WbcS2tfZCELF?= =?us-ascii?Q?rUMQxKodXq73QOM4mY8VNn/QIdM/bHrkunhUbV6Cap4CoDwL/TMEggsaqJ/A?= =?us-ascii?Q?mnyWfl9Ah8lZYSWl4iS/LtKoxorKw5uUdjl8K9/XLB1s6lDrdrjWhNGkzdMA?= =?us-ascii?Q?NDF+MY/y+C0txpiuvh15/UbxQpoN5z1pa86WGvHDZSC7Y46EMRtcmRFaovFo?= =?us-ascii?Q?SOdJftYCkcBdEeUt4IX6nujbzTh4K8ZB+Xp5tf06DHwvE/T8p1iG/5jPoXqX?= =?us-ascii?Q?/3Ijl/I8OGam1Cx2LtS9K821MFoR27SZU9kfu8MaB3Sv/ftGen818BMavfer?= =?us-ascii?Q?+fhpzzIA+YwQICDvpGQiTIKADpowxpHIyTTPpcbhsd0OJhjjqY+0yEw7OJqg?= =?us-ascii?Q?hH5hwfKpuL2gcYDdACFzM2WhYMaLylJCT+xVZG74Lg1zh2H/pJqFB32/avdC?= =?us-ascii?Q?oVY3izEoeyM8q0ql4UEmwIfetPCIQRV26PyRQT/AAefG+VamxxfEe689hMwl?= =?us-ascii?Q?80P4+on1u94OptakOOODPfZ6+jhiTO4HupCRi4usOAff8iowiljFB90BesqW?= =?us-ascii?Q?AwJ4CZWLtK5ymEH5L1F9W7Pmwtya81lM0KYnnZ4DyRv7vRx7MIU5jRgXIwdV?= =?us-ascii?Q?7IPp4unZydfIvXq6OhyBnxsNaejuGzz6hY7NCIus9Urbo6n2bVwbeFlS62Hu?= =?us-ascii?Q?2uorRjWDGoqn9J/dmvk3GC6Bv6HOGF2bXghOgiVST0YoBttQln/HOpsy2ibj?= =?us-ascii?Q?b3JW8Lw2Xp/iQdwboVx4TdribRQreBUEKb2d9LYZOv0IiO5Tcq+GpKL7kQeK?= =?us-ascii?Q?8DP4wNtSinhk+1DasfMKROyEqnGFl1Tn+AdLcXIVbPPHEpdfPmVz8ijxS/Xe?= =?us-ascii?Q?TiOgmDAlSOSsWloLzRgNVtuf4+vVIE+3/cDlDrbRDtrw5J/GdNNpQjdnK6sE?= =?us-ascii?Q?EkdgUGr2WJz/yvBGoB5ZIuqNy+2Ka0hU3vAVysGxjHbd6Ur0dLwBwaN3z7Hx?= =?us-ascii?Q?Vk6XTxeM2a9bZtJx4gPRTY6JoL8Ts7NhY49ZZG4CzvSIHz164xi3lRW2G4H8?= =?us-ascii?Q?nfqv/oAIalE6heN2d2RJQd4SUSh39FWFi6dq7rRRlzMaqOb0gW1ZpCjFmvzA?= =?us-ascii?Q?ydsFmvD8VLWf9LWvbS4crEh1Ux5BMqYtPxdfCOJcR+h42iQtFJBKmIenH9mS?= =?us-ascii?Q?PRbrpD+8B20E4qRYHKfiPidjFVVp0PZeO7cxBIRWIKE44j7VaNlktYpA5EfA?= =?us-ascii?Q?d0K25ctK58LQL8rteSwuL0SOREXzEAfFi+5eQOotyd6oS/GzhK9bXs2DzRMo?= =?us-ascii?Q?35X+nxATjOKCZ751V5I/Qim1mo/cPcyp5RXfG7+AdfwwW/BNmLZbEHx39NOu?= =?us-ascii?Q?cDG4QkdgWvRQq0vhgOm6AZiuct8ZMjyDwPug+DksiBpTdRzSO7sA/phMLMsI?= =?us-ascii?Q?NxRt5+SXZAbrnfMPQKvAQinU/eD7SyQ=3D?= X-Exchange-RoutingPolicyChecked: APUZY8GcCihNYUHxB3ZZMN9NZ54bDNRgG5x6N8Q9w/r2Hwug3/N1YmLWW5XFZNTC0oZO1Zor418zU7K4yb1NlxoNklB4y8c+GFYtEFcb6Ddj5qdJks7JFra0ZnNRTYah7h0Q+peeYNzbKiJcpDlLzl8mrspMFApAD1moSmCPGLqSe6rJ1TDuCHwCgSRXVZDwOb5k2e4UpadCXhMgp1D5Bx0lwp6FliwgaMlbThwJNb2z0ETvgvt0KDcbXIzPDoL88tPsnKqbhNBGqJQ2DgPbEgGslZZ0/hvXCZ7fjcwoEbPcNvF9mGAaPHczfIr0MBkgi212D8fo521ITiWcsfg4nA== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8df5b58d-427b-4f97-5e3f-08dee382ba0d X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:34.1807 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cpxj2X1QSWXCA7huP0UNfQgKpkFAlRSX3aHZ2qa4CamN/y8ZFsdcF0UpbJE/KVkG34f8+9B6v2ijwGbivvQ/TnJZmRlXv3BWShBOtPilXoY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfXwrRqNVtTjGvx x37A6RreWysVwwejmyExXTqbYMHnrr/V4Kv1hyz2yyydEHT5/kimaL9XTFOROYkP1NyZTA6Ut7Q Jay8BWNylifQdmJdbT5Iu7Q4nou70+wl6Hvtoo83o/V7N8ZbfuPQow0e6XTf5ovd27e6gGvlp39 KRb2SoLF2M3GrViXOjiY15X7UiFPhJhPLCAJ8acKTY/C6cGmHZ33Dbw3W+SKqxdbE3VP13mduP1 MFvl98ECnODIWPCzrMSpSNoGXGC7z+kjgyVvVyvQ8+dDlOA8l9pzPbxS5sZfnlPlm36zz6D/2Q4 eTKK8iQDFwsPSHKRT5sGGw0lVaelkxQipTAuxuRGt3lx6DLMbD7nMBTh10QuKI/BREIFJ4lsEQX c/YbXhebBUC6YMY+M1F6gUhPp2nxVepnxabKv2i5PAPJ9pXZmFFV9D3l8SvALlHn1+2fgwiQBTf 64BKky+RAQ14yJHLpZw== X-Proofpoint-GUID: FpvtAtBiVYisrUKQwh-22vFhKzrAfIhi X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfXx7RvSGYKXecX T57NGYvU6n6+jxkpCX1PXEUlq5s+HjapfffsXP4ro5rv2S1qlV5SwIgQyZSLWqZV5OlNhSVSslW uGP0tQhAXo3DiCVCHRM+cqUST/6YtNI= X-Proofpoint-ORIG-GUID: FpvtAtBiVYisrUKQwh-22vFhKzrAfIhi X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f9a cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=W77-Ua85cY-YALAvpcAA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238084826158500 Content-Type: text/plain; charset="utf-8" From: Shaju Abraham Introduce a small named-CPU-model layer on top of the field-backed property infrastructure. Each model is a flat table of (name, value) overrides and a parent pointer. At instance-init, the parent chain is walked root-first and every level's properties are applied via QOM, so a child entry overrides its ancestors for the same name. For example, the graviton3-v1 named model hierarchy is: non-zero-defaults-v1 Known non-zero default ID regs field values arm-v8_4-a-v1 ARMv8.4-A architectural mandate neoverse-v1-v1 Neoverse V1 graviton3-v1 AWS Graviton3 non-zero-defaults-v1: Field that should be populated with some non zero value by default. arm-v8_4-a-v1: Only features mandated by the ARM ARM. neoverse-v1-v1: Reference manual derived feature values for the reference core. Values differ from TRM values based on what was exposed to the guest with -cpu host. graviton3-v1: SoC integration choices (crypto pin, cache hints, PAuth alg). The model values are figured out from ID register dump visible to QEMU with -cpu host on Graviton3 machine. Model realization: 1. Zero out ID regs array. 2. Add all properties to the CPU Object 3. arm_realize_model_chain: Walk the parent chain from root first and apply all the properties. Co-authored-by: Shaju Abraham Signed-off-by: Khushit Shah --- hw/arm/virt.c | 5 + target/arm/arm-cpu-models.c | 336 ++++++++++++++++++++++++++++++++++++ target/arm/arm-cpu-models.h | 35 ++++ target/arm/meson.build | 7 +- 4 files changed, 381 insertions(+), 2 deletions(-) create mode 100644 target/arm/arm-cpu-models.c create mode 100644 target/arm/arm-cpu-models.h diff --git a/hw/arm/virt.c b/hw/arm/virt.c index fe19030886..34e56dc1f1 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -3812,6 +3812,11 @@ static GPtrArray *virt_get_valid_cpu_types(const Mac= hineState *ms) g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("host"))); } } + if (kvm_enabled() && target_aarch64()) { + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("arm-v8_4-a-v1"))); + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("neoverse-v1-v1"))= ); + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("graviton3-v1"))); + } g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("max"))); =20 return vct; diff --git a/target/arm/arm-cpu-models.c b/target/arm/arm-cpu-models.c new file mode 100644 index 0000000000..747e0df010 --- /dev/null +++ b/target/arm/arm-cpu-models.c @@ -0,0 +1,336 @@ +/* + * ARM named CPU model definitions. + * + * Each model is defined as an array of MODEL_PROP macro, listing only + * the properties that DIFFER from the parent model. + * + * At realisation the parent chain is walked root-first and + * every level's props are applied via QOM, so the leaf's values + * naturally override its ancestors. + * + * Hierarchy: + * + * non-zero-defaults-v1 Known non-zero default ID reg field va= lues + * arm-v8_4-a-v1 ARMv8.4-A architectural mandate + * neoverse-v1-v1 Neoverse V1 (TRM 102649) + * graviton3-v1 AWS Graviton3 + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "qemu/error-report.h" +#include "system/kvm.h" +#include "cpu.h" +#include "internals.h" +#include "kvm_arm.h" +#include "arm-cpu-models.h" +#include "cpu-idregs.h" + +#define MODEL_PROP_FIELD_STR str +#define MODEL_PROP_FIELD_BOOL b +#define MODEL_PROP_FIELD_NUM num + +#define MODEL_PROP(_name, _type, _value) \ + { .name =3D (_name), .type =3D ARM_MODEL_PROP_##_type, \ + .u.MODEL_PROP_FIELD_##_type =3D (_value) } + +#define MODEL_PROP_END { .name =3D NULL } + +/* + * These fields should be populated with some non-zero default values. + */ +static const ArmModelPropValue non_zero_defaults_v1_props[] =3D { + /* ID_AA64PFR0_EL1 */ + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_EL0", NUM, 0b0001), + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_EL1", NUM, 0b0001), + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_FP", NUM, 0b1111), + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_AdvSIMD", NUM, 0b1111), + + /* ID_AA64PFR1_EL1 */ + MODEL_PROP("SYSREG_ID_AA64PFR1_EL1_MTE_frac", NUM, 0b1111), + + /* ID_AA64MMFR0_EL1 */ + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran64", NUM, 0b1111), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran4", NUM, 0b1111), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran16_2", NUM, 0b0001), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran64_2", NUM, 0b0001), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran4_2", NUM, 0b0001), + + /* ID_AA64DFR0_EL1 */ + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_DebugVer", NUM, 0x6), + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_DoubleLock", NUM, 0b1111), + + /* CTR_EL0 */ + MODEL_PROP("SYSREG_CTR_EL0_L1Ip", NUM, 0b10), + MODEL_PROP("SYSREG_CTR_EL0_RES1_31", NUM, 1), + + /* ID_AA64MMFR4_EL1 */ + MODEL_PROP("SYSREG_ID_AA64MMFR4_EL1_E2H0", NUM, 0b1111), + + MODEL_PROP_END, +}; + +static const ArmModelPropValue armv8_4_a_v1_props[] =3D { + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_CRC32", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_Atomic", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_HPDS", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_LO", NUM, 1), + + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_DPB", NUM, 1), + + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_RAS", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64PFR1_EL1_RAS_frac", NUM, 0), + + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_PAN", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_UAO", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_CnP", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_IESB", NUM, 1), + + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_DIT", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_DebugVer", NUM, 9), + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_PMUVer", NUM, 5), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_TS", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_LRCPC", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_AT", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_IDS", NUM, 1), + /* KVM zeroes out these field when MTE is not enabled. */ + MODEL_PROP("SYSREG_ID_AA64PFR1_EL1_MTE_frac", NUM, 0), + MODEL_PROP_END, +}; + +static const ArmModelPropValue neoverse_v1_v1_props[] =3D { + MODEL_PROP("SYSREG_MIDR_EL1_Implementer", NUM, 0x41), + MODEL_PROP("SYSREG_MIDR_EL1_Variant", NUM, 0x1), + MODEL_PROP("SYSREG_MIDR_EL1_Architecture", NUM, 0xF), + MODEL_PROP("SYSREG_MIDR_EL1_PartNum", NUM, 0xD40), + MODEL_PROP("SYSREG_MIDR_EL1_Revision", NUM, 0x1), + + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_BRPs", NUM, 0x5), + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_WRPs", NUM, 0x3), + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_CTX_CMPs", NUM, 0x1), + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_DoubleLock", NUM, 0xF), + + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_RDM", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_DP", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_FHM", NUM, 1), + + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_DPB", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_JSCVT", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_FCMA", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_BF16", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_DGH", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_I8MM", NUM, 1), + + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_FP", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_AdvSIMD", NUM, 1), + + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_RAS", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64PFR1_EL1_RAS_frac", NUM, 0), + + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_CSV2", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64PFR1_EL1_CSV2_frac", NUM, 0), + + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_CSV3", NUM, 1), + + MODEL_PROP("SYSREG_ID_AA64PFR1_EL1_SSBS", NUM, 2), + + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_PARange", NUM, 5), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_ASIDBits", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_BigEnd", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_SNSMem", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran4", NUM, 0), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran16", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran64", NUM, 0), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran4_2", NUM, 0), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran16_2", NUM, 0), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran64_2", NUM, 0), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_HAFDBS", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_VMIDBits", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_VH", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_HPDS", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_XNX", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_SpecSEI", NUM, 0), + + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_FWB", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_BBM", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_EVT", NUM, 2), + + MODEL_PROP("SYSREG_ID_AA64MMFR4_EL1_E2H0", NUM, 0), + + MODEL_PROP("SYSREG_CTR_EL0_IminLine", NUM, 4), + MODEL_PROP("SYSREG_CTR_EL0_L1Ip", NUM, 3), + MODEL_PROP("SYSREG_CTR_EL0_DminLine", NUM, 4), + MODEL_PROP("SYSREG_CTR_EL0_ERG", NUM, 4), + MODEL_PROP("SYSREG_CTR_EL0_CWG", NUM, 4), + + MODEL_PROP("SYSREG_DCZID_EL0_BS", NUM, 0x4), + + /* pauth */ + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_APA", NUM, 3), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_GPA", NUM, 1), + + /* sve */ + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_SVE", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ZFR0_EL1_BF16", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ZFR0_EL1_I8MM", NUM, 1), + MODEL_PROP("sve128", BOOL, true), + + MODEL_PROP_END, +}; + +static const ArmModelPropValue graviton3_v1_props[] =3D { + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_AES", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_SHA1", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_SHA2", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_SHA3", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_SM3", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_SM4", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_RNDR", NUM, 1), + + MODEL_PROP("SYSREG_CTR_EL0_IDC", NUM, 1), + MODEL_PROP("SYSREG_CTR_EL0_DIC", NUM, 1), + + MODEL_PROP("SYSREG_REVIDR_EL1_VAL", NUM, 1), + + MODEL_PROP_END, +}; + +static const ArmNamedCpuModel arm_cpu_models[] =3D { + { + .name =3D "non-zero-defaults-v1", + .parent =3D NULL, + .props =3D non_zero_defaults_v1_props, + }, + { + .name =3D "arm-v8_4-a-v1", + .parent =3D "non-zero-defaults-v1", + .props =3D armv8_4_a_v1_props, + }, + { + .name =3D "neoverse-v1-v1", + .parent =3D "arm-v8_4-a-v1", + .props =3D neoverse_v1_v1_props, + }, + { + .name =3D "graviton3-v1", + .parent =3D "neoverse-v1-v1", + .props =3D graviton3_v1_props, + }, +}; + +static ARMCPUInfo arm_named_cpu_infos[ARRAY_SIZE(arm_cpu_models)]; +const ArmNamedCpuModel *arm_find_model(const char *name) +{ + size_t i; + for (i =3D 0; i < ARRAY_SIZE(arm_cpu_models); i++) { + if (g_str_equal(arm_cpu_models[i].name, name)) { + return &arm_cpu_models[i]; + } + } + return NULL; +} + +static void arm_apply_model_props(Object *obj, const ArmModelPropValue *pr= ops, + Error **errp) +{ + const ArmModelPropValue *pv; + ERRP_GUARD(); + + for (pv =3D props; pv->name; pv++) { + switch (pv->type) { + case ARM_MODEL_PROP_BOOL: + object_property_set_bool(obj, pv->name, pv->u.b, errp); + break; + case ARM_MODEL_PROP_NUM: + object_property_set_uint(obj, pv->name, pv->u.num, errp); + break; + default: + g_assert_not_reached(); + } + if (*errp) { + error_prepend(errp, "property '%s': ", pv->name); + return; + } + } +} + +static void arm_realize_model_chain(Object *obj, const ArmNamedCpuModel *m= odel, + Error **errp) +{ + const ArmNamedCpuModel *cur, *parent; + const ArmNamedCpuModel *chain[ARRAY_SIZE(arm_cpu_models)]; + size_t depth =3D 0; + for (cur =3D model; cur; ) { + if (depth >=3D ARRAY_SIZE(chain)) { + error_setg(errp, "model '%s': parent chain too deep " + "(possible cycle)", model->name); + return; + } + chain[depth++] =3D cur; + + if (!cur->parent) { + break; + } + parent =3D arm_find_model(cur->parent); + if (!parent) { + error_setg(errp, "model '%s': unknown parent '%s'", + cur->name, cur->parent); + return; + } + cur =3D parent; + } + + while (depth--) { + arm_apply_model_props(obj, chain[depth]->props, errp); + if (*errp) { + return; + } + } +} + +static void arm_named_cpu_initfn(Object *obj) +{ + ARMCPU *cpu =3D ARM_CPU(obj); + ARMCPUClass *acc =3D ARM_CPU_GET_CLASS(obj); + const ArmNamedCpuModel *model =3D arm_find_model(acc->info->name); + if (!model) { + error_report("'%s' CPU model entry not found)", + acc->info->name); + return; + } + + if (!kvm_enabled()) { + error_report("'%s' CPU model requires KVM (-accel kvm)", + acc->info->name); + return; + } + + kvm_arm_set_cpu_features_from_host(cpu); + if (!arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) { + return; + } + + /* 1. Reset ID regs to 0 */ + memset(cpu->isar.idregs, 0, sizeof(cpu->isar.idregs)); + + /* 2. Add sveNNNN and SYSREG_ properties */ + aarch64_add_sve_properties(obj); + aarch64_add_idregs_properties(obj); + + /* 3. Realize the model chain. */ + arm_realize_model_chain(obj, model, &error_abort); +} + +void arm_register_named_cpu_models(void) +{ + size_t i; + for (i =3D 0; i < ARRAY_SIZE(arm_cpu_models); i++) { + arm_named_cpu_infos[i].name =3D arm_cpu_models[i].name; + arm_named_cpu_infos[i].initfn =3D arm_named_cpu_initfn; + arm_cpu_register(&arm_named_cpu_infos[i]); + } +} + +type_init(arm_register_named_cpu_models) diff --git a/target/arm/arm-cpu-models.h b/target/arm/arm-cpu-models.h new file mode 100644 index 0000000000..ac4e510499 --- /dev/null +++ b/target/arm/arm-cpu-models.h @@ -0,0 +1,35 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * ARM named CPU model definitions - public API. + */ +#ifndef ARM_CPU_MODELS_H +#define ARM_CPU_MODELS_H + +#include "qapi/error.h" +#include "qom/object.h" + +typedef enum ArmModelPropType { + ARM_MODEL_PROP_BOOL, + ARM_MODEL_PROP_NUM, +} ArmModelPropType; + +typedef struct ArmModelPropValue { + const char *name; + ArmModelPropType type; + union { + bool b; + uint64_t num; + } u; +} ArmModelPropValue; + +typedef struct ArmNamedCpuModel { + const char *name; + const char *parent; + const ArmModelPropValue *props; +} ArmNamedCpuModel; + +void arm_register_named_cpu_models(void); + +const ArmNamedCpuModel *arm_find_model(const char *name); + +#endif /* ARM_CPU_MODELS_H */ diff --git a/target/arm/meson.build b/target/arm/meson.build index 64d1ec63ab..72eed1bcc6 100644 --- a/target/arm/meson.build +++ b/target/arm/meson.build @@ -10,7 +10,7 @@ arm_user_ss.add(files('gdbstub.c')) =20 arm_ss.add(when: 'TARGET_AARCH64', if_true: files( 'cpu64.c', - 'gdbstub64.c' + 'gdbstub64.c', )) =20 arm_common_ss.add(files( @@ -21,7 +21,10 @@ arm_common_system_ss.add(files( 'arm-qmp-cmds.c', 'cpu-idregs.c', )) -arm_system_ss.add(when: 'CONFIG_KVM', if_true: files('hyp_gdbstub.c', 'kvm= .c')) +arm_system_ss.add(when: 'TARGET_AARCH64', if_true: files('arm-cpu-models.c= ')) +arm_system_ss.add(when: 'CONFIG_KVM', + if_true: files('hyp_gdbstub.c', + 'kvm.c')) arm_system_ss.add(when: 'CONFIG_HVF', if_true: files('hyp_gdbstub.c')) =20 arm_user_ss.add(files('cpu.c')) --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238130; cv=pass; d=zohomail.com; s=zohoarc; b=PY3RG008M+PwPoEvMBY+AyLUqKHi+qHqjwIBsXeSKBdaxDf/bJBMufd6lqhhqIocLp6xR1ajnvxd1adtiUfGPtm/VH+qCTATl0wEfQYqBqT34x7pwmtCL/weU23j76+5Js+Uq7TuGqlmMzry9y4Nm3moJwIWuE1R+7pdmVxbgec= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238130; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Fi30cKsKyJSysTxErUME0Zo4fHrFHKMrEVyh/JRVHFI=; b=QveY86CKCYBmfB9GhPdl+AkPQNmoyZ8hLBbv0CvbsGGeQ3RLLfQe07jfeK2wOfdXnCGZtWE9q057lnrK0mAjPeOKPWXQgD69+BOyk+obGXba0laUsp3+kc5qayiUwiR5Gay6aYr/yRd0ygL5BreudYdl9DknmpDeV7yADoAvnBM= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17842381303283.1281731939491237; Thu, 16 Jul 2026 14:42:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToN-0001pY-U7; Thu, 16 Jul 2026 17:40:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToL-0001lY-7m; Thu, 16 Jul 2026 17:40:05 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToD-0005se-SH; Thu, 16 Jul 2026 17:40:04 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZht1763910; Thu, 16 Jul 2026 14:39:39 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-11 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:39 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:35 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=Fi30cKsKyJSysTxErUME0Zo4fHrFHKMrEVyh/JRVH FI=; b=DE88+PpBFn0HKDQDWpH4oj1NJEE7ADQ2hjKeyDVUFuCrVhi7sFzSBzFlU NjpAXy76t3O3uc1ppVLn+YNMea/HDOuDEyg5BZ8EWltfN0jO9kp8hJKXaUpWJnNL wB6Lz/SdPmK1SDPgXbzzFZYo2Kb4fXaIt81AR+5Ys/NjCyq0G1eV6I2hKw+ZfsGS CEVh5YHGwgTr7OdJkcnEIRE80kXXkFMKHFhqMxz+WLBr2l2M8cREyT966qZLcxyF JlPJbp/JVqO238pj4Y7sC3zWEyhojw4R4PSQyRivJqd6DzrywwC+t5RMhNSa0kVb phhGiyIiUeykTCpsfB6IdMH75Kezw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bQZVTOWgEm4ftTT7RaEakQ0OsslL8JVCubKsdkC4QFnKyWrVRuXy/wP/P7EF38Mlecxw6MfEvZcV451em1iZpfsrUiwnHRWMGdFvBaNXru/31RSGqlFiwy0ky86jDAY1KFDP418rHqiIedfbxSEbxgGc1RBGxmonv5mZ7hs/Qg5//56kcLZsgU2uchLePGnIZ1YnC4K2WxrC7iX/qiTD7g4F0kLcEB0zb1xmLCbsb0OFOvvYtZTx+Ctsne2YF03srh7Xp3jzEPBtiPdgC3uq3m+6Ct8WHxhKBPH6HWj4Yq6uggXT13xkOA0Rd6dpYU0j8ZMwunLnuk68IemGHLG0yA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Fi30cKsKyJSysTxErUME0Zo4fHrFHKMrEVyh/JRVHFI=; b=FY/BP0Y+BcgGSNR47981e/HYwAWCzLk3Brq/jn/9cKXDyv/voKZG8g3HKVtVrnNWXmiKsBcf1U2ub5wAUHf7GLK/kv9ZUAabQVUIa5hS27NJIYDq7Y9lM7OWRPBcgCt7daSwBS2D58PdZrNQ5bIMNEJDRVKIj5s6H9VAh0dtwzL4EpR/OHLd15WDLN6hL15vedT7TkP82mLuc1IVgVNEPArH4/6NqYP9t3slDsGrWw3qQOq57/jfxxKq1gJ3NP9DHMhbNv4voB3H3eM7j5O5FhPDTYJgxINAFBaN6skoAufS5StdTzxQu5GQ5Q+NNgtO0eLNBH4SYBSgFVEjKvPh0Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Fi30cKsKyJSysTxErUME0Zo4fHrFHKMrEVyh/JRVHFI=; b=GW4Zlo/Yz+r9CBbgOHMxay/jToeNsnrRyUFGGFgC/u1MRfhBbYOJ2gSsE2lqY6TujTXt8uERliILV4bI2HiQmL+Vu9+4wATvtAn/3GWwJ2R2RZjmQjJYznImM8QgNUHTX3baeeC0RnbpswTxd0G1xT0qQ1CX2OAL2zM4vBqVWEloVk1WxK+pBZo39+jRaChWkPNZzc+8TevbH0OOcv3Uj/dwih36+bTNwAY5mmJHpcfRrKrXcWNLgrOiN9+hbk+Ry7JjdIGISxIGrnHMcJo4xDUqdH6mYzsSWhykAjxvWXnqzdy9RHmez/pjzCeTh9ZnXpfvd0Kop/p9sawVcZ7yug== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 10/19] target/arm: Add Nvidia Grace named model Date: Thu, 16 Jul 2026 21:38:49 +0000 Message-ID: <20260716213858.609699-11-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: 7dd4f96d-9a26-4805-e318-08dee382ba8a x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|6133799003|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: 6eAZ1ASggV4qmnNCjjceI+kvBeskw6wNIRxrooi3vOsrED2tDNiDtDh7hbW2z5v3n5BxfJFEdFD5TV4PPX9TY7X0eGcryxA2gl872DKyOraIQNh7rJZMohVi0yNPyfu+lpL9wOosgrBRJBIHIX1yMZsxeZycJvuwIBgM3l4rKN0xNeWYTJ18K+Z624+e9g0nZZWJs4tXz9ttGtQEMTSxrRH0hxZTVaSCvdB1bNu1p/AuZkkHEQzoRkjXD7Ze7mWD/kxTRFQNrQP2CRA1+ymf/egf4pHUxitB1cpWaY4yJBOg+MMPjdfJ/r2LX05fn0uEjGqcEC5Xrtg1BhY1PLOGlhmK2v0pMsoqxKtwnfsA27xtAFhx2dAYLAGdqVmKq+G+zblYG19APRmrx087HV3oLC6v/GooyxZEL3dqnP6LoDzpEPrVgpR84BioUlQakVqfykQLyomwS8W0Wznk2RdwbcENKctyKMLOwXbGy96Q+ceSqjIXWO92AOj0d8/EmSvPbK5RJSulXH0vymbsv0h8o3OjlGeUZeyNGJwitW79ev5aMh6PXGtMJKL0gfeI9N45RVKx5nER2b73m10TnxxtgYzeD2EPs9ee6NDlX8OFXh7AI2jvo+Veh5wXdWogpGBUFU8nD3BamCoTUn7Quyk/mH+fyxzKETPTOXQ/YLZwo60= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(6133799003)(22082099003)(18002099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Hv/hJp0BkBkVPVL1ZoZherWK5sCmdsT8PZldYZhNBtzGZAchvh8akOprRklB?= =?us-ascii?Q?/SopUKFSdAtkCHgtW6/E6W2RX9LfOkciRDGdpMif78xTPkBDQQC38+2YBZaj?= =?us-ascii?Q?4rATousGd4fZmO7LMVEufEsoNHm1zZ8qpw1suZQugKg2OPCTohmUtwpvcxdD?= =?us-ascii?Q?ZG1/+dI9heTOjQJ25o10ubgqemmyCXcnlfFWDvX2Bp8QA/TW+fRVmOWknFpg?= =?us-ascii?Q?dcgjTo3Ey4Cyr4ZcHGOtGi5Ge9NFMSjPxObUW+i1fudfl16Mj3VEECdudZhi?= =?us-ascii?Q?46qKMsmruW08ROqLU5Q9AiRYn/YNio2v9EH7Vm2x1/lyOtXguVGpbSV93aNJ?= =?us-ascii?Q?mRCScDAaUvV7RQKhZcXihf0D0NhowMODCzZM7N02C1SYFZkSQhB5x0phfabr?= =?us-ascii?Q?MfFMqZyuMGn0YivbNAVhVe8hqm3FDOadq+QQDAhWR7yE2ji+9jZPRlDGdtgv?= =?us-ascii?Q?4wK5Ld3UJB4kIFgQ1c8AXEPQ1lNH5sIGqI9l/Xmf7rDQz2DpsHrClFfcStjH?= =?us-ascii?Q?4mm2Pz6ox93knjwvER/o7oivn9RjSTLQBJgFkNIh8j816fLXwaJihH7QXdsh?= =?us-ascii?Q?dwHKnXwQ9xn/2c0ztrpcUs5iSqzLyXwNBeHMeMMMI/wDmC8jdztEZyK7I9fw?= =?us-ascii?Q?uQlqy3dSYvRzTKDye7+GmCSPlo958TkCYYJGLXgWs8b+5ai0V3YUZ7TanG5S?= =?us-ascii?Q?dvpdTQepmpojq4mLL01F3qlb5E8aXA7PBNNHVKG0RMLtzdDf4vgnlbjffYAS?= =?us-ascii?Q?rcnlXP+nIW7QM2mPu3w86YVtb72SgVx/vD0wMEsuUjJ2T3ync6R9etzGRD97?= =?us-ascii?Q?MU60xIoYW9m1oVJ4IaRhOEo+ALZ2KkkIcNk0kOQGE0our8ry1b0eBLbE4cem?= =?us-ascii?Q?16qSHlEHDjl+aakWODD4vxwVoI68ZeFJyflQwNGvKd4Q0BwnmHy3zHkV/+kA?= =?us-ascii?Q?RnfMnycq13btEahvWIV5FEXyjWtntLDY3vcCfTWbfyl/l564GVSFSvQCClyE?= =?us-ascii?Q?nsUN51Vjoa964uVzKeTCdhE6HOjaPOHICIonYpUUJKrNTLJulJEw9oNULwSs?= =?us-ascii?Q?+EtqV+st4hS8J5QykVL5+rKMvkKsFtfhT5Nr5o2CWqrNFbWWxMIxRujkGeG4?= =?us-ascii?Q?0YeSH9Udi4sC0zjTyCd1x0RljXb7hFGrE/fAStZMnpbwYEbAyU1GzcWHkbqU?= =?us-ascii?Q?bQ1wJsp/TmDMc0WpWZWcgtGSjesxlR+Xcwl89wShmfy1yqXjG35CDu4NFj8D?= =?us-ascii?Q?aq3jqcdh82sKMCPUpW4kr8xHolQz7H6FP3tPdJWbYcYyc40YLI8+1Ok8jTY7?= =?us-ascii?Q?ftR+1d0DnwSHdhLDZGrrUdxbnSxHxVv8Tvd5B/ZTVXEqQCFZp0HlRmzQepOT?= =?us-ascii?Q?6QtyqP2bau2FnCjfRrmhTiD9eGf3S94josC0G4lfWESA3ZksUAo79cU/UIYE?= =?us-ascii?Q?pCQiTBUv1dC1YsSaYEcPrWFpMaCNkB2C/TJc/yq5Cb9QEUrFKPX5vg7jT5Mh?= =?us-ascii?Q?N3vekmeT7V1t1N1f3sm7+KARmrMBUILrZilBYECg4D/ouBCVZqfp1d0MqgIx?= =?us-ascii?Q?zSgKHDg6aioVLWKJ1KdH8fA6qy/VOI58kvSsKcbtc1G3gfogwu94LeaxZONE?= =?us-ascii?Q?LjhnKFl6qmo2PJ4glMtOl9cWW2+hrgZph2MR+6OgLe5hT+XZVYpTb9MoPhpO?= =?us-ascii?Q?v64Car0Ew7nNSgXqHh6j9ORHHQE999aPiY4wLDS4C8WcJyt3xsKXhwqeYviA?= =?us-ascii?Q?+ilT/38bxFJJrNoLyfkJTpIIsJ7zJJQ=3D?= X-Exchange-RoutingPolicyChecked: lYZ/5iijMOTMr8PUK00gsOHgLiWgu77ck7uK0s8o4iqelUwvwLCRyGMpM40POTJ43osPXUv0kQ1b6HAS6aoB7FjMdYmJn1TjvIRrqPDzw45SO8FaIwldr9gZrJaQqNInFMIM4aOEuoGw6wdQ3cHQNwjHQBqHPRnltCvnuNvNpbtiuBMCpfvUqfU1LZi+HK/bFfh9OFKITrzyafP6GyX84y4lMeFYbvX2bsJW94eErC79loaZ//K0Ow4LZQjv591tuWF57IPn2u21VQPZolUinOz9psN2c99IjVCj16pSxVINNTOa6LYcOdxZ2FmMWkdQBZOtJ2oK7LyhTPOEMTvXvQ== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7dd4f96d-9a26-4805-e318-08dee382ba8a X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:34.9364 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3bxRcmVuHbBn25K5RXEam2VElrUVUCPvEKv9bpTBj9gsUg0SqOUKsmMn9/eFEgdMT2p9sgQYBKUJz9zODsnHsdWcRb0yqxJMGCrqcUSwiNk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX5UNi+h+YKyhY VjxJTWY2DcAVinth3ESLmtlKcVmEqKMWTGgg0YbK8sgNUVUiLVqGixGnnwR1a34mWhsFcv84sLf M1J06lAD+IBVItNjJypwRKul2hWRKvtc+UYweorfWv3w15j22EpCleZMnRrlPVStrj93UKgb0oR uSdHQ3D1/xXWzbgbQAsQp4Pd4cfaFOnhA4+L3f6ZUujRWeR5moRZ1XCctAAO1HreW/P/sGdAt0o nTslvA7Bq1gzPFi/OhvojyVxWbkYPQaWf76/wHxXzMSLsfRANHbTK/mDJMy7VbkhWa2rM0kp0fC ohauhCyisvhPWDMRfd0dYTF19UMXicl0HPQ07AJ4CQlyxaT7QneK+ujpV2otdNVnPGcBejQkmGZ flJpVchy64+VPIeDH1nimTXu0s6wtSHLD2PwYGKFe22fobcKEyQ7UvVAhU3FBKNdtVtKrJi1DRz fSz5Alfut8QwO5Rj3yA== X-Proofpoint-GUID: FK3UaOatZ0mlv1fgwaR6sC3U5gvwKLvA X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfXyrya/kCZ9B6i 1bdeHNqDVAyFbJiuLDE/jE4pIE3BrHjZ0uSjUERsULSxTotGrbVNZVyJwybWpqsMZM14tCD8zQO AE1buqHzN4PJ6Wjwsy+8lMcXe25fWfk= X-Proofpoint-ORIG-GUID: FK3UaOatZ0mlv1fgwaR6sC3U5gvwKLvA X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f9b cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=qRvJWlhRAHAo-js89rYA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238131253158500 Content-Type: text/plain; charset="utf-8" Add Nvidia Grace named model alongside its hierarchy (neoverse-v2, armv9-a) Field values were derived from the ID register view that KVM exposes to QEMU with -cpu host on an Nvidia Grace system. Signed-off-by: Khushit Shah --- hw/arm/virt.c | 3 + target/arm/arm-cpu-models.c | 154 +++++++++++++++++++++++++++++++++++- 2 files changed, 156 insertions(+), 1 deletion(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 34e56dc1f1..3b27c7a710 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -3816,6 +3816,9 @@ static GPtrArray *virt_get_valid_cpu_types(const Mach= ineState *ms) g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("arm-v8_4-a-v1"))); g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("neoverse-v1-v1"))= ); g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("graviton3-v1"))); + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("arm-v9_0-a-v1"))); + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("neoverse-v2-v1"))= ); + g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("grace-v1"))); } g_ptr_array_add(vct, g_strdup(ARM_CPU_TYPE_NAME("max"))); =20 diff --git a/target/arm/arm-cpu-models.c b/target/arm/arm-cpu-models.c index 747e0df010..40e8578591 100644 --- a/target/arm/arm-cpu-models.c +++ b/target/arm/arm-cpu-models.c @@ -14,7 +14,9 @@ * arm-v8_4-a-v1 ARMv8.4-A architectural mandate * neoverse-v1-v1 Neoverse V1 (TRM 102649) * graviton3-v1 AWS Graviton3 - * + * arm-v9_0-a-v1 ARMv9.0-A architectural deltas + * neoverse-v2-v1 Neoverse V2 (TRM 102375) + * grace-v1 NVIDIA Grace * SPDX-License-Identifier: GPL-2.0-or-later */ =20 @@ -197,6 +199,141 @@ static const ArmModelPropValue graviton3_v1_props[] = =3D { MODEL_PROP_END, }; =20 +static const ArmModelPropValue armv9_0_a_v1_props[] =3D { + MODEL_PROP("SYSREG_ID_AA64PFR1_EL1_BT", NUM, 1), + + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_CSV2", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64PFR1_EL1_CSV2_frac", NUM, 0), + + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_CSV3", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_DPB", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_E0PD", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_SB", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_SPECRES", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64PFR1_EL1_SSBS", NUM, 2), + + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_DoubleLock", NUM, 0xF), + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_FP", NUM, 0), + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_AdvSIMD", NUM, 0), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_TS", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_FRINTTS", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_RDM", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_DP", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_FHM", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_FCMA", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_JSCVT", NUM, 1), + + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_SVE", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_SEL2", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_VH", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_XNX", NUM, 1), + + MODEL_PROP_END, +}; + + +static const ArmModelPropValue neoverse_v2_v1_props[] =3D { + MODEL_PROP("SYSREG_MIDR_EL1_Implementer", NUM, 0x41), + MODEL_PROP("SYSREG_MIDR_EL1_Variant", NUM, 0x0), + MODEL_PROP("SYSREG_MIDR_EL1_Architecture", NUM, 0xF), + MODEL_PROP("SYSREG_MIDR_EL1_PartNum", NUM, 0xD4F), + MODEL_PROP("SYSREG_MIDR_EL1_Revision", NUM, 0x2), + + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_BRPs", NUM, 0x5), + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_WRPs", NUM, 0x3), + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_CTX_CMPs", NUM, 0x1), + MODEL_PROP("SYSREG_ID_AA64DFR0_EL1_PMUVer", NUM, 6), + + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_TLB", NUM, 2), + + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_BF16", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_DGH", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_I8MM", NUM, 1), + + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_FP", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_AdvSIMD", NUM, 1), + + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_RAS", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64PFR1_EL1_RAS_frac", NUM, 0), + + /* + * V2 silicon may report CSV2=3D2 (FEAT_CSV2_2) per TRM page 392, but + * KVM clamps the guest-visible limit to 1. + */ + MODEL_PROP("SYSREG_ID_AA64PFR0_EL1_CSV2", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64PFR1_EL1_CSV2_frac", NUM, 0), + + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_PARange", NUM, 5), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_ASIDBits", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_BigEnd", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_SNSMem", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran16", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran64", NUM, 0), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran4", NUM, 0), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran16_2", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran64_2", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR0_EL1_TGran4_2", NUM, 2), + + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_HAFDBS", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_VMIDBits", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_HPDS", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_PAN", NUM, 3), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_ECBHB", NUM, 0), + MODEL_PROP("SYSREG_ID_AA64MMFR1_EL1_SpecSEI", NUM, 0), + + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_FWB", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_ST", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_TTL", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_BBM", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR2_EL1_EVT", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64MMFR4_EL1_E2H0", NUM, 0), + + MODEL_PROP("SYSREG_CTR_EL0_IminLine", NUM, 4), + MODEL_PROP("SYSREG_CTR_EL0_L1Ip", NUM, 3), + MODEL_PROP("SYSREG_CTR_EL0_DminLine", NUM, 4), + MODEL_PROP("SYSREG_CTR_EL0_ERG", NUM, 4), + MODEL_PROP("SYSREG_CTR_EL0_CWG", NUM, 4), + + MODEL_PROP("SYSREG_DCZID_EL0_BS", NUM, 0x4), + + /* pauth */ + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_APA", NUM, 5), + MODEL_PROP("SYSREG_ID_AA64ISAR1_EL1_GPA", NUM, 1), + + /* sve */ + MODEL_PROP("SYSREG_ID_AA64ZFR0_EL1_SVEver", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ZFR0_EL1_BF16", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ZFR0_EL1_BitPerm", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ZFR0_EL1_I8MM", NUM, 1), + MODEL_PROP("sve128", BOOL, true), + + MODEL_PROP_END, +}; + + +static const ArmModelPropValue grace_v1_props[] =3D { + MODEL_PROP("SYSREG_MIDR_EL1_Revision", NUM, 0x0), + + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_AES", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_SHA1", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_SHA2", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_SHA3", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_SM3", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ISAR0_EL1_SM4", NUM, 1), + + MODEL_PROP("SYSREG_CTR_EL0_IDC", NUM, 1), + MODEL_PROP("SYSREG_CTR_EL0_DIC", NUM, 1), + + MODEL_PROP("SYSREG_REVIDR_EL1_VAL", NUM, 1), + + /* sve crypto (base sve inherited from neoverse-v2) */ + MODEL_PROP("SYSREG_ID_AA64ZFR0_EL1_AES", NUM, 2), + MODEL_PROP("SYSREG_ID_AA64ZFR0_EL1_SHA3", NUM, 1), + MODEL_PROP("SYSREG_ID_AA64ZFR0_EL1_SM4", NUM, 1), + + MODEL_PROP_END, +}; + static const ArmNamedCpuModel arm_cpu_models[] =3D { { .name =3D "non-zero-defaults-v1", @@ -218,6 +355,21 @@ static const ArmNamedCpuModel arm_cpu_models[] =3D { .parent =3D "neoverse-v1-v1", .props =3D graviton3_v1_props, }, + { + .name =3D "arm-v9_0-a-v1", + .parent =3D "arm-v8_4-a-v1", + .props =3D armv9_0_a_v1_props, + }, + { + .name =3D "neoverse-v2-v1", + .parent =3D "arm-v9_0-a-v1", + .props =3D neoverse_v2_v1_props, + }, + { + .name =3D "grace-v1", + .parent =3D "neoverse-v2-v1", + .props =3D grace_v1_props, + }, }; =20 static ARMCPUInfo arm_named_cpu_infos[ARRAY_SIZE(arm_cpu_models)]; --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238188; cv=pass; d=zohomail.com; s=zohoarc; b=iSKTqENXSOHrS/XyXIki5Tv3eqDmYJaNhHt/1q+oaeySZuFmO6oQyK7b5w29wsL2Sjjv1x4rSywZULaTqraTCuXsNkEQ0NxBhfVkPDtbkS0nuELjgDd6KlbGYFs0dpDarz3ZLw0ltb4PCTI+2MjQ7JbzP4RO5BO3Zl0Hx39VHEk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238188; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=iPcIqtbm+gxtoZLi5394cvDU3dNNV45DKiCEzY0vFuk=; b=JYCvFFI9crWrM+OXkUm/xWkXT3L+MtuuJTvgpQ3QEONai7lmSGa3KBzWzmtk2/CMHwWsfYTHvo2jbU7b76r8VFZiiqPWoPk9Dj5ZvkISJDngKa2+CzN7UuMRS1UJk1ip3xW78gV89HxIxSCTxMKg1DTDyIS3+AZNxnnyECip/v8= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238188025607.8219163241549; Thu, 16 Jul 2026 14:43:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToO-0001qK-5v; Thu, 16 Jul 2026 17:40:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToK-0001kJ-Eh; Thu, 16 Jul 2026 17:40:04 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToD-0005sa-R3; Thu, 16 Jul 2026 17:40:04 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhu1763910; Thu, 16 Jul 2026 14:39:40 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-12 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:40 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:35 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=iPcIqtbm+gxtoZLi5394cvDU3dNNV45DKiCEzY0vF uk=; b=VH2/pmjt4eitsXKIygFUIWLOYrqeUIsGQKV8mlJkaEssfGcJANdrHWyLg ssEemBYHb3S4YxbBCmGPITOy1K/kK+zYtR39IFB4Ep9AFjtgN0CbbRhRx7J3D9M4 jqUPF00xH/mPPXnPBVw+rEhGHMnanuHUe0clBJJeoMd5grTNpYlijP0m67HvtkZ+ WNbStmrWV6DqV76CnptLqzXr9+f3xM/JM5GHTc8CvDStbitvvwSNGPzIwRGYSWWC qT4qAzlrwBQHLAfRfqQfozcrtsyYnS1huOFpxe6z/C1ea8gCbrQSSqOYMxBoLjN0 jEFoZL3hsYTR+FC2OsZMTygmQ5LpA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D23Pz3q5b0dK91Dr/yQs0N1oo/XadYX2wTsMDIKHLPxHRUfWTpzd0QVDhvtAgrlOsbKOR3HO4e1rx/AEQpNXd8bvMKO53Mwv4MVzLJWMytRLjve3NrUe5ZEGrnWRHdxxq1Q2VJ+hLp+KlL57vn4TxndTFaA2RcC15WlkqeGLA78CvLBDdKB/7jSHp+0e4W70OS4Edj8/Gr4TgjH2ddJHkjsNcr5SWo1K0+/NHjStz0T52xV6CTuy+PAKDCnpqn1og8Q8ork1KR8P0OGO3O91vYuZaP7sYN/b7Ugf20HSAKgp5NPLcZhtdburoOKXEDm0p27Bos+q3nHF5uQ8UhMBjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=iPcIqtbm+gxtoZLi5394cvDU3dNNV45DKiCEzY0vFuk=; b=KJaO44yQmARD2bMZK6n9w/xHpZ41JHKUpiHk97Sz9L51Zc9k80bfpFm9cTU3AjVG8cfeU5I69Y05qiS8pd1QNP0dPhmNT6cWPD0IFMg/qQN3hDyz02jvkAZ0Q8Mi2CFNu0ifmV0ssl1BOD8Z+0b3XqkvTKTS30NcWgaM3690u147vSrpPkbiiIuS5seJnl8WPk4ab9tY7WjSwtJube6qP1RZtA582sWd/PuMCnVVVewVJXqg9A2IIFHGzM9ATIX+6/fOkXOMmgy7C7+DnSYAFoG7OIfOVHNxhhZg/SL1fwc6GMyWxcyIfemLj1mi7LHUU9pfpHmxLrcfT44zx+FLxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iPcIqtbm+gxtoZLi5394cvDU3dNNV45DKiCEzY0vFuk=; b=SSgLdDI2xIVVjb2HRuyDNygPv7n2FS8iZbSi+q1OxWVqmLx6qZfYfI4L6L/mFEfZO/wE/6yYEZlNGBay6gFmg2RRfMIG+tK4pGO1DeqVAeZZcCl8GTVZbpqzBVGndNzFtdazJE+c8I7cCRT0FzwC0hOy2Pi8L7Z19veVqomEUgSq0MXcvJPujy6RC0C62RVGsEwMC6KIpYj8XSxHtikUHEsFjVmOXdZAl3JEl4WRG+aJLHxhRcrIZYGVbWWBBVxNin6QaY58Uiodb/SBiGwPEeKA3ljlAty+UconkGFxNDNt9aiXxQeswRoKSTmBhuue+Pbh3cXWx8E35FdA/noEcQ== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 11/19] target/arm: fix sve and pauth finalize for named cpu models Date: Thu, 16 Jul 2026 21:38:50 +0000 Message-ID: <20260716213858.609699-12-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: b4a2aec5-1644-41d0-eea3-08dee382bb01 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|22082099003|18002099003|56012099006|3023799007|10067099003; X-Microsoft-Antispam-Message-Info: 3c50ubuQtQUdnsRy105WSYPaB18oJZKtFajTLaX27jPv/tc9t0y623jxYEq5jQLpfbgMlpD/lExWiHEy32sHpS73evnSGFCBLKFQ9/ikBCicTsQyNwO1CQnvHP7ZZ3eZdaYmd2RG/Tu6v2mSSTP4DDsOHBEPbywfRRKTI/EZraQ+6tZRphD01iOmCyJsYmJbmpvbp8eGOPc2MG/4l7Am4EiB+63AzANnpcCkBRT2LcHG+aBxFHoxjvkIVICwtDQZHBR9r71ymsLrCAMtMVuFiaWfdxd8JST75AokdOyAQTgnjN4HA07rpjoyaYhJHFQ5nr00J2BmfvTr/lw9xBgzA3WKh+EJ+/Q0EzBuYeZxWVJ9oGk5V05MjcBFOJUiOmHruAxs26p48gumErtPwH7T+39Tn+ANnGqkdNINg47ck1p3IUapr8XMGAt9LyuPLoP/lu/LcsL2+iBATQ1Hx8gXVgpoyDlwd2cGBjNKgG3TwVIAYLXu+0pC8D2FmhW/f5e9oTvFjHwMPzC8RM7SDrVVv/bV8s/h6+bjjCqM0zsRXxrhcFQs25xOhy6NNzGz9ubvn3g/hqcG7CdHaKADE0ZiXxTdjXKYDWcOPu0nH+8D6h+M9s6kZerPQrQBA5YaQlbgj8ygYWdaBiNTb9ODSzAPwsf21e7ADpLNy3w2NzeVMAM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(22082099003)(18002099003)(56012099006)(3023799007)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Zq31EFaPl2thHhH32I/37r66Eyt1tNeQshO4y2iFKmHd0zjvUArTeMCUzzYQ?= =?us-ascii?Q?H6Y2U0Eh0nF15a+4FaYFEnHevQVKhvthpYOdRyNhd/oqjLh46kcjQPclBr25?= =?us-ascii?Q?HO1n2YiLVbICPe6xIXEgTsLNFcDCkikfsnvbEChYSpiTLJGZfCAGuWbcBwfv?= =?us-ascii?Q?mMQ7KzId8FBjLbjioK8cuDIvHFV4g5pgV414NDQYhUP28bb0jksvw3gJohKe?= =?us-ascii?Q?xeFo5goBxp71hx9HJ7VxLkPAbKJufKkFQNDrYUMoDZ6sEFjAEpwwvNAqZSvA?= =?us-ascii?Q?qy9gJEjzkNOv5uFMUdvzjo1A09+AoulS/xwXACpNQC8xPtZtWurElgQGv3e+?= =?us-ascii?Q?1gvyP6o8SkzM+7CtewEewVx5+R2TK+x/Yq97FNDQItI+ym5QN589AyqOb3pA?= =?us-ascii?Q?5TtwugfpvlFL5AqvGPvQCsBdNYz+DsCkiKvK0DPrVOCTIB6yZ4UF8k96Whja?= =?us-ascii?Q?Qljfu5zb8RHB/awf8aNl1HFqrvSJ7lqNBgAutFzPc+FXmAeRS3RCTlc53jDS?= =?us-ascii?Q?uClUfbwak55jaspSsqS804znBrsDDgcZsYDjBbH13F1PiZDMEGxdOS+iKDXi?= =?us-ascii?Q?X4xF3LzzsOTahS4qBR7kRhrsow1mEtWDKHMw7EZR7fk0lbNOq3khwcrzv21z?= =?us-ascii?Q?ikvSnzqKb44jsEbc4VIdvnZUAh+n27OGtxcIW4yCTDeOzFZRa4F+Aiq7SyxI?= =?us-ascii?Q?xTfi7XdSl4/MoS7kEs7jkVtc9rVNPkxmIhUHG4a78608rO/Fzhz9cx3BHSbk?= =?us-ascii?Q?71CKNIinkIZ60Q/m5IH/iSTc1gYy1+h+os4gv9+Ul+AKkEJyzsld6NaNejzx?= =?us-ascii?Q?Lz0gBDDCMMRJRvmrW7AS+Ms0GfVcXnyUtLQva6L5aht09pawLIcFKFWMuP32?= =?us-ascii?Q?k5JjqF0DGDWHZVAdP8gsKM7vhKb4vMustsWvt2XLiyOt/6rbr8BuhmtA05M8?= =?us-ascii?Q?CFCI7IiVVH4Og2Du7u9u3hLKUWBcKdPrHJL5ZM/JUCUWip3PkCNUFrS5mLP7?= =?us-ascii?Q?F3/pvzbnsLpi7cykRID9nVue3D0LRPBvqahHXI8m3yhgwShxgrZ/khuSN+eT?= =?us-ascii?Q?zA3a/gY7oiqKmX/1iPUlzom5F1iuGCr7hv70SgSCglyeWeD/tGMvsd+q0ko8?= =?us-ascii?Q?kXHAjMZZcDgYhkIlBB/5gOuiyCvE6NaJVqJksvNpvN8Ln+p/+4rOerMHe786?= =?us-ascii?Q?RVZ7OiVEHE9TYkWYcY6rxB8pE7c4pg5BV9BlOwg1alPufTe6adCT8ka9xm70?= =?us-ascii?Q?so03XNAi/zTf9LLF71bCCI6t4vNNCqf5XwNIDUuYoqd2VvOKosortkSKohA/?= =?us-ascii?Q?qNhOh7aB+EajfZ9X/TeG3cVSyFZKhVr7yoEaYV75b1DBhK/NyIgLv4wPlgYN?= =?us-ascii?Q?Qh9wBS3/KT30mdrkEp2pitojgkq8a1XU4J2dKgeMTP950R0XRox2t8Pj8g0D?= =?us-ascii?Q?Pz5V5WNkf7q83kQ9mW/3Kb1wvPZ4/0vP7zXWwaVAqetyGEWVU01HRkuvrne1?= =?us-ascii?Q?P+jQij5eZsH6hfgeu1ZloYZEzYSl8zbryxxmwURcFcv7hmfzr6176C8k2RT9?= =?us-ascii?Q?MSXvmtk5VIUwbgWWdA40Q0qGF4u5Scu+Ghwv6CLRhJTIRthLGfDxrmcPxoif?= =?us-ascii?Q?zEYKi/ROuDpk1XWVqShuUlPlk+IM2g11DqNsdQxXr80/Pdb5LojXKG0HkRG3?= =?us-ascii?Q?Jq8xeapTcVlT8o+AyJXhKVWNaxFHW3ihLz9sBqO61RNjTHn74TjM5eEUR+iu?= =?us-ascii?Q?yNqMJPNGZlPxbCk7jY88hGLCt/8WZHg=3D?= X-Exchange-RoutingPolicyChecked: gsl0UnfUKDlRvFvICR0AXRA4KAeGpcPSTnDdXJ3O6MH8cBOU0C3ECLA357LwQFDNPNPTk4EXM3+/BIRaG1DRZUEEIrLtQSNazvmz4ZQW0IdeBU/QuHb468ixX75Awaqjv8s3hPNY943aiNqpgn0vBluO287DqRHVDrQxDIqdtLs0IXt8oQlrvmBTrSHxAc2psI+9gNAgLTxOE/2N6khmhoDdprxq2i6O4dDt9pQiSXu6+9W+eSaaaHkArznQ4oWHBKUyj7HIeQAzWbn0cVpIB8HrD+bgqHcxq65T2fcmRghlfIRjGT3KfuRThjuPfYQLcX74asxYWIw1d/gKsLZwlA== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: b4a2aec5-1644-41d0-eea3-08dee382bb01 X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:35.7186 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: P8C6hZSfUU39Fptvr2bpxLOe8p0wwSIzy2rBBtfzEPQQzUVv07/cdS88fTCt78xnlxISCpSNfARxp361ahZTCSJlf+wrSRCi3YMjiJxjSn4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfXyjIKM5TgPYKk OB3g9Xic/SQnDMrCIFhJPvNsJiVrZRi2cQb1SL2vwI4Ii1AD8Da/fChkmtcOx2LMq34tD3nSkW3 A8dZXa46MvuyG0tXoC4aRcBzMtoNt/ne9+2veeU7pQGPiefjqdliWNydqX1gn2ciEWqMfTFDrFZ a0yPu+BxQVXf1j+0FXp9wMsKXlef1cLgddD1UWufGPp/6NfzCJAPw9BgMjne8HyBdvDNuvcGRj2 vnopZyHfCFxVjM42/vvaSGba3MpmBhkuL0+DKDw7HDu7+I5eRZHO2YYpWSSCU72fvXwhvgtYYyP VnxUc7fU7YUTz6tMJoHD5f/iiTW/AcQPbt2C6qQ7xU7poza8ZvzJ0Wy9JgQxfQVG7rFteJOVVd7 A1wlqqecJPi3oscJ9TgmGImDp14kNpY/wGpTlYWFVsu9AnbIdq2+twO6hg7MtxizPogJ/zV00wt KT6t0OQQDMVvgN5/1TQ== X-Proofpoint-GUID: HKesBllUhlx-5k52Eq96uUG-rwoipC3v X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX5/zLsyatyVcx 82F1vJM4J5L1yqO9h5138mtw3K56bkxKT1aOHCpxlJqImJwd6vuzivKRvLi4At+zpT6R2cuIUwn HDUeZvt5pxGPQ+mIT0DhyrOC+MpbKEE= X-Proofpoint-ORIG-GUID: HKesBllUhlx-5k52Eq96uUG-rwoipC3v X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f9c cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=eaKVySaVM5pmrxNhKe0A:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238189357158500 Content-Type: text/plain; charset="utf-8" Named models provide authoritative ID-register values, so don't derive SVE vector lengths or pauth fields from the host; require explicit SVE lengths and leave the model's pauth fields intact. Signed-off-by: Khushit Shah --- target/arm/cpu64.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index cdad0fc46d..44dd9acf80 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -38,6 +38,7 @@ #include "internals.h" #include "cpu-features.h" #include "cpu-idregs.h" +#include "arm-cpu-models.h" #include "trace.h" =20 /* convert between _IDX and SYS_ */ @@ -134,6 +135,20 @@ void arm_cpu_sve_finalize(ARMCPU *cpu, Error **errp) return; } =20 + /* + * If SVE is enabled but no vector lengths are specified, we must = not + * default to the host's supported lengths for named CPU models, as + * this breaks live migration. + */ + { + ARMCPUClass *acc =3D ARM_CPU_GET_CLASS(cpu); + if (acc->info && arm_find_model(acc->info->name)) { + error_setg(errp, + "Named CPU models with SVE must set vector leng= ths"); + return; + } + } + if (kvm_enabled()) { /* Disabling a supported length disables all larger lengths. */ tmp =3D vq_init & vq_supported; @@ -556,6 +571,20 @@ void arm_cpu_pauth_finalize(ARMCPU *cpu, Error **errp) ARMISARegisters *isar =3D &cpu->isar; uint64_t isar1, isar2; =20 + /* + * For named CPU models the model props write the authoritative + * APA/API/APA3/GPA/GPI/GPA3 values directly into cpu->isar, so do not + * override them here. Since other code relies on cpu->prop_pauth, + * mirror the resulting pauth state into prop_pauth. + */ + { + ARMCPUClass *acc =3D ARM_CPU_GET_CLASS(cpu); + if (acc->info && arm_find_model(acc->info->name)) { + cpu->prop_pauth =3D cpu_isar_feature(aa64_pauth, cpu); + return; + } + } + /* * These properties enable or disable Pauth as a whole, or change * the pauth algorithm, but do not change the set of features that --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238158; cv=pass; d=zohomail.com; s=zohoarc; b=oGkRnqOEkrPbqC5OJBjUBKsI7vYr5IflSJukiI6FzdhCoWcvSSZcJbd9irFKdu/LjBF7ETWt1yolBvcHJIOogqzRG5g58BfIAH6pOTTv6Ow0A1SsO2a6f3ZhFlfhQRsK4B98Gke3upGNAki79i4nP8ssH5VjqY8t/Wp0exSsvZw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238158; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=VMhDcyLwcWYgXwlNQSCNXQ1ej0CSVdQfpxrpdbgme0c=; b=fnQSqauCG1reQ1NibuuLmVSUlf4rIi4j40B7IuwdNCcRLtHPlwWAgC6rokwJl8CrMCA7vl0wjR64wY/RnDkSNSNhfrsStImv7oO4VG5kcPIoDwpHtXt0qAg8LHZCAwIJ83cl70PVFtKUnZJGccVwn2BcyUg60aKZ34nuVFumd04= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238158490716.3602179051103; Thu, 16 Jul 2026 14:42:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToe-00023p-Ds; Thu, 16 Jul 2026 17:40:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkTob-0001zV-Ck; Thu, 16 Jul 2026 17:40:21 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToZ-0005tO-Ij; Thu, 16 Jul 2026 17:40:21 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhv1763910; Thu, 16 Jul 2026 14:39:41 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-13 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:40 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:36 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=VMhDcyLwcWYgXwlNQSCNXQ1ej0CSVdQfpxrpdbgme 0c=; b=H04rHcz6y4sxEYUo26a6dcrmSn2CdaewNfFIGYzV7DFSNoy3S6ZQ4OQls 8aMy4LspwKrPNQmKXRyOdqGR2X4T2ZAvIUZUmeW+3BUnPjymxtQLuyC3BbdPCo8c fjcv8RkvqsszLFJnOzNmEF/oyoki/+jFve5AfQtMTgp4N3Q8KCHxlwGjjHcrAESU wKLyTh4DiB5qxUkIB5p1CcAqsLrl5iJmg26lnfMd31aIrRULV2kzLPWsX/4CAYfu Tt48i6uxhNySX0BGmZtouivT9XE7mEuVkaDT9Tfpjc4pJ/RrqYlCMQj6+z4N4bGv KGW5oinAyHJotwDpGMYY6IYjObytw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dLcdB9v6uS64yg7nsVaeYS8AA+WNVwJWbAFrjYKvmBXbzgNJtbR+O8GtNCxYrMbDlGul5OM01ci1SwbhZtbN74fZJm2fMRIwNJWU726gCdGkKQtBurU9UdulKkSP8ihefyiaCyq/uQ+9JhxKWXmJQbVgpZXQFbm6ow8dIRp4mEpezE8T+Hw+FOfuskEUeNqFCMCUr4VtIDN6n3eYzdclcZzTFJ9PlIe33eLNX+hFLalqKIdl9bcWoASV4pkQhyyqg3PigyPxcjgVt8xL00gOGrNk84aP9t1i8nkTs/YLB8VYnkaQe0sK3zUu74Ylbx75oCEL0pNGSLVh3n6dRzUjYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VMhDcyLwcWYgXwlNQSCNXQ1ej0CSVdQfpxrpdbgme0c=; b=nqR1YV3Wf0bjaJQNCo+BlrfKFWDs5vs6fQpgF8eW6R22Dd98CECl10/7ejkShw6ZfkkmnXVNVctAN5opvmGuKsuT3GtJdHZ5sUNjV0Ku9ON0IjNWubnojd8WGmF0v0e6uzmbWar6u4toc+OszsZ0EAH9TU6Q2edbp/XpWcL6NkJc2bZiF/eUiAxDHZkYdiYdMWegJHP063bQsfmq2LHDi2vS96SiiDhIzzHsVGRRvRMkcRRq7wc9eq58cvwzTAGjFJidKNtiviPr3SI8A7F5PbkAvaBWIhQ0LeKqUVX6ZVyKuzXmOMdvwyi3wegDKrRT4g+Q5UOWSJoUw7AtHGdOAQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VMhDcyLwcWYgXwlNQSCNXQ1ej0CSVdQfpxrpdbgme0c=; b=sQ9nqVhlvULNqRsjHaE0YA3App5pl4fbIWcMQD8MOvpjJZgCkhlAbJovNu3y7X6pdXpeFQX9iOiooCKH8NB/bph3E5A95XMY+9C/hdtj2K42dsXjGEha96DRW0YfGJ+XtlyT4ikASVzb6uvGlAV7OmURvvQhavKjJqlRGox4PLSP/fyx2Bbhd5GTJxm3+QfTPC2b6AkDXhvyIf20vmH3XaunXa4Sply5VpIMqVetgW9sklAaEyArZxGAVIyBeCHxFyAIW4+sXggNNOGrtwqAXiC6/BztZATcTT89go5tEP5TtxBYUJQiLd4czYj0zBYZRa71eqDCozUyo7V4HkqtQQ== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 12/19] target/arm: Introduce stub files required for qmp support Date: Thu, 16 Jul 2026 21:38:51 +0000 Message-ID: <20260716213858.609699-13-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: fc6820c7-4404-4410-f382-08dee382bb7a x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: N2/+0OQDwWeymWMtmoFX0kFINFKeeyx0LQlq4egw0qO2z2X+38eWLBL7HZzfTLMyhdzJVclwEYbmcV+1tmZbb7U/IvT2qN4Z8+L9OkUp2pdLglPwN9ugyXY6Gz6WFYXDvP8WuTWy+nslnVv8n0kJAhxWy1o0N2ioO6VZJKCs/xk4VtRPr9i1d3LtTX8hB6KkZq9TzOQvXfiqvPJHODnjHIVHA8iT143WwjBxFBz/ZLsVVpNKUEdpyDYwH0JYUuh+xken/1u/WgAVaoi1G1TPR5uZtKcvV8Bf5U+1iEx3tGRHmSV8zA5jqdX1tNtuTBNTiLu6x+yuFdnbIk6Kl33ntYx/XSQz83QiVf7cGRYJc2u9RyFqe4jXMpRX1ajrXDQYCbWHuwrru/00dcLMlt4c0lIyuPrSTACZROCCvXHq+LOJE5rWLPRHLK4lH/6rZcJO47X2W0Q/QrJti0TxsYURwinY3reyvRAE0l126GYO3R25k7u4JcHFeSk6m4cjsGQFlTxGWPiobiWx3sd/2xtUHUQbOLGcKW7iTA/f8OACTf8dhJy0ouaMBCv2+tUWCQU1uCeCsTj0KsWE8HLs8wo0HtefstNbx9bRuP79i5jwcyUBfu1y/wxMxjNRodRWc1UITXlwuxBn+jjzPtNy9yrTuzlmkqwfXLBeIUbkuaG8wVk= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(22082099003)(18002099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?co71M9Pd1k0KPdo+Usbh8TVQ6lUYDZzhdh1yOZ91vjNkugHzBYFmIcF6I42O?= =?us-ascii?Q?0sGgsaM1z7+SiMOCfXRm4VFuCzdROTQbNpzAyyFC4KOrphRD8DrnXy5fDwMz?= =?us-ascii?Q?tHLhqeVPMzrgix4kq4OHU17QLEA/PjGaUEm9rm7DlFgBbVdG+bcIIJQnzJ31?= =?us-ascii?Q?erpnXpep2SXxQiyXzPrMeh2xOiIPvMwwqUOUOrZ6y9OAMCFNCLmZ5avHICmN?= =?us-ascii?Q?oHInWuvdxJpw9E5iKdYGGjYGL/V+HE+1DZIMl3+pFM7sj0L4I1GEUHLZNFqB?= =?us-ascii?Q?RAm+M6DPV+pqujo3DiBPnFbIBK8T3IMiWBeiezOiQ13sQNV9IVfV5mbMgCBX?= =?us-ascii?Q?yy8fta4GlhIiXIKaD+ouQjVPCa1X6JncXjQ9LTjech0xH/QmIy+5xX5g4Bp1?= =?us-ascii?Q?zi0/pkVjlKJYZvYfvq7nT5l5GWmf8fcADgckGYwrp04GOgr2dfRm+hpnf+aP?= =?us-ascii?Q?qaz3VmStB5MH3EJszyczi5tqNfxYN5ZO6mdwpHcrEImHJTcGLMQUM0iSnUmo?= =?us-ascii?Q?BbWjxSn5rQBN0BEJW1FSCVQv68x5nF9LzNGXAktVFdSnUyjmuLf561ky+53C?= =?us-ascii?Q?uOAoRNRDWGeL19T6/ZZQ/Ta4ygd9JtXgwJiy5wLzbXjK0f7NQd7cB0BEVU7m?= =?us-ascii?Q?xkkChavm0gHNmtIyum+f2sWI0+nJ7o6wqOwhxTpUazf8BW78MbMu+P/puYnt?= =?us-ascii?Q?7O8efn8skCBgR8F+yKFL5XcUi0f4LYS2UFRGa6LSDE2e7Ue5v3IHoIs2LSY2?= =?us-ascii?Q?D8blFNHDXomhOERzEz4kyYSGxE5YlaLIPea1pG5RbmASHob8fy4e7XCy/Fzk?= =?us-ascii?Q?iPTyFw88wVwES4doiUXwMVkQHY0vTnlU9c/+HQ7cfY+FFGV60jPU71Nhc3n5?= =?us-ascii?Q?+7uIvAL/X0OURHmFuFISfZsUY9gNab9xLnwwInwicgND/wddH/+ghfhDKL9g?= =?us-ascii?Q?wQDjbLdPsXKx+TeB8xbM5ruFBi7ZFY4nljyZgcIETprU4CetJAHxb7oGWV43?= =?us-ascii?Q?qLgFB03+1AWIu2dTCM2DEFHuWSwEJecppnujXdpemz6Gtb+lFNclPj8CNvl/?= =?us-ascii?Q?2rFSPCegEAP/5+uKiHKZOqBj/SFoaxZCe/A0zN/sd4gEOqiKT/0FWVOew8T7?= =?us-ascii?Q?veyScfHzbJcgF5E3vPMB23SCwyPqMbcXZyduBUn17a4kNP0vkX3Lb+lwGByH?= =?us-ascii?Q?lPgwFdaYP/ELW+wIpvBm9JyEKwGKXY+Nbl2vzl9L0n90zpIFJS1/xACQoeeB?= =?us-ascii?Q?oBo+FkdwuwKEQGZ08wj33mE9ETCWUPpROJIPUhkbI6Hqo9OGImzKQIIOZ3i+?= =?us-ascii?Q?oFA+3lXOLYWmwa3SRIIzATmbbDmTa+p4bwNz64pkgVsbDxJBF2U5q8CxBbrb?= =?us-ascii?Q?xCv4pCAkeKoZu2uEC5RseBW4xEjwRMNcoVN4vWDvgzUymTM4xESiNDkNQx9n?= =?us-ascii?Q?orI3ZW5NWtTHblILtUjmrjo5YfqWDY4bN8j6uhwnv0UQfNAkiKGZzl9V52Ua?= =?us-ascii?Q?73aORcjpnpehFSaEGRWT/eB1SRipPbTHY+edxAYF40vkKtESjFyNnjngDkPA?= =?us-ascii?Q?CeNkxT4Bu0HM7ezBb9JynMRT+pYA8Z+GvLCDCEAFnSOB0/X5yeSH4v2WU1yt?= =?us-ascii?Q?FRaN9GTMjYhRLvvxFMvP4xt0u3Wqh21lC+SdWljVfeUUWtGtxkTkWYqV+hKQ?= =?us-ascii?Q?6QBmIMruxrgiv7MMcsMTnCUhOhWN/GJz8vKA69guOSttxNTaDbrulk763nAc?= =?us-ascii?Q?0Ok7oX18V7kNVplZBuauoA1SSrlw2L0=3D?= X-Exchange-RoutingPolicyChecked: R/WB08/HCJEgAWoWLVSs1TavIdkbravbTFHwXBkQmgfyz6NJhe/GHjao2y+SHGmZaBMiGIT0JQjDq8hQL4wVUP9Zhjn6Mp3GL59emQW/QqgbtSAZ1aKp6POHFej/JtBQ71SBrgrSMMMIdzqlwfZu/gX6wZWNgUu0F6QDdSDpbv0bUiRM901NlRR2qo1LTLVGHPumEfwFTpQ2f+BJ0PEj2k3gaobO+RntBlhQO1H13ViISc3vTunHlxwVnU998RadvPFb8+23GLgfIBfoO0eqXfYITmFHsqxdzAGhTPRC83WV6q/XSwfrIo4uTZIMbXSbokwW2p/bV3KfoBBCNArYqw== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc6820c7-4404-4410-f382-08dee382bb7a X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:36.5021 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: S8w+iF17VT+1v+7O/5oly/3CVBJaqtrq33REe6cpHte7HBmQtQelx7Tj8VM5tLTsufnqPVhhMzNvf2pDzIbv1LfGvsYbLiqNCS5xb3u9LNY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX7UOCDVQhGCxA qJlSbw/O0s3UCypM770iZfQcCFDwQ83tbJT6TZY4WUF74D08aJhp1xyD27zDcMWVYnHaUXcMF1F 3D7fJL2M2FuJNrFf0zse5cZW0wR+1BG771RYBcfe/PunnPLqq3R3e8c6xkeCCC1HW2yGGffUKWi EW6JvW8AeeGjbFmvxIZhaFI8HWJNAPFluGKNbJTQPQFfsGd+28/B81CDNfjOLPKsK1qsfnv3LaG MHf7kx/yv574cvxxwYaSVpic352olay4t+SMduJMJLgkFmhUSWkRrOqb+PCU1OkPMRZyU0ryfuH uNleBi263U1j/5oYTJgZYpfFfY0ps96FC6GxHXceeT3f700sUCOweIWkE1pR0UJebJtb/HbGQYk FiHRLrgTXJwyiiPCADRsYyzsfPJyEsTKSGiCdJb9VUCWEFFmqYvUpihe1g8Ke/ahW9lfHwrE7f9 E8nHiA7YRBV2K9T7Xbg== X-Proofpoint-GUID: 3V4cla5NtvF-q2HUagsPBwz7xDTecgt9 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfXztKP6NVx+EAo AlKJYpl82Hi37g5FEb4YBNMyBnQWRVLrkjmpXJhG1Csx7zzuY6EN2dWWnjc6akjRCqGikA/4QT3 GYKn1HUdcJZJd2TPSGZx6L26lRLKSvQ= X-Proofpoint-ORIG-GUID: 3V4cla5NtvF-q2HUagsPBwz7xDTecgt9 X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f9d cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=OFCXbkOoVZKaM_sWDjYA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238159219158500 Content-Type: text/plain; charset="utf-8" Add arm-cpu-models-stub.c, which will be required to add qmp support. Signed-off-by: Khushit Shah --- target/arm/arm-cpu-models-stub.c | 13 +++++++++++++ target/arm/meson.build | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 target/arm/arm-cpu-models-stub.c diff --git a/target/arm/arm-cpu-models-stub.c b/target/arm/arm-cpu-models-s= tub.c new file mode 100644 index 0000000000..0481f0f946 --- /dev/null +++ b/target/arm/arm-cpu-models-stub.c @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * ARM named CPU model definitions - stub implementation. + */ +#include "qemu/osdep.h" +#include "cpu.h" +#include "arm-cpu-models.h" + + +const ArmNamedCpuModel *arm_find_model(const char *name) +{ + return NULL; +} diff --git a/target/arm/meson.build b/target/arm/meson.build index 72eed1bcc6..d7b4cdc5c8 100644 --- a/target/arm/meson.build +++ b/target/arm/meson.build @@ -21,7 +21,8 @@ arm_common_system_ss.add(files( 'arm-qmp-cmds.c', 'cpu-idregs.c', )) -arm_system_ss.add(when: 'TARGET_AARCH64', if_true: files('arm-cpu-models.c= ')) +arm_system_ss.add(when: 'TARGET_AARCH64', if_true: files('arm-cpu-models.c= '), + if_false: files('arm-cpu-models-stub.c')) arm_system_ss.add(when: 'CONFIG_KVM', if_true: files('hyp_gdbstub.c', 'kvm.c')) --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238058; cv=pass; d=zohomail.com; s=zohoarc; b=f6dY0AhcfgajONFyjNu86M6W3udEiI49IBfqlDPke7/AjcZEqhVrlBiBUN2rKPn37pqSGjx+SShuvxIPiVzMQOIQRvF47YkNEdyDQmOzqyrHRb9RDZziLFge5zy4VKlYsnOZBojHtfQaBy6q8XVtf0qtulZSMPsKDRC16oNNMRg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238058; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7XpSfTTOZcwSLfQR/4RCKyp1WfFPozFlnQJD1YftRiw=; b=aRYCTHDFwSQdEsjTVL9qoGSDXDjgmhI1AgsrYtowB5HwpE/mwGEDRj2g51/LGYZln+w7wyTiuXcgfGi3qAJxRuvEzmr+Y8Ff32TJwxwCYbjeIj6vWGKVWYg2NY8E5YwtfmIPKn19qxm5+76Glxb9WWlEpumzaqLDmrqcDLJSldA= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238058723914.7620937996468; Thu, 16 Jul 2026 14:40:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkTod-00021e-Nk; Thu, 16 Jul 2026 17:40:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkTob-0001zU-AF; Thu, 16 Jul 2026 17:40:21 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToZ-0005tL-IO; Thu, 16 Jul 2026 17:40:21 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhw1763910; Thu, 16 Jul 2026 14:39:41 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-14 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:41 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:37 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=7XpSfTTOZcwSLfQR/4RCKyp1WfFPozFlnQJD1YftR iw=; b=Je4pL7NLwqRPjokPmLBVVjB31+qdRedXiiiJ5zSv+x+OOY71Gl50+6FjH EJFg7FAJXuq5HgtOR20DM1jScQQwXbsofClRctB4bAf8f1yhieT2AlaufAZRV/kQ MyRic6BG7FOGUZMNMbr5Aj7z7F11uBObMecKwUxeJnoxsVuzooyyf3Yg2ApnlZ10 ybNvVOgze9Xh3mJPtiClyrXIhr03fkNX4KUbpz1Y7rYMhkrgK7/0EVTrDqbcWkVC wmWdDwPVPotkPqRYUJZOf94R06mSbcY8fihLcTsyafQIBmqT8f7DX1DtlXLtHb4Y t9IkBl6iIixKRGMPC1BK2Sslor56g== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=u7j86m4IcMUwJGLbholWlE6mJriqTBwBhddvUCj2lbGmWxCab6XmWrenvKqSGW4yP9RzcZgdab0QZV7B2L/dw73Q2oAEFp0mD2+prvg81NMk1cp9uSfNF47r5A6Xhq0SBh289Q2gej+7eBAeJN1mZR6cAdnYiDEfVxcLAzKy1CzH/4QyCuDfejeZf9TudMwv4YWoYRwhndBx1O8fip0LAdvSH9mIOasImSFeX5O4jUCerQ/r10sKx17htFXFk27uCbxkvfkVlu0Uhsef2MrYiqxAb6nC1+Yuo5+50L6gFtAohc/pee2m/5evDvSAbCm29l92wVDV0u05d1FsYfCGrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7XpSfTTOZcwSLfQR/4RCKyp1WfFPozFlnQJD1YftRiw=; b=kNlZlFQ0DpWAoX92PuUgovBqVXEdWNQMVLjPNjbIwY0EvgNpTvjuVauNCfNb7R6Wwkc9JEP0npLSj/h4vVSQ07Gx35KJBkGsy24jNZTkXNg2ZO1TaSLskmoMJc7IKJYzJcx+MXzDap3r4u4Hz7OWa6bACst+K3x/vI6Bi9LkYZAnxA/4tlOscDirhKxenJ0hKlV+qUX8OQJGljcH+BzrBoosqLZTpSaRaVnP1WE0y2jFtETm9HB2CkFGqWBQj1SPBHVNYh1JNdrEpAo5ZJkGm5OeXbiyF05eKclsYUlosA637acbUuvfFEewa7TtzpEQ+E3RZoj0/MNcgsV49pT4CQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7XpSfTTOZcwSLfQR/4RCKyp1WfFPozFlnQJD1YftRiw=; b=l6IyTBb/rs07wjboK9Gv6D/7z8nJsQvo9xcKEZqmsMZoutxD3pmQ7E9iuaPzTWGwp+urpHUPw5YAJLaP0iZDnFAzTZW8hgg9YLyWvY4cspqkyDtSd0nrCunh729drdeXtqx42kZQ+25oM41ANtxwPRZw6VxwGafdoF0iu2ISryJRujhk1HZi0TuDmwoJo9BnPKPS3GjPpPnMZehsjsivnQsM6sQ0nCjV6Hfx1Iu0Wr6MN5ZChWR/HII4brTNjI3CqNIH4WSP5pk8Sb/AnhWrGWglHL7+lDvaE4Ow6gtdtZBHBTPDIx3qlz6Pbx/O6sI4o2uan82epzxXRx823FtaBQ== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 13/19] target/arm/qmp: add named models and properties to cpu-model-expansion Date: Thu, 16 Jul 2026 21:38:52 +0000 Message-ID: <20260716213858.609699-14-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: 9c6eeac7-1a5b-4bf5-466e-08dee382bbea x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: HxETs8bXWVidcvl3WpOV1kh4oJ7znlSRvhCAu9uvLPi0/5uXa7yzbmdO6j5fTWcEm/U23Sm5vssgp+D/riJyJz1whJv0nWzZXLcGSF7cTm7k9fg96iYMNnTFfgsp/wN7vOrgFi651A5F6TulrK23hhzRrkiFMAV2LznCKdpkDEurMEF+CF9pF1pHmgb4FDWvbscuhaWfkqJt5QXbmiP3CVPj6FL9hw8zKZMNBwdkV8THGxNRtT4RI0CzFOBzv4DTOcvp2v1pSqyhvgFH6NE1Tsu4ynEMAQOBkYgoIFo23nzeO1oNkWl0tEkiAP0y1PMevxKKQYTfMX/HsmFzbFjNt4ZH7cr/JIaKVDj+Me+qa3wcrj1QVvCheQyIB5QJC0guRJrZPOORjI7+5NMSgaFIEcSd56pYB2U1C5+9ahRQO64zn2FMBnM1s63dLCkgkq8S53ImE78KzmX9CG5WE24Ef49rZl37AXZ2zYgGU0yFVJAbWs/Fold8U7YF6IW89+BOxaAKLjf97l6csfjAgl+wiLLB9Tb/cGCHOSfseZE2xu0q42qf6nM2Ru7kq6tq8AQd91LyebMLRIP1Cs3YULpake2ydtL9k80ZXsY0cJ2V2h/lzXUDJzShFPQcmws7scfq3/1CG5DzflUnV5J71jcMYI0M/CUeexQPZxthkUY9QrQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(22082099003)(18002099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WCJ+5mIyuTVwnkOolaL6EQRLQPRhNPCPLzsps6PF9vDAFjuTbfVrmacv6Q4z?= =?us-ascii?Q?OBrx/gAGk4xqjHV5qHE2oiO+a+uT2BWue8NGYKvsaaufvCCdJFNloQXqCaaL?= =?us-ascii?Q?047NuvW3RraPhp2rS1LpTMZgVsbFdWj/sAxLZOT7o9V8SATGA3kEnnVajTwy?= =?us-ascii?Q?ot6ikIRl9Ceafv5b/QzZvgDgv8tCnZA9SQiinwSPoMUTkTa+ZtDt3DxYsTXN?= =?us-ascii?Q?CPh64stsjgkdzIa0uyGDyXX3WcUZHpxROQxlSSzXn1btcITh/E+vbrH5Dqth?= =?us-ascii?Q?zlc+hb/sICcjcFxVOGqPGl64ERzrhIqfzrMKTzNffdvz+clo5y/YNr7RHRUp?= =?us-ascii?Q?Aa6VlAyh+DlYtw7T784Ell5Im6x3d64L7GDu4sfeEYEOReP/olD4k5itleab?= =?us-ascii?Q?pWkTsagHU0o7l1JOgVdt5kghQW3HoaOYMHMh4defXxW9hwNlf2HGYQJVUhV/?= =?us-ascii?Q?yn6rH+AVY5rj9id/8V1TjHpYYYlfzQ2oQCXPRsrh2ONgYJ/zG8tyfLC1yARw?= =?us-ascii?Q?VCkLiNoq32pBv7cTMksCeEn+U3xV6wYMOy7Y0T7WNdI+nekxrT4vjvry2/53?= =?us-ascii?Q?/Wavsmhjj+fIsKdmwBDv0UmQUxSos7QjYCyzxwPghpEjmic1ysnTC6QZ6/6q?= =?us-ascii?Q?EG0KH0fb6MO046BQdXU079yi+WO++P+1eOXBFNnE/nhSY14WG4mUEwDYAENW?= =?us-ascii?Q?L+e0b/W1eGM3rjT9wHpqC/ZRAmZzjKomEK7p0CyDYakaI2dsEDxedeT/lxA7?= =?us-ascii?Q?QL/yZ5hhRlC5o78kqlpXzBnIofXgKebwak/RtzopQqwgb+S/pizrIebiW8aO?= =?us-ascii?Q?fk/12V9izQa3smH3jq3Mch6ByQh7ZVNXlHH25obwfvAcpDeEWBuK888WiUBe?= =?us-ascii?Q?t7GhWlbpAQsByTTeaRYgLJijGnxZHcnCQjEsb28wuQPTuepJjuu8OsaZVnYV?= =?us-ascii?Q?5Gh59IaIC1+MqCil0xGGx664BoYkqTTszzzmCNpwTlwLudJnQWTAskVJOhgn?= =?us-ascii?Q?pAQbke9VrIArq3fLUwlQRFvK/ttjDm3CgiT90ZXR5DCkJoqMtcj8SC6ejBWF?= =?us-ascii?Q?BZh5J/7BquA+ZgPSsWWTiBpYvuV0KoSW3cnjr3R+vB9RmEFL+aspaeBduzOU?= =?us-ascii?Q?ZnN82nHhzEpnWPWIo6WthMthtd1trCWI0ugYfri3VDH1qhhVMR+Xmw/dWcBW?= =?us-ascii?Q?76hfg2KgcoA73EVDiZQoIwv18Rnqp1nEcTvxS+Ufhy4GcItQX/i8ZqMBfWRh?= =?us-ascii?Q?oAHviOBdUmWbJ4RjV6i15ooHvhDjeevx+DNC2qA0KNV0DnlKk9fUhktAunN1?= =?us-ascii?Q?N1wDoEB8RPOL3o+ErlhgZpOiiaXKwuLVu8svaj+efupjxA4ba0Ssv49+Wfh+?= =?us-ascii?Q?hC2b/e+fQx17hfEOJ8NiuFq7u8JpG7NYHzltEHiVariHHgSZwFa/ISps4AAn?= =?us-ascii?Q?mvsxnfwfmn3V0m3N7MgOM9Lizal0NQokozoqCMyPKx+gkYDIQAWrD73JOy1F?= =?us-ascii?Q?nd7OJN2XYa4g6bex6fv8ARX4L42GU+SHWFVd8gClPrLy7uZ1Iacy1ovuJv6l?= =?us-ascii?Q?8dsU6sAG+Z3hEtw6Y0cXNL3hLHQ2UBA2OxgPO17TZBI5SUGzMTyhxl9H2fgw?= =?us-ascii?Q?2sNg2tTqMFKvQcnh5QK38SjpXbhAwL40USzH2GgT28k6zyxZuRC7amo+ISQR?= =?us-ascii?Q?wTZPS6Vm8Ubo6Bjy+qibPhLS3jk0qhz9Hml1+/kV6nXrzuMmPlKrctzMn5qH?= =?us-ascii?Q?sUG8eqwCUHk6S0dM7rVP/YIm9iwRtg8=3D?= X-Exchange-RoutingPolicyChecked: BeSDWI70k5nLsb+5X3sK21E0JYCiJTLB3e1UErd75tt4PWJRhmM1zLpfwQRZLoXJ5mvot7ZEWINFK56hluEkTqe2T67edjgNwp9omzO4gHLOKWMG2IIo9J4DK4LIOWxmQDhyVmPSLJVz4Fga1HRrL2OpI2gRZtv97+gxQBbq+N9t/naoA4UwFTQjmXsaU+aAgUXQ8t161RLdFRzLxcD1g+b9rXLxaUZjY6t9Eo13EXGzIQ8WVU5bdqK0MSP8obRjOpvffG7eYOi2OEM0dezsLW/10wvd1EugnmyBp8TzG+ssPC+mNnlmf2F+Tw2O3vLOVEQfPD36t42HDlAz+EXvgA== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c6eeac7-1a5b-4bf5-466e-08dee382bbea X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:37.2215 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uA01+3ybOdTf4VMRPXtKB+kjVZe6IDCu+iKwBGtn10n1ctbvg8iu4LU6ErikFGYaLqJZmMRp058h7PomhRIeMkiBoGdn1gDR3Pm5w5YifIY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfXzMjjzggIUsm6 NL8FrxsQc5OD2zqOCKaXAHh2d4QMinoCnC9qQ+dnEFoN6+az5pdUopUylBRPtqy90/mSF4a8REM mSwe5zM8y+BnwrCqW6SeAK2szDkUF30ZjsMvqlpuXPl5KuQYTSaNVv8Txizy0o3Sb2PqHqDqrxo ri5eocZvSGeB5WanrFE0we9iblj7EZAAn8BaF9g7zUrbqQQO58mHOxArdqn+S+6VyrkR6u57+Js fjqAs7V8Rn4E/LFeF41/B8BGpxWlW2yCXA8uCkdkBGr2RITJ/BITGLX/mxqjqNt5/9Dd0iOV2Qx fRh4wtWifCgJk8BvxXBuxD2KRTGOhznOAsrphhmTBbYpWklP132L+ID1XR3B+niVONmZ7NvMGmJ NL5PU/DUQO0dmF9OzJ7q901LY0UibjbM5Myq4Y7wez4o0bww7LpXNDZzIq/2IcOkfsV2cxWibTO AEAUbmmVZzyoVs9IbTA== X-Proofpoint-GUID: MEGmzORk6kY_UAtzgaWzX7Tqjt0QGfRr X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX6jcnEiQyTeNB qTGI+sefDBmazRRhPIcs3Yh33AQ6rnAOsrKVgdo+4quiJtzqVMtlSNLKbSWHUiX20Zcxs4/Sz03 0dobEk4kge2x8Fn/aWxmVfLStgcv624= X-Proofpoint-ORIG-GUID: MEGmzORk6kY_UAtzgaWzX7Tqjt0QGfRr X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f9d cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=cp790dm7hVwQy6wAJXEA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238060765158500 Content-Type: text/plain; charset="utf-8" Allow expansion of the new named CPU models. Signed-off-by: Khushit Shah --- target/arm/arm-qmp-cmds.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/target/arm/arm-qmp-cmds.c b/target/arm/arm-qmp-cmds.c index edcfc82a25..bdf46c823a 100644 --- a/target/arm/arm-qmp-cmds.c +++ b/target/arm/arm-qmp-cmds.c @@ -33,6 +33,7 @@ #include "qobject/qdict.h" #include "qom/qom-qobject.h" #include "cpu.h" +#include "arm-cpu-models.h" =20 static GICCapability *gic_cap_new(int version) { @@ -92,6 +93,7 @@ CpuModelExpansionInfo *qmp_query_cpu_model_expansion(CpuM= odelExpansionType type, ObjectClass *oc; Object *obj; const char *name; + bool named_model =3D (arm_find_model(model->name) !=3D NULL); int i; =20 if (type !=3D CPU_MODEL_EXPANSION_TYPE_FULL) { @@ -104,6 +106,11 @@ CpuModelExpansionInfo *qmp_query_cpu_model_expansion(C= puModelExpansionType type, return NULL; } =20 + if (!kvm_enabled() && named_model) { + error_setg(errp, "The CPU type '%s' requires KVM", model->name); + return NULL; + } + oc =3D cpu_class_by_name(TYPE_ARM_CPU, model->name); if (!oc) { error_setg(errp, "The CPU type '%s' is not a recognized ARM CPU ty= pe", @@ -117,6 +124,8 @@ CpuModelExpansionInfo *qmp_query_cpu_model_expansion(Cp= uModelExpansionType type, if (!strcmp(model->name, "host") || !strcmp(model->name, "max")) { /* These are kvmarm's recommended cpu types */ supported =3D true; + } else if (named_model) { + supported =3D true; } else if (current_machine->cpu_type) { const char *cpu_type =3D current_machine->cpu_type; int len =3D strlen(cpu_type) - strlen(ARM_CPU_TYPE_SUFFIX); --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238121; cv=pass; d=zohomail.com; s=zohoarc; b=EYujW0Od3saVw8SJ9sX8aQvMmuxQ/bTTSMfMYGuqlkEUtNzyDlZ4NNA0vJVCP9nJsMc1kFVlAfyBnp44PyWFYsKO3QmAkQQ8VaXfGKVMBYFFJftyXjE+2if32s1u0CEx+xughRcMep4FGAkzykANLSPB/gg+365Rx1PYWqIHs6U= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238121; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=l40yKmzpFsOgmksblSn+/sDdXmg8rL/P/2KbeRBl7i8=; b=TKi6IMD7Bq3Ao+4Rd5gW05M4a2WwygCvH0WKo/yd0fBHsWJu9SQuhBifJAv8RmWfmP3+5SCrJDscDwin7MKM3yU6mPMlqSOmgDlsP5GcD+Kg9Pfjoal/xGWOuOE5vKIthWwyY1aKlnHsnKbJVYTMlTKkbIAgLFV0VdG2/d9C0h0= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238121492333.0939428079281; Thu, 16 Jul 2026 14:42:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToR-0001yL-5R; Thu, 16 Jul 2026 17:40:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToK-0001kX-O7; Thu, 16 Jul 2026 17:40:04 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToD-0005s5-SU; Thu, 16 Jul 2026 17:40:04 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZhx1763910; Thu, 16 Jul 2026 14:39:42 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-15 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:42 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:38 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=l40yKmzpFsOgmksblSn+/sDdXmg8rL/P/2KbeRBl7 i8=; b=lXDBAkSFkbGNrSZP3r12man8bU8lg6gS0ulr1K0U6Hc25qLRjr5ZAy+iQ 7qdlmwFJyBayh/7dFdjGv4o7PuGnOUwdk2XM82CI5CLZhHCDM/8XNNWOztlLs5PF psRrr/qi1pTNGStUi0r73DcBEmknZTyCwyGubtzU4iykqnODahRuAJT43lSD7IJi fkE8s9VHhwQ8jMFN5Zc7/WIjyMjVbRBLbww46aFI8+hTRcfa5SUo7IXwuBu95guR 0EY2QWbE7sDN3Th/SWgNybIskw+7FmQp0aV8MzCwTxI/uIjHF2Y4kyP0RupONaKT ZCg3HjTd6fazRIDiTYGwpkFg5kagw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=u3KZqggxoX5EyfICI+MPSrkAl/eSnB3YZr6ZZ4lLOYQyS0EMeP+B4tmrL8lon04/T5nCkPlDQ/k31+x+updJhpsUiIHYt76XQcyedqNHGxz+GuioQTfUQ3E7MyBF5ePnWFkFRxxmXw159JdcPuohj4I5ufp4ScASen7tXWVIQ2pBOzu5VMpqC22Q2pfg2bknBruXQS2aZh7Ljcw76fw6altkyD+QfB/cvW98oM48u+V/z0ER8xG2K3ie3SAhkgmmut9QXO+w/xfRuwlvsvlIgbfkogQneKtqLiAhW+O2JMi8SJlML1EgqUZsvIHPlyyYx57uKcFV0OuXU0e9zo+M4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=l40yKmzpFsOgmksblSn+/sDdXmg8rL/P/2KbeRBl7i8=; b=Dz7mV5BccEhbQJQdrgYjh9IxGCk4fqNnAajZ+mYDzTYcdvicNNdX6BPeS/izPRsi1hryYR1H08g1R4EYtSA9HBZnIKGGgfD9D7c+RLaNVb6hVpcSiWTMOm4A0gisK0EV+wy2DyyceQTKaz1dA8WLGtGERgKZlKrITHeGEl7Ukp0uft/lEnsVu0Th6Wv5TTS4aoref8MORfL8F+yctrykZaqNSg8QF0RXIdMALzHAa5P53MN9Lrw5d9y/c/zhc2g8CTnwvIX9GZGRGR7bswk0C8+w2mMNnvfQjsKzfXv/3BWSolA3eYg6ZHH7QawSDDLGFMDvKGamAYPvCtXDynT1vw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=l40yKmzpFsOgmksblSn+/sDdXmg8rL/P/2KbeRBl7i8=; b=ktPIgh54dm6XbOWVQvdUKely1O5+/Mo/fzUdzF28SHAKCm2V+kJB03ehzYln6rLidKOqf7S61sezJ240fEGjaZGnzDBP5NQYu5EUHX0NDke67KMha2TElVgd6HnRAx+C2Tih/Bh2dCMLoU23uAg8RLibWzZqNuvF+k2rnpNl5BWnr1034cqsxbmdLZsPUmueRUfV+b3+6KchqrD3OgYvEmBruhbaH1b+A5eoK+O08fc3GpPzCd3x5OfVNygiV06IXvdSb29ElNL0r/9uRlr4keBkeqmK3mtOjirDEpCJ3wkV8PoxZlJiu9Gt8ZePzTEn4JT27TVJgDfnx0NgbQHOKw== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 14/19] target/arm/kvm: compute supported values for ID register fields Date: Thu, 16 Jul 2026 21:38:53 +0000 Message-ID: <20260716213858.609699-15-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: 23e48c58-66c7-4306-1185-08dee382bc8e x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|22082099003|18002099003|56012099006|3023799007|10067099003; X-Microsoft-Antispam-Message-Info: 6MVI9dUGDreb4pfFqFK/zptPbAFOTYyK31QR/cel3NmRCmnLxMtvJSiCLKKcAIX8tOxIIlRelA4AMSYp7J4MnLXtT03Y1vNzWA6PFR//ua9dGTeAnTpzXcKMzuKU8JflQ6oslBLxVU3Q1Knl7sb7OUGE8C7LLfRjO9Zpy15eogLpZF1j0cJWc1+fq5XLOJT/NqLVSf9G6SPcIbGJLYF5ZOrkh5/c0Hiosg8dlmtLbWLITY+Uj5ayS3uq2INNMWH4dqzPcuRYeYhLIFJs/Y/2kB0e7OzBGqEj7kSf5sZl3uaI9UQxDMO1Q9/LF9bZaoupHFNjXMqjg32xz+fpD/k8P9qWx1pWeZ39vqoFqjvnIGlR3sHirKPfCNNSRE4Ew2ggH3UG3JEO+hJ48os5+JRC6ERYtrks+adMHi2I3I5winX8dQujNDFHM15tH5C/L6j7vrDaEqXwSnWu3n12+gVxAjAAu9b6Krxtm9mobR9C0/TeThZHiptCBfATUGrruQ2KD2Ivqvj5nd0ojTMasGLiWFOa24tWMoou+ujlfIt6iZZ3jyHV5ez5YfY4+rEigVr7lEQOpnUg1dVXQloOt0BqL2MKz6zcp4ue4u1FJr1jl15SN3USVGcLEWZYQ4nCupXPrIj7hxM4CFLe3ZAPM9XZQo8D/+b0OPflFtZKQ8U6e1w= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(22082099003)(18002099003)(56012099006)(3023799007)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XntrbqSzG7DpwKoTeml7K/Z9HKRiuWTM9VapRDoe+AYZzYvdPH0W80vvdSV3?= =?us-ascii?Q?ScyWMFbaGZQMiwzQRFoXbyzbQ8/PW81mp3uyImgGiAzlNyNwdjBv0/S4ZJUT?= =?us-ascii?Q?qTwnJ0A/mtk5eGV8e6IRmDJBGHjb1H6KKM/AF4q2IXq8C9hK/Qkcakg8QY/7?= =?us-ascii?Q?+A+tpESRwLq5t2Ihl1ToeeDY381eR4dcoW/iZBg/1weroKDQJ5xAYkJTi+ra?= =?us-ascii?Q?27mmXFxlZzEiSSYNh/jp0c7WzP/ibNlpLhZ189PZ/wpUD6bmJsnak9070hBl?= =?us-ascii?Q?cBbInhCNT5mvvFa42pulik5+fqhaXvvn5Rv2lsggSzyiCK1TCYpk/3W2x7u3?= =?us-ascii?Q?cAVS0eeqoilpwYtCQWDd/vN/vrRoWsIQiVidXQoSytJGWZrF1ZP19KtG+kDt?= =?us-ascii?Q?kTIWEkfjT7gHZrKLUyK0lcFULM7lKB6XHohZdYmC5zz1M7mP+gihOcPdF2DS?= =?us-ascii?Q?0UHUUs7n2GYFduBzEG3nCNfKJssbdZnatPE6EbaNzgn2yFES0+HGI2yDcFmz?= =?us-ascii?Q?+RvzYWRfPCDTe7qgeU3CclE9YY4GgyG3kXvejyg5s8wTqbjL3ZiRhIrO04rA?= =?us-ascii?Q?Gq1ZQVdxyKd59X4pULlT6gqGuwaKBuM25fwcQdiuzBT8NVRpnOj6vyMVa/6O?= =?us-ascii?Q?NBgfrNxHHtGyn/kXpFNLSqF4Xi8aVKXZ0UzlDxrBxlJkW/K4A1IVPuQg1SxD?= =?us-ascii?Q?Dy/TFIA414ofkK+lsmchD2rXDEZ0LbopLn5CAUZhTPPEq60OnkijZHI6mQ+a?= =?us-ascii?Q?9XumtQLcu5iRkDRatvTCVwhkaCGb053ZTQiPa9KvqOHUbA6P0QOWTCJosJn0?= =?us-ascii?Q?xyKnjNyLOPB+J9P/dE+KH2ZY/7nF9x7twwFxPAoeewBZu8cYSw0GwjIeWxv9?= =?us-ascii?Q?AJMEmCBSQpz6Ol67JNVnHaP7GcruxVYL0saKJVpEoRqj5hISu9GKOWRj+Btl?= =?us-ascii?Q?oQyqKpPlMmSo+F8/a8fggIW4wgYtQk5Qf4ZjUzqcKHZ/DgPkFXo19ZiGkW6y?= =?us-ascii?Q?Q+tLAxAfWhPTPd4bPlL6CD2b5J3SJttt1EZkXoEMIJ4tF5Q42yMQtbK1uz6k?= =?us-ascii?Q?awvFbp6YcmLctFEjK1RVTHI0LgRU1LBC8wDq7lrK4bE0VKsorHkV8jTHcsOF?= =?us-ascii?Q?C4QpRfRhUBpUNsfmoQGb34x2dzKbvV6WCY8NsL2sA8bbmsohp972YxRrRmHL?= =?us-ascii?Q?nTuh5kFqHCCw3BTnocDn+u3EBhF7j+33JID0x80rAZ4/JQw1WtMpAVz/i4E4?= =?us-ascii?Q?nMJJNdKatholf69veO6mwGOCc1yzugczgRFmulS4eiU1SOQY+pbJKeabd5Zg?= =?us-ascii?Q?uohkHsW4dZdE5oEdU6kfQYIytTIfVokRusThN0OAuWEfVxTmMWwbX+8aHMmC?= =?us-ascii?Q?T+u5JMupuGBtVmuqvxTTdgU8QkWM9Aa5VfZV03PIsoVLFv+yxzJ+SnsF5Q7T?= =?us-ascii?Q?xJuyTajEZNi8z3Rj6FPouD3eeXrqJzCHNF6mC1eVCtgMcvNFgVEw2xx9KcAR?= =?us-ascii?Q?mPW9GDPoh2/1gaB2XYlRx2d0yNwgK0zk7Frtz+sbySoUluP/aCZS1sR5q2gs?= =?us-ascii?Q?ooeChYyl4wsMKQMEcPawcn8fLYbexF+yQxbKpO2Q/ZujjDgzSA/2F3lwrHNp?= =?us-ascii?Q?zs2zK0yBAIwJLzyBi+lm9/kggT8b7ZZQp+A0ZeiKzDxVB46DNl5e1m7SlLk3?= =?us-ascii?Q?ldC2mvfCvBQTP5lXdZLJXkQVc+6uy8z8oOr8XPnxToqy+5EKO9qXETldYkTY?= =?us-ascii?Q?1gPkIfYLoYmNMo0bLYFH8T8Ue1gjeV8=3D?= X-Exchange-RoutingPolicyChecked: S9bfwSjBs/TOy3tWc+2D4nqrxPb2u734Y2tCAQQutIcP2FjF07Mdkx9pdUyI9XYfl2xsmhYSKFKlbFLxYbCZQUabAjSi9NMMjzLewmeBo8i2GXb81ijhZYeqRc6YOz/osnzlGv58jxNtaKc4BJrMyIka+wfAGWBtfFiIEByPjTrNX6DZT1TTHq8fT2XFeR7fCJl6QotI6+RCc6dJ62+N+MIVV6PmOeWwTq4BsBJfYxIjLnIiUeOcH5Btsqx0Ml7HEyhvWrtb0YnE1ORQAxqzLu1Q1W6Bf2hapyKOUI4gy4VUZF7NbHbokh1N7Uvm6VtQvVdNW776OZ4MjGP1Yc4SfQ== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23e48c58-66c7-4306-1185-08dee382bc8e X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:38.3014 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BxymFdOOBKmOgjz3ZtQjTl7p6Wuktd/Yr+Yvx7DeEoMNTi6+7EHcMCTxXpbiHvqNvG9A1/TMbHlcvySecQ5QSEAqBNDGkve79w1fYYAlLAo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfXw9WifxsCGxQo AncthxjSPpYDuUiV+F81cl1lvQrqjmZsHPm+T05dJr4boVXb280nVLgBhcozknOg2L5mtCuTWhz 2/jEufMv4roEfkOOg56j3FosR9HHKuJ4Z9250VrqU39GtE4WFUduBy3wjhyfXL3hMUQzaTPbbvQ fAOSdWdHPnB9vjfngKkfYjIlhOksQa/IYjcRSEb8raeftaBk9/sGuG6Vtzm/WmG82edy8QprEqw wpcsnPDlJLMrv+0gCVFtpeU+gijvMdCAQuXsNfBrvMIglh4GTSIbX04OZBRN0r8JsuI7+ttfvTk hxFnnCc82eHow1kbPb5PSzuZl0FnjGXlz2d4TVze9VDXPasa9lJSe5PXdfERNIpXOqaVJqS0hQv QCtCTJjfimFx3nIw2zQiH6CxXvhZ94d/hOZSir7nNSl9+m19SoypPymMz19bViRrw/GNqsQjNId 5rhE4aDhnMoPicXRuiA== X-Proofpoint-GUID: bu5V4dZU4Md101aBbc-1kVaooStgif84 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX4L/3BG28p6FR k9L6qPu6006gwwcP4TBT7hvGW4xUqZfwhTvMY1MU4IvHN7BcCir36ztERk63yuJBBjsMDdz4acp ZyonjcG14vhNvueE7OppKd3xElAZLrY= X-Proofpoint-ORIG-GUID: bu5V4dZU4Md101aBbc-1kVaooStgif84 X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f9e cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=OCaCFsDeaxsKZUiNNdYA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238123170158500 Content-Type: text/plain; charset="utf-8" Add arm_field_get_supported_values() which, for a given ID register field, builds the set of values KVM allows it to take on the live host. Non-writable fields are pinned to the host value. Writable fields follow their per field constraints. This function likely needs change when KVM starts exposing a new writable field that is not lower-safe, hence, the special handling of TGranX_2/SpecSEI/L1Ip/MIDR/REVIDR/AIDR. Cross-field constraints are not modelled; for example ID_AA64ZFR0_EL1 is gated by SVE. Reproducing every inter-field dependency in QEMU would only duplicate KVM's logic and drift out of sync with it. Signed-off-by: Khushit Shah --- target/arm/kvm.c | 99 ++++++++++++++++++++++++++++++++++++++++++++ target/arm/kvm_arm.h | 26 ++++++++++++ 2 files changed, 125 insertions(+) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index c38b99cfce..8f452f9570 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -1262,6 +1262,105 @@ bool kvm_arm_cpu_post_load(ARMCPU *cpu) return true; } =20 +static bool arm_field_is_signed(const ARM64SysRegField *field) +{ + return field_matches(field, ID_AA64MMFR0_EL1_IDX, "TGran4") || + field_matches(field, ID_AA64MMFR0_EL1_IDX, "TGran64") || + field_matches(field, ID_MMFR0_EL1_IDX, "InnerShr") || + field_matches(field, ID_MMFR0_EL1_IDX, "OuterShr") || + field_matches(field, ID_AA64DFR0_EL1_IDX, "DoubleLock") || + field_matches(field, ID_AA64DFR0_EL1_IDX, "PMUVer") || + field_matches(field, ID_DFR0_EL1_IDX, "PerfMon") || + field_matches(field, ID_AA64PFR1_EL1_IDX, "MTE_frac") || + field_matches(field, ID_AA64MMFR4_EL1_IDX, "E2H0") || + field_matches(field, ID_DFR1_EL1_IDX, "MTPMU") || + field_matches(field, ID_AA64PFR0_EL1_IDX, "FP") || + field_matches(field, ID_AA64PFR0_EL1_IDX, "AdvSIMD"); +} + +static void ranges_add(GArray *ranges, uint64_t min, uint64_t max) +{ + ArmFieldRange r =3D { .min =3D min, .max =3D max }; + g_array_append_val(ranges, r); +} + +void arm_field_get_supported_values(const ARM64SysRegField *field, + const ARMISARegisters *host_isar, + ArmFieldValueSet **value_set) +{ + bool is_signed =3D arm_field_is_signed(field); + uint64_t host =3D extract64(host_isar->idregs[field->index], + field->shift, field->length); + GArray *ranges =3D g_array_new(false, false, sizeof(ArmFieldRange)); + + /* A non-writable field can only ever hold the host value. */ + if (!arm_field_is_writable(field)) { + ranges_add(ranges, host, host); + goto done; + } + + if (field_matches(field, ID_AA64MMFR0_EL1_IDX, "TGran4_2") || + field_matches(field, ID_AA64MMFR0_EL1_IDX, "TGran16_2") || + field_matches(field, ID_AA64MMFR0_EL1_IDX, "TGran64_2")) { + /* Either support the host value or the "off" value */ + ranges_add(ranges, host, host); + if (host !=3D 1) { /* 1 =3D "off" */ + ranges_add(ranges, 1, 1); + } + } else if (field_matches(field, CTR_EL0_IDX, "L1Ip")) { + /* Only safe to downgrade to VIPT, other values are reserved. */ + ranges_add(ranges, host, host); + if (host !=3D 2) { /* 2 =3D "VIPT" */ + ranges_add(ranges, 2, 2); + } + } else if (field_matches(field, ID_AA64MMFR1_EL1_IDX, "SpecSEI") || + field_matches(field, ID_MMFR4_EL1_IDX, "SpecSEI")) { + /* It is safe to upgrade SpecSEI to 1, other values are reserved. = */ + ranges_add(ranges, host, host); + if (host !=3D 1) { + ranges_add(ranges, 1, 1); + } + } else if (field->index =3D=3D MIDR_EL1_IDX || + field->index =3D=3D REVIDR_EL1_IDX || + field->index =3D=3D AIDR_EL1_IDX) { + /* + * No restriction on value that can be set for implementation ID + * registers fields. + */ + uint64_t max =3D 0; + if (field->length =3D=3D 64) { + max =3D ~0ULL; + } else { + max =3D (1ULL << field->length) - 1; + } + ranges_add(ranges, 0, max); + } else { + /* + * After handling the special cases, other writable fields are + * either lower-safe or signed lower-safe. + */ + if (field->arch_vals_count) { + for (uint32_t i =3D 0; i < field->arch_vals_count; i++) { + uint64_t av =3D field->arch_vals[i].value; + int64_t v =3D is_signed ? + sextract64(av, 0, field->length) : (int64_t)av; + int64_t hv =3D is_signed ? + sextract64(host, 0, field->length) : (int64_t)host; + if (v <=3D hv) { + ranges_add(ranges, av, av); + } + } + } else { + g_assert(!is_signed); /* No signed field with no arch vals */ + ranges_add(ranges, 0, host); + } + } +done: + *value_set =3D g_new0(ArmFieldValueSet, 1); + (*value_set)->n_ranges =3D ranges->len; + (*value_set)->ranges =3D (ArmFieldRange *)g_array_free(ranges, false); +} + static bool arm_field_skip_writeback_always(const ARM64SysRegField *field) { /* diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h index 133a026036..9f15c91c4e 100644 --- a/target/arm/kvm_arm.h +++ b/target/arm/kvm_arm.h @@ -143,6 +143,32 @@ void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu); void kvm_arm_add_vcpu_properties(ARMCPU *cpu); =20 typedef struct ARM64SysReg ARM64SysReg; +typedef struct ARM64SysRegField ARM64SysRegField; +typedef struct ARMISARegisters ARMISARegisters; + +typedef struct ArmFieldRange { + uint64_t min; + uint64_t max; +} ArmFieldRange; + +typedef struct ArmFieldValueSet { + ArmFieldRange *ranges; + size_t n_ranges; +} ArmFieldValueSet; + +/** + * arm_field_get_supported_values: + * @field: The field to get the supported values for + * @host_isar: The host ISAR registers + * @value_set: The set of supported values for the @field + * + * Will be allocated and filled in with the supported values for the @field + * based on the host_isar and whether the field is writable or not. + * The caller must free the value_set. + */ +void arm_field_get_supported_values(const ARM64SysRegField *field, + const ARMISARegisters *host_isar, + ArmFieldValueSet **value_set); =20 /** * kvm_arm_steal_time_finalize: --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238087; cv=pass; d=zohomail.com; s=zohoarc; b=A5Z2wyUIprMAF4+lYtG61kiGG2QUt0YGrKNb9WNKZfKfUuUAf6x5/DDPzEiT+vGjPEzMammb/piBzNh7qgWi6cTCR+J0CwnXz0c4Qg8GW3ywAsbsPPqKYFVe75xi28bsJaRP2QbjamJWriBgSYDOIi2XVh+tOgsrVSF2dt2F0Fo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238087; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=N8CMA7CQoLaQ07KXiqre6m8+0Zo0uQt2OhokGcSIfHQ=; b=Gskg5xPudD41Ee5QoHX8rHtfvS7pg+Ab0hllQPMnqJ5NXfrViSXVO1xV3nslfdbsUiWqOpCEhrfUSUFSloeniRQKTSppAY9NTYb+uYs4oShqfYjJ905SF4TWDxPUiDGDdk6ehCLvZSAcm7BBHtqdxpRkRpbvxJ1zyB8WepCrd/4= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238087767958.6998176816804; Thu, 16 Jul 2026 14:41:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToM-0001oO-PY; Thu, 16 Jul 2026 17:40:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToJ-0001iu-8U; Thu, 16 Jul 2026 17:40:03 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToD-0005s3-OU; Thu, 16 Jul 2026 17:40:02 -0400 Received: from pps.filterd (m0127844.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrZi01763910; Thu, 16 Jul 2026 14:39:43 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020094.outbound.protection.outlook.com [52.101.46.94]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdstheva0-16 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:43 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:39 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=N8CMA7CQoLaQ07KXiqre6m8+0Zo0uQt2OhokGcSIf HQ=; b=CIKm3v7smROIGBD3RNNhGLLY9tTf9xK+AHlvOrmSARrSuGTuiAfkAOOo3 T2ofhm9/AE5nk6syg4oIzd5tEQD1hWW6s9zQurUSNs6j9L8zC98LVp53/shqnN6M 1/n4X78pM/choYoeVLzxbj9f1kTjhhLegwvOAq8Zi+R+h79rGxHEpoFkpvLgjhod ySsYPqnhPEOmyXkvv+xU26CpNjyRF7q6OV9JXcBR3JvSTQwnai+V9LJIIkg16Wj4 ZyvepJx02b/PlRsHoIRs/A+Ilcvz49iYtI7cwEWufjbiDhf1Ag/awDpC0tWCnoQu aGfKJaoFS1qeEwvihAkFrlTktCXjA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FAP5/KIxMzyxnNZlWgFH63XhXT58x9GHUHlQVtQMXLMEH5a24EXzJ3V9BaKlucvMA0Mq55weMtxFSirhtCQS68EZJwqKgs9s6rm2LUW8XgAycVUg0xMt7QLYiKbiBncEsoFDmpPFExd48Nrb8fGBeE1y226mrpWOvnbcyTLG0r61w3Nx7BgsMFTY2SQfMe8YXwEo65BfwKP04qdXxcO2owkoph8iJugTLQCVdorEydldXkHvXm3qBsaubFDnOqXNfTpNjr9fimplDvSdzRk2GadG8qTaqFxCOEPeOai4rrFc5uTXrEXDxC/35StEKdhuAUCrpThuE8UwB3K48mNZFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=N8CMA7CQoLaQ07KXiqre6m8+0Zo0uQt2OhokGcSIfHQ=; b=E9puCSuDhO4Dor8J66WWmTGmKO4te3PoDbB025MdlQJUE7rSVuwdBD5vLLve50P0obWJGCpspkweL+a3oXZs5muEkhJFVsEKztN/1uwmYqeKKwJwXRGdyBd4tU1z3afhdCh6NOW3W8dNc1f4rcyVRo7T/2Powv9/7S8ylh3BBJRGvby1QE5xncfI3q1G+iGuY+OeMp/Lfk1b5emeoGMZLJZd/0reuo4Ukalpbny2DaNS9FcBPY6GIEM2W82UhnG34Duzrc8irL/gp4mXNaU9n2u8Cs9/gdJYKvrwwEBSolbZGS2ZzZhfScPmucRzbu4TWrvsHFw+CN0uQ2uvA7b1dg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=N8CMA7CQoLaQ07KXiqre6m8+0Zo0uQt2OhokGcSIfHQ=; b=B1s57/62i9qQdat/5ZuoqvBLUYqDIa4UaGgSQp1ERL/2BgOtOGCNTLEUC+tTrsV3QQ//W1AtfQx+FXN4gp8qfdhopZFYgjKvoiqwM+s+efyzt4KxIvc6dmMh+Ug8OGIEtZ7Yxo5uokqCpFvr6SUtgdAv2XvEJ2jEs6n6OKmEIO8UIPgINIcmhzklCzCghlnxnUkVp4n+hWD0ajC8eTmGIzhnC38S5ULii1N8hJytOjDt+RLCYCvDraUNXS12qfn1ct19m+9gofDxsEbHM2nkSI8Guk5SHfZx+bulebQu7qrYdWr/GAo6AspOIqWFlX5NUcEJnfMFQ68JaTImiEdxeg== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 15/19] target/arm/kvm: introduce kvm_arm_get_host_isar helper Date: Thu, 16 Jul 2026 21:38:54 +0000 Message-ID: <20260716213858.609699-16-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: 684e6c48-5ad6-4649-2b0c-08dee382bcfc x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|22082099003|18002099003|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: 3wB501hp/A/IrvOKGll3H9PuUtIvq8rHXzpi6DAzbzLbBk9qREYSMAoWNJLiL6aWVzHGKgv3L9HzKWp7trXdFmuDMH4MJlTSTp67V8Z5t9hz2BpsKi3/70YeZcrrWd/EVHjSynTncGnczPmA9Hd3PN1iJt5gOvbCfcmiiX6hA6aRxBa+ahvZBEhVlktBPscLrb8qbpZ4oKdLTa/WYhs2+/cWYtlcNOQmNkh5lXnkoFTpgn4yqK6uTYpxkULUANekgEOUna/wZNds8aMQFL2qXVDXc10QOpA7gbRUyEvIe7xQWEd8gWuEYdLCAmFNkE0Y7p7unFE47v04lh2W+P3allCqefJVx1sbxp4FO8ScDZ9YWDgdbJKOhU83Q/xL7ClOpsgA4xFH9/tsoSDPnUyAJN69G+/3LekkgzhbuIBGh7vVLIgO+NTI4/3z6R4BZDgHEIDLaOTLnkNvnREc1Fv7u58bsKXxphW9SdhsGm4q8RaMK4irYhcx5t+3K8XLQ34cw+2Aj99eVTiXfYp0M0JqJc6rmtEJRYyPZj4ydkyioe5oFIjrnRmKO/4HTskzOQZGfbqtmAJ9CLONiO5rPzvU+SJ8HcTZJRqSI6ndB4dFuzZLN+TFodrPB+ha7IKwSme2U+jKfuaQfKUEOqvphMOLo3sK5VuQcf+ALHE5BMJm1jA= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(22082099003)(18002099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wC0p+3JbA9Dgi5DKYdNhcYtGQhW+Z8sKoifM1KWVMDQZ5K5Ujllo4lTtuFOE?= =?us-ascii?Q?K/Xmef5+wTcFKWQDv4caCScf387mPuosUgs0+SUacAt6E63TCoa7EwbztPjT?= =?us-ascii?Q?pXFCaljm6S5G2UC+I9G38UgGy0j3Sznc7qj1Orq71ZIIPPnsoX6TYuEfxZt0?= =?us-ascii?Q?mVqhM3t4cj/tV28vt1T5vWmIOQSqToaQ9q8dZ4cR/tLnU4t1ljyGKifEpRnB?= =?us-ascii?Q?5U8pDmxrQELEYFqpInDsdTk/3b9Br63xeajrCK9S1UjaXpcIntlMvIjEC9oR?= =?us-ascii?Q?x0dPPIPEDzqchhZljf+y6TcPYh4s4fiZJH+UrOzoM0PEeV7DWpz0XugtdsZc?= =?us-ascii?Q?JVCofMAXb/EfRbKU5LCnGrjE34opBLg6554MpY20zqJ1/vD7xd1iCXwMGJ0U?= =?us-ascii?Q?62WV1WG4MGvSe9aUP/c7alO1RloeghHq2dklq7J1oH1o66+w8IUw6q7jxhun?= =?us-ascii?Q?HrAJA64qUdDxXHTkgtp7C6a9om9ivIe3Y0/y54DcaKNsCYEtE/Lc1vX9eWuD?= =?us-ascii?Q?P8DssAbJnfrZFM11zxaO+fFD2IGsgrhRN+kwlll78CRwttdWASc/VFVryOXH?= =?us-ascii?Q?2YTcXfejEg+XMjJb8satJscePGm1aHLz2jFLAq/JLuc2GL2K7z1DHCCyyU8U?= =?us-ascii?Q?xI2/t+nELWZCL4zuHsbM6qqRIqL1w1jDveLw84SO3itnMW2x2bPlIixlaUoK?= =?us-ascii?Q?AOtyhCCoV6M6mm27tLztdXgOBM+2/TcOMnPAmLnGWAKkU0JJ3gwqbwI2YliF?= =?us-ascii?Q?ab+ibdevX74IWyQzrjViwiHmWBJWH7FjZ4l+R3NghesmQPo+TVfuFlWihHaq?= =?us-ascii?Q?uSynHSck9GkvOtkJF+s2lzwa9Vi/zdyfyghiCRFzQMEkeMkViiVQxlgsHX4F?= =?us-ascii?Q?X2fnFwaDyq6hwrAU+wIfYo/y5GW8qhOVLy7pw5wZjK53U8BGtRPgc4nPP7aa?= =?us-ascii?Q?pAWtmqhMKZTsW0UuxdabaMSjYoQDF4pIvbXavbK1nIu1ggypbclxewxXUmyI?= =?us-ascii?Q?pzTfJ5w+ztTcHz2dKG/xoYlR8t3snWhn+OI3DHmkhqLr6Jq5pMcZI8yjI6Hm?= =?us-ascii?Q?xjETzESkpemRwzzBN+g+r0/5neDgdZdnJSUXXSm9iRKFPfADP8teQ1cHor1p?= =?us-ascii?Q?97n/RLIta3RVeKH19YQoPoKzjdQVZF/37jaIm2pDWg2cvjPzgo8nU9USx7N3?= =?us-ascii?Q?TA55aqIWseRdgRIW5peThIZlsGieR9vlIfotGCGegsjwbL0mh+7TLxkz7h3r?= =?us-ascii?Q?CPkYAtBa6Gi9t91k08Dx9b8cJysmyhX4qny87WoUCHXUufnSsaGCYg99NXYu?= =?us-ascii?Q?xyt23V/kuvuBqYEZTiw/3fJVHp43PBo2BAuRH8PIn7JyQhnnIwfkMOzsH1hu?= =?us-ascii?Q?8HHsa0PsMI3asv2p/ijcHo5WEEmIm28K0vd+vXra0O6Pm7zx+VMYGwIscuMs?= =?us-ascii?Q?4CMjl2KrXWr/MaZHRJvWq4Wk04Lr2l8pzhTiDSS/0oIgUyqljIs4rG7n+PLr?= =?us-ascii?Q?IRuBMyNN2JOkCLKA9VZvcEkiN+D/7qJuqhoPr7IXxJXhARmGFXVXY4qxbCqR?= =?us-ascii?Q?XpwUyQUWnBV3BA8/lXT1GvxmBixiEPDv4n5lBZyBrOLUKAypEbkfdwN/M2Sb?= =?us-ascii?Q?lzdWVK2LzqUjjK1W0Y5ChaytI+Wotx6y0m2Q1GGDqTBInwhfgznuyGYPVbah?= =?us-ascii?Q?BDOyDFXUVbu35aaSmf6Cj8J0PasoRRtXS8vD3im6DlZUUnp4aem0pE0p6j01?= =?us-ascii?Q?hvz3GjKTNo6YjxWmVHnpPfPWUrD8aX0=3D?= X-Exchange-RoutingPolicyChecked: Pm5HtWfLL/R/I0jOMNEd9HHgrEBKX9YXxCxhpVqUnNGw8VyeJrtEo5hQb+l3tpkdzVXOhRexvEL2pZ8gRYlYofsBhLPBuPGVLJNyNbhNR5CCVRw/COyYcKGk+dte0YDODd58HpVTNg8KT1HTPZwcjiYQJF/ozMV0Cg6mbeVodrvtCZ5+9mEyzbocfQmZV03IWcz1UfvozZLjrFMXQPusaaEVXJH2PNcNnjbNr4OPV0lCyMHciQe66YDgXsWeARjXunkncQbQirhgKP7LWJM4ReL54pbLGfYntS4c5hoy9BqNQ63I1OwnDA3ZzzsQfp9yUCF8F+/39zBpzgtDhNuA2g== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 684e6c48-5ad6-4649-2b0c-08dee382bcfc X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:39.0259 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TxQ7dRrP4LIRSuk4Opaq9mveDfJV2Chq6EQVc/faVZ5IKRGZRdFJdJTXEVyp5UgWlIyJyULuopD0lTpgq+wkGhNgXhMKUIW9QdDjVLw8ltA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX+C3zguYcqo2b +zCj1JhdInqJQKLdQkfx2p5+eN/gRiciHFaILz3MVxBAdX2ZIxvk3FAsQ9Yec9aZduhQN4owUOU IdvHV6Mu4Utf0xNQ/sC+2tUCgMvav2t1pVdiLn9LLyRF1xdPSL3o88jU2yL8on2yVmuElzzqmGb l/HTIonthoregzzAQEMdUOI0VeCFq+EdmjjrJj93bYT/lAyganEhM5JAX57uuXSOvML5Tn15Xga 9TpWCNrlj/TcuqQn94tWEYT0XdecKGbbo6f6pSxAhShMdArWgd5YWlrpCtxeM6LDVma+O3uz+V3 i/Ipr6klw39ogfLOIOvJCeJ5Pk20G80hFGKYWntmHSmuMju1yrbh5uccTggjfPRo4n7aZUqxAS2 dNMEjZA2DliGSZ4+BGFriu5JrBqZkpjCH4S0bjkg2TnhgzuWQ3FWWd8AOGfDjSzphHiSObzzceS FUbub9Y349Hgm7ZNaEQ== X-Proofpoint-GUID: Q9ibRqCVLlsfYVeVp_XmAafvkh3jVH-3 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX+hQOzH/2IlwU xt5acFK547P/T1LCbmjeXyNa1YvRVUUY3HmMPr++YEO9Q7AKF56FPL5ZHmAUGdP/Ugzzxy21n8U n8mOP0cRddVST0DP2yEaBxi4XRNfmyc= X-Proofpoint-ORIG-GUID: Q9ibRqCVLlsfYVeVp_XmAafvkh3jVH-3 X-Authority-Analysis: v=2.4 cv=J8uaKgnS c=1 sm=1 tr=0 ts=6a594f9f cx=c_pps a=aWGlcXfvBePkFyJsMZzBEg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=0LlEyIVc8U2lsR7dKhuH:22 a=64Cc0HZtAAAA:8 a=vS_ObyiCXZHXlSlc3J4A:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238088911158500 Content-Type: text/plain; charset="utf-8" Introduce kvm_arm_get_host_isar() to provide scratch vCPU probed host isar. Will be used in future commits. Signed-off-by: Khushit Shah --- target/arm/kvm-stub.c | 5 +++++ target/arm/kvm.c | 8 ++++++++ target/arm/kvm_arm.h | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/target/arm/kvm-stub.c b/target/arm/kvm-stub.c index 88cbe8d85c..dd683beaaf 100644 --- a/target/arm/kvm-stub.c +++ b/target/arm/kvm-stub.c @@ -119,3 +119,8 @@ char *kvm_print_register_name(uint64_t regidx) { g_assert_not_reached(); } + +const ARMISARegisters *kvm_arm_get_host_isar(void) +{ + return NULL; +} diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 8f452f9570..042d5fe804 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -650,6 +650,14 @@ void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu) env->features =3D arm_host_cpu_features.features; } =20 +const ARMISARegisters *kvm_arm_get_host_isar(void) +{ + if (!arm_host_cpu_features.dtb_compatible) { + kvm_arm_get_host_cpu_features(&arm_host_cpu_features); + } + return &arm_host_cpu_features.isar; +} + static bool kvm_no_adjvtime_get(Object *obj, Error **errp) { return !ARM_CPU(obj)->kvm_adjvtime; diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h index 9f15c91c4e..4a04d72e39 100644 --- a/target/arm/kvm_arm.h +++ b/target/arm/kvm_arm.h @@ -15,6 +15,8 @@ #include "system/kvm.h" #include "target/arm/cpu-qom.h" =20 +typedef struct ARMISARegisters ARMISARegisters; + #define KVM_ARM_VGIC_V2 (1 << 0) #define KVM_ARM_VGIC_V3 (1 << 1) =20 @@ -257,6 +259,8 @@ void kvm_arm_enable_mte(Object *cpuobj, Error **errp); =20 void arm_cpu_kvm_set_irq(void *arm_cpu, int irq, int level); =20 +const ARMISARegisters *kvm_arm_get_host_isar(void); + void arm_gic_cap_kvm_probe(GICCapability *v2, GICCapability *v3); =20 /* --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238187; cv=pass; d=zohomail.com; s=zohoarc; b=WQsklpv1DOSzDSRG8S0Oh6dPfMiu8EupiyBYpT5MNectAkjL7QLMFKUS1gHqwj4q10jjmv2/qCUmX0VIcNtEREhmzWEmBW4K4rh3lPprYEpkY4zwgLE5/I8vjoms+K72SCW8CsVaW/kfwRCHaW8EB8ZTdcckSTlSRNQ0nFrR1TU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238187; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Bkvuh8Smpk05YDBrcGj0jNXfM3VQ40+Na1Oa8o7B8h4=; b=T6pAW85h5rCeqSw0wFvPPkzMRV76C12KCEgBA4AWzQ5pdzl9YgXllIgdaGhDyH+ab4g/kyXSBYzpK5U6KGKNG5g73KIKesnJBPN1tjAwETnS8r/xnU83WvqURJwowHO6BqIDH7W31oTSyakIPqhplnWZdOCtAylEZYNmiX/LmCE= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238187350822.269868918533; Thu, 16 Jul 2026 14:43:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToe-00023k-BJ; Thu, 16 Jul 2026 17:40:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkTob-0001zj-NR; Thu, 16 Jul 2026 17:40:21 -0400 Received: from mx0a-002c1b01.pphosted.com ([148.163.151.68]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToP-00067a-33; Thu, 16 Jul 2026 17:40:21 -0400 Received: from pps.filterd (m0127837.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJtVZq1799773; Thu, 16 Jul 2026 14:39:45 -0700 Received: from sa9pr02cu001.outbound.protection.outlook.com (mail-southcentralusazon11023087.outbound.protection.outlook.com [40.93.196.87]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 4fdxc2x3fg-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:45 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by SA2PR02MB7756.namprd02.prod.outlook.com (2603:10b6:806:14f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:39 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=Bkvuh8Smpk05YDBrcGj0jNXfM3VQ40+Na1Oa8o7B8 h4=; b=S7eaXKzVVBTFT9LyVIOw3VUDhUkEz7m7RcLQwsTg62sYYSJIVqgHYDvwM V+mF3kuN2g6Owh+P6xi75LS8SpDFY9mSo1YBTqLprjK9awzmueYC3hzduDFpgCap iVdAj1H5qzJE2Kek9UXpocPOSNlpNEEwHwBeZaGovETXZ1bRl83P5UQffCNipYdM 97iZMqznp6HM5Ga0u5qFZ8RpAcme/YKZlp+Dq130cL2J8rRjBwDY4cQtqyKrAkh/ DHZLi6jKx2JxqI7HHMU5kOuWP430vwQlmS5e5oIVhIaxZNICmtez0vY4IPwz8oTm ZX5z+rAY8Zj0f2uAfwT9ee6H0HU7Q== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xLNyrvB5C53K+rK4Yg+w+uNvqJkDGqcA2AuD8vemYdU4dku8t4yp5K3TfgCLCHPSTstTvvt8Z48mNQARsC9lvj1vEQdfeNyUExK9KsZFyiJ7FHircMFc81zcK4o3vgLtqVOslHaSde52pjDyb3YLykQH6RnO0sS6oJ7E9DzBoYvlfV3lPECUCmSNUaMSKuZ2/APe2PoeVms6fb4Q4Ttq6dzJa/chXBoH6O/As7C3QhcN9GSZ4ffbP+/pwiXWdVTFXhsLMgSqG07GvgMIPijoM2tO93vk9S/NpJByMFv3HBzmqRzyFeXckEslQpSw7NyPfOY+JmnNVPleKgeYdrUZ6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Bkvuh8Smpk05YDBrcGj0jNXfM3VQ40+Na1Oa8o7B8h4=; b=DTH2aITtQUCMinm//59wOpNNQTX1e1q8pGK/35J3AAoCZd4s6BZcdN1jMGhanzjC+apgOLI/waHSZ6phadmRPCfiItFXaubxe3CVop3zlcI0rdbj9NflVBSrNqB/L2IJJIfiCIJ1ibEjAfBLDQ+unUxDAwkq0dxV+ZJ4jV6GemP6j1HXEzhqn97/mHUFRK9Y5I6ZprBf0XhDcCuMz52yr7SpnWC6J5Sr35UBzGOKDmlp2oChba9UtFBOvifPdweyD7Sqbe08KZNA1BghLgjlZvRsrutBhYct+93R2VifqErPIHu5djTk1bpQutsLwDq/TMsx+20gQ0YSxQDGuO9t8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Bkvuh8Smpk05YDBrcGj0jNXfM3VQ40+Na1Oa8o7B8h4=; b=A69aAhefEU6PSQdfmJMovmyY5HvOt7PsLQElny7I59Ot6oyDJ6HPs+/ayQ8A9FHr1oE//83br1+zfp41GHnxMc1JydMlVrHxWyqL6+GUqxEylgFIhnV3/an+0i73/3Pg4RMp4KKlyoZwi95Gj5ookt0t7ypeLkjMDEdj1UNvQj/L8Vd5mZLAVTF3wLNGKf9QQRH+z+O99aVSSuGikL5Jxbjf/2YiKrGV2hQSF/eTIqcZFKm6trKEomXjazHY2SB0Xk4K60y5dtI3UXuhR9GxdMWUwWMYDXjpMs47cmH8SiU6FbQtRbORAjY9+EpXdg8oarGG7j0eQ0wreD0s3hcs7A== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 16/19] qmp: add query-cpu-props-info command Date: Thu, 16 Jul 2026 21:38:55 +0000 Message-ID: <20260716213858.609699-17-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|SA2PR02MB7756:EE_ X-MS-Office365-Filtering-Correlation-Id: 528e22fc-02be-4163-e440-08dee382bd6f x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|23010399003|1800799024|6133799003|22082099003|18002099003|56012099006|3023799007|10067099003; X-Microsoft-Antispam-Message-Info: 18prWD/h7hPiIt2PvOo1KrtUNUN+eXM9tkdFf+y7iH9pb8uRX80OUo8j5hd6F1p2YJ6FrpbemeOs0unsuEhwTTdjnZY4BzO1WkxP6OxvIlchqIKeU/LRsYkBn1msZBeRqezzg0JVrhnVtUR35gwfruRp/GQ0S6n+8WBkb2FkZdCaFLYEP/ppFECcQt+LOWkE6Q50lrWK+cpHAIY0LyhsbvEQ4bV5L0HOQOPv75RjsC3fGblKe41GWIro3dRc8OIBbkkC/lO+vEK7a59HV4j9v9C9hfjnmAS7DgdashXY/nT/wVeQEIsB2P9L3V+06K6YcT0EcxPJWTJBeOexzDWwlXxYMUz82zHAShOad4/vCIyE8BDu0Xjdf3snUz5iGLWoeIh0zEUxvdVhAR5bUQ64mJ7Jlaf4iSl3/nGwrq4vdQ03+HbhGVWQegBRPM3jGyS4y7NarTl3OcllUzvPXYEmGDNzZPQ3CuRnnnGZFDH6N+EujAPhwekp7IMFpk34iYmVAA+orMPwSIpcLpT/S4zVy6sd+yoBBLiFaP4m1WsYt+35oJWHYfsFjiI0R/D21ElFLK/QEoYhG4CxcFadirNg2L3YLuzU11Ko1JpriSq2XEQq15FhXmHRM1hUZIja1nssE0wQO8FfoTEjJBZliHCyik1FycER7//0jg3+jqHwKnI= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(23010399003)(1800799024)(6133799003)(22082099003)(18002099003)(56012099006)(3023799007)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?arTMGGDFqwFYoYkPaGGzBF/fpBdG77MomseoCzMiduzl0Aa8pfJ2KqTEUmqO?= =?us-ascii?Q?/ARqOhPhIHgTtQjiv20v/z1KIzCaFC0MxgtUyqShuf+sYGo31j7XS5xqS+XI?= =?us-ascii?Q?XynxDVV986bHuJNbDsQXYoX9FuamAtAQCJJeWYD38zc03Jm8kfsv7iCW29hE?= =?us-ascii?Q?TJANunH7qN5xq0gxHhxaAxSRICcBqJytzvl1WV3wzdZnKqzo/sj/QbKB3RyS?= =?us-ascii?Q?LpCuUkcH7O2OvdAskXGdtwd69g0sxK/zCHE1/XWcBhAAyV97Utlya8QOvquX?= =?us-ascii?Q?zdzrlCV6sYEb25EVm+sy47RuUWRCPIpY8M3GD6Zs4gX8SE9ZfcNlJkyfCkRd?= =?us-ascii?Q?5ABaIeIsiFnAB8FuJKj3z4bAuworhFb181X5B7bnx7jKtj8VmhDrA5euyaIK?= =?us-ascii?Q?Hf/5UZiOWx3Qz3ij5DuodFxKJJ6myExZhOrXwakEcleSZnF0/GZEDjoVsubj?= =?us-ascii?Q?Bv5jgjJMLJAurEHru1aAA7wOE0PfzHgu7ktI5t6ud0LotuoQ5uZAkScaQ64O?= =?us-ascii?Q?tQ7OWgCnNwkAwinJO7yr2AUzvXF+TnRbvRog76R37N+v1allGDu7zqhFe767?= =?us-ascii?Q?2bbFP8ADH1JdHhUY03+hwsBwAjOleiPNG+90v8QeUMXAA5MJbKnGjh8R4n0P?= =?us-ascii?Q?NrLCf7tFfPFp26n33LMbbdFCdzQk0AHuAH7h02RRrtVHGprUdTC1a96W9eGA?= =?us-ascii?Q?cwdKhvkiQy2+O8CSqzgPGsXJR7Kr1ZR/s6zh9OR+6M/eickF/lBObU0iFc1r?= =?us-ascii?Q?UJ9xf6T0BhSUDVlrXgUDS4dTcXnaJPxNgdTC+HxOcX22aM8Su/DJicrK6xQ5?= =?us-ascii?Q?Qq0PsjPdQaI5Q4+V21019dH0borGIsSFM6Sb0uoQkxWRWldMJvAWXm3HHHdB?= =?us-ascii?Q?S/EereiZNJ+snEHzlaBU++UIcF60SxRAeRg470i5G3QLwdKcjvthNFAEUQr6?= =?us-ascii?Q?kbSQl7IMo2Qqeg8elweRcLpiERi5aiD452CnVy8iyq5j+uMy5PVNZMf1Xqri?= =?us-ascii?Q?QB4sAJb1eOLvfH389H1swyJHnM0WrEyFGjoh6vfzj9X7614juxpR5ADLmVIK?= =?us-ascii?Q?8NqNvWCIoTcIyYj1m0d//RVSW/XrM8bDDa22BpuADG1rz9XffyYEvvDg/3UN?= =?us-ascii?Q?nYH7ZAoAY0qGMSKpTnnV2G2oPgksLMBBx7vJ9Cl+j9Nyc45ky7yARn7kik/w?= =?us-ascii?Q?vPlfziRbXpIwbqlPHVYdCFKeyNHO4bp+GyxB1KZeoipEXMl8fPD7zesQgG/x?= =?us-ascii?Q?bFT+/z+TMTxcPRnSPTcCw5phoCSJck/kZIJQ73pkBqe2JxpoB0PQD7JJSyqC?= =?us-ascii?Q?lVSUTem2byMmuMr+i7CLFh6Tm3KmYZ2x6m/rOrNNnrRiAoFgIlvgpHGoSYJI?= =?us-ascii?Q?9ZorbeF74awHL8arQOkyHL3tYpvZifjur66prqQ04LZwwI1k1A1KElF6TEfC?= =?us-ascii?Q?FgJqa5z4C8mHKsQjvG0ovq2j/UTsrcOgRn7VREO3SD8PDjPG3MzVYqadLm2x?= =?us-ascii?Q?cHXQsauxJCk578w04Qi5hbM5ej92Ij+VbTvwvpMpOgfVeiegUdQEiL1989l1?= =?us-ascii?Q?FR/8TxYf7EHJYso6dpHNf9MDm/qatF6eQDQEjryiZ4OynbSw9Dq+gaXSi289?= =?us-ascii?Q?jJJ82ILjzeg72uR3Br9RjxdCOcVpKvc+tRJGWohb6T3XtJV6BhNmjvckvFpf?= =?us-ascii?Q?tWqUpU6XGXHaOQa+pSX/wD7v4iHPqeppMHUnMhKrXtGvQvrTd3ojo8D2eqYF?= =?us-ascii?Q?nr/v1ZEYheK5TFU0Y7E2Zav0pmsNDOE=3D?= X-Exchange-RoutingPolicyChecked: DFHVvoiSNDyGIlRbfMVZt29smeAVXveib/TDIPop6qz0n6kasTwsqqyhPSeRWd0yAK7F8sGPLbga15Dh9i5IaDrnn9gbTj8y8BsPqdEAo1r7wTbFu3vQe5sUoI3kTH7B4TxAF+PrnXXl4dP6vSW91nAS2ezYpQlyNeAw6hn430RN6hVFMb06bORkP1m2gtZtO2ElBVxvfEkv4PteCBscRaVJQValfnFax/n9Yrz6gxLvkRMeTEpyrfbacsdGYWlVHRhxDgxd5aVJT2CjF5GbYLjR3S8RNktuCjv7hMepHnOJNePn7UBLPWr5gbqPUVFSfsi9d8zt1LXfDKM27yfLlA== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 528e22fc-02be-4163-e440-08dee382bd6f X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:39.7947 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VOmT0anwUU9czkTEZfdq/JLTagS08XP74zQtrLu1lHNiFEzgl14ttxMYIjsJ8Frqf78NM6SoNVoTEK87X7AeGYAXNhlg3acGlH21Guq21wg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR02MB7756 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX5sYnWX979IqH ymj5e5HJxLblU6qojw58skVH2a4HDb6T5pyj4dMjAgxb5ahBPQ19a4aU9rbimsNbtntVeRqtocE N/iThZVRc5NmAGIbtsThRjyBQKOSPwRBTs8X/VGmrotoDG2cTjcm7FFp6tkYY8krTfv1vo/Hk2v ssbawZ1OLc3G2prALv1vZlaXKSvrcJkFgwFn3mMAOChtw32xsECriZjfWogMlLhnvvRs+llnEA3 mM4VEC9vzFe8qaZhXOybMuZ28OGwLKCLRMJXNR6Zp3TtRaydtIcpUMKCiWYRkHhuBDMnNqSaaEH EGxyIj+TwSZJlJZv85SYI81+EksjLweAPSQ8RHufikk3d3gPmKRzYvoPh8ozm+CP+Y2Uq2s3hLO RTJsNNrzY7aWI0QR2zOhub5MvBNcB2xvTkjTgxJuAZ/UGIOXPe26x60F+9S218Zo3ErP0+Q6IQV qfZsdbF+W+QvvAiF5+A== X-Proofpoint-ORIG-GUID: NR0XkjS7q7JMC6n6U_vi5ucCDEAUhwf8 X-Proofpoint-GUID: NR0XkjS7q7JMC6n6U_vi5ucCDEAUhwf8 X-Authority-Analysis: v=2.4 cv=dNCWXuZb c=1 sm=1 tr=0 ts=6a594fa1 cx=c_pps a=DH6uOP27q4GouF/df79YRQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=Ap8k9tRZuQ82DLYWQqG7:22 a=64Cc0HZtAAAA:8 a=sta4Dyo3lDpbMaF2dm0A:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX0yN9NJM9t6Jr MwM3FzAD7WaLRBr8qEaSdVWWgbjJ2n2pUKIE8WmWxagW38Av3lWuqMYvGzAVWs4xeZexwe51xr1 6Y/ItQSjFI4TV+sW4eOInaDCXOsuZ/M= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.151.68; envelope-from=khushit.shah@nutanix.com; helo=mx0a-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238189473158500 Content-Type: text/plain; charset="utf-8" Introduce the 'query-cpu-props-info' QMP command. For CPU model properties it reports the type (boolean or number) and the set of values supported under the active accelerator and host. For numbers the supported values are expressed as a list of inclusive {min, max} ranges; for booleans as the list of allowed true/false values. The command and its return types (CpuPropertyType, CpuPropertyInfo and friends) are defined in qapi/machine.json rather than an Arm-specific schema, since the concept applies to other targets (e.g. x86, riscv) too. Target that do not implement it return an error. The Arm/KVM implementation spins up a scratch "host" vCPU object, walks its QOM properties: SYSREG_ ID-register fields become 'number' properties whose ranges come from arm_field_get_supported_values(), and the advertised feature toggles become 'boolean' properties. Signed-off-by: Khushit Shah --- qapi/machine.json | 87 ++++++++++++++++++++++++++++++++++++ stubs/meson.build | 1 + stubs/qmp-cpu-props-info.c | 12 +++++ target/arm/arm-qmp-cmds.c | 90 ++++++++++++++++++++++++++++++++++++++ target/arm/kvm-stub.c | 7 +++ 5 files changed, 197 insertions(+) create mode 100644 stubs/qmp-cpu-props-info.c diff --git a/qapi/machine.json b/qapi/machine.json index 685e4e29b8..362efe4c50 100644 --- a/qapi/machine.json +++ b/qapi/machine.json @@ -2251,3 +2251,90 @@ # Since: 1.2 ## { 'command': 'query-cpu-definitions', 'returns': ['CpuDefinitionInfo'] } + +## +# @CpuPropertyType: +# +# The type of a CPU model property value. +# +# @boolean: the property is an on/off toggle. +# +# @number: the property is an unsigned integer. +# +# Since: 11.1 +## +{ 'enum': 'CpuPropertyType', + 'data': [ 'boolean', 'number' ] } + +## +# @CpuPropertyValueRange: +# +# An inclusive range of numeric values supported for a property. +# +# @min: the lowest supported value. +# +# @max: the highest supported value. +# +# Since: 11.1 +## +{ 'struct': 'CpuPropertyValueRange', + 'data': { 'min': 'uint64', 'max': 'uint64' } } + +## +# @CpuPropertyInfoBoolean: +# +# @supported-values: the boolean values the host supports for this +# property (a subset of {true, false}). +# +# Since: 11.1 +## +{ 'struct': 'CpuPropertyInfoBoolean', + 'data': { 'supported-values': ['bool'] } } + +## +# @CpuPropertyInfoNumber: +# +# @supported-values: the set of value ranges the host supports for +# this property. +# +# Since: 11.1 +## +{ 'struct': 'CpuPropertyInfoNumber', + 'data': { 'supported-values': ['CpuPropertyValueRange'] } } + +## +# @CpuPropertyInfo: +# +# Information about a single CPU model property, including the values +# the current host supports for it. +# +# @name: the name of the property. +# +# @type: the type of the property, which selects the layout of +# @supported-values. +# +# Since: 11.1 +## +{ 'union': 'CpuPropertyInfo', + 'base': { 'name': 'str', + 'type': 'CpuPropertyType' }, + 'discriminator': 'type', + 'data': { 'boolean': 'CpuPropertyInfoBoolean', + 'number': 'CpuPropertyInfoNumber' } } + +## +# @query-cpu-props-info: +# +# Return information about the CPU model properties. For each +# property it reports the values supported under the active +# accelerator and host. +# +# .. note:: This command is currently only implemented on Arm (and +# KVM accel); all other configurations return an error. The schema +# is architecture-agnostic so other targets and accelerators can +# implement it in the future. +# +# Since: 11.1 +## +{ 'command': 'query-cpu-props-info', + 'returns': ['CpuPropertyInfo'] } diff --git a/stubs/meson.build b/stubs/meson.build index 3b2f2680b1..3bb4028bab 100644 --- a/stubs/meson.build +++ b/stubs/meson.build @@ -83,6 +83,7 @@ if have_system stub_ss.add(files('qmp-i386-sgx.c')) stub_ss.add(files('qmp-i386-xen.c')) stub_ss.add(files('qmp-cpu.c')) + stub_ss.add(files('qmp-cpu-props-info.c')) stub_ss.add(files('qmp-cpu-s390x.c')) stub_ss.add(files('qmp-cpu-s390x-kvm.c')) stub_ss.add(files('hmp-cmd-info_mem.c')) diff --git a/stubs/qmp-cpu-props-info.c b/stubs/qmp-cpu-props-info.c new file mode 100644 index 0000000000..f0301a1179 --- /dev/null +++ b/stubs/qmp-cpu-props-info.c @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "qapi/qapi-commands-machine.h" + +CpuPropertyInfoList * +qmp_query_cpu_props_info(Error **errp) +{ + error_setg(errp, "CPU model properties are not supported on this targe= t"); + return NULL; +} diff --git a/target/arm/arm-qmp-cmds.c b/target/arm/arm-qmp-cmds.c index bdf46c823a..457cc3edf3 100644 --- a/target/arm/arm-qmp-cmds.c +++ b/target/arm/arm-qmp-cmds.c @@ -81,6 +81,96 @@ static const char *cpu_model_advertised_features[] =3D { NULL }; =20 +CpuPropertyInfoList *qmp_query_cpu_props_info(Error **errp) +{ + CpuPropertyInfoList *head =3D NULL; + const ARMISARegisters *host_isar; + ObjectPropertyIterator iter; + ObjectProperty *prop; + Error *err =3D NULL; + ObjectClass *oc; + Object *obj; + + if (!kvm_enabled()) { + error_setg(errp, "query-cpu-props-info requires KVM"); + return NULL; + } + + oc =3D cpu_class_by_name(TYPE_ARM_CPU, "host"); + if (!oc) { + error_setg(errp, "The 'host' CPU type is not available"); + return NULL; + } + + host_isar =3D kvm_arm_get_host_isar(); + + /* + * Spin up a scratch "host" vCPU object and walk its QOM properties. + * This gives us the exact set we want to expose: the SYSREG_ ID-regis= ter + * properties and the advertised feature properties, along with their + * values for the host. + */ + obj =3D object_new_with_class(oc); + arm_cpu_finalize_features(ARM_CPU(obj), &err); + if (err) { + error_propagate(errp, err); + object_unref(obj); + return NULL; + } + + object_property_iter_init(&iter, obj); + while ((prop =3D object_property_iter_next(&iter))) { + CpuPropertyInfo *info; + + if (g_str_has_prefix(prop->name, "SYSREG_")) { + /* The SYSREG_ property stashes its field descriptor as opaque= . */ + const ARM64SysRegField *field =3D prop->opaque; + ArmFieldValueSet *vs =3D NULL; + CpuPropertyValueRangeList *ranges =3D NULL; + + info =3D g_new0(CpuPropertyInfo, 1); + info->name =3D g_strdup(prop->name); + info->type =3D CPU_PROPERTY_TYPE_NUMBER; + + arm_field_get_supported_values(field, host_isar, &vs); + for (size_t k =3D 0; k < vs->n_ranges; k++) { + CpuPropertyValueRange *r =3D g_new0(CpuPropertyValueRange,= 1); + r->min =3D vs->ranges[k].min; + r->max =3D vs->ranges[k].max; + QAPI_LIST_PREPEND(ranges, r); + } + info->u.number.supported_values =3D ranges; + + g_free(vs->ranges); + g_free(vs); + } else if (g_strv_contains(cpu_model_advertised_features, prop->na= me)) { + bool cur =3D object_property_get_bool(obj, prop->name, &error_= abort); + boolList *values =3D NULL; + + info =3D g_new0(CpuPropertyInfo, 1); + info->name =3D g_strdup(prop->name); + info->type =3D CPU_PROPERTY_TYPE_BOOLEAN; + + /* + * "off" is always achievable. "on" is only supported when the + * host already has the feature enabled. + */ + QAPI_LIST_PREPEND(values, false); + if (cur) { + QAPI_LIST_PREPEND(values, true); + } + info->u.boolean.supported_values =3D values; + } else { + continue; + } + + QAPI_LIST_PREPEND(head, info); + } + + object_unref(obj); + return head; +} + CpuModelExpansionInfo *qmp_query_cpu_model_expansion(CpuModelExpansionType= type, CpuModelInfo *model, Error **errp) diff --git a/target/arm/kvm-stub.c b/target/arm/kvm-stub.c index dd683beaaf..d19c53927d 100644 --- a/target/arm/kvm-stub.c +++ b/target/arm/kvm-stub.c @@ -124,3 +124,10 @@ const ARMISARegisters *kvm_arm_get_host_isar(void) { return NULL; } + +void arm_field_get_supported_values(const ARM64SysRegField *field, + const ARMISARegisters *host_isar, + ArmFieldValueSet **value_set) +{ + g_assert_not_reached(); +} --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238183; cv=pass; d=zohomail.com; s=zohoarc; b=gYZJJT4Fh85g/hPf9yXMfrQGqZmI10rJ/UzENdtceuOZM1uqXsa5lO0yJtuCuMJ87CiCSbYHdFvLl7mEgMEM1bq2kkMgoxEk3BnecETm5+pegs5KnvBQhfTcHmQ9SWxDI4pZGxUBqbxIPHCfk6e4D1+zP2WIS9ysnH/SbTQkh8g= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238183; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=9sXnPdBvjQ5BwWsZ1rkam1PrQ1bL8BnjGZgxT6FYCPY=; b=dNvkGFNg7BgydXLZERogeoK5H2A49hHREL8LxZLIQE7UOwvNDThsKzqZcs8Cb3sLRLq2xBbyjjZ3CDvPP9yPNeUxpmolsuO4i9SoRzxEh3TLhs6FxFrJ9h84MuHUHhldCckPmZb6uWTevNHKWPBK8UYeVykUK3R17cn1WnTzP74= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238183292835.6411056273723; Thu, 16 Jul 2026 14:43:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToh-000296-Ms; Thu, 16 Jul 2026 17:40:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToe-00024U-KG; Thu, 16 Jul 2026 17:40:24 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkTob-0005tm-59; Thu, 16 Jul 2026 17:40:24 -0400 Received: from pps.filterd (m0127843.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrUwD1796534; Thu, 16 Jul 2026 14:39:43 -0700 Received: from bl0pr03cu003.outbound.protection.outlook.com (mail-eastusazon11022136.outbound.protection.outlook.com [52.101.53.136]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fejrfb79p-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:42 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by BN0PR02MB8255.namprd02.prod.outlook.com (2603:10b6:408:156::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:40 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=9sXnPdBvjQ5BwWsZ1rkam1PrQ1bL8BnjGZgxT6FYC PY=; b=PQMtKptc+X/ZYLvmUeGwUQBO8UBiMae6EhZkhXZADP0VHIUUHEE28LgzW 4LXDo4JDW7gU3nx8TA+xJftHvQsux6AGfNPOzGkbcPpAEaAyYhUyNBF02knVVpp9 wOmg62jhgRkJlO6cx2ZeGxs4KaUc67jZmQbDN2nFpQG+Q8X8bHCNkkHUSx4Y4FN7 BJoC3v7XdfMEK0IVGyPu918+LKNHDiLMcgXd3oMX+cUdda5zQ+m0SwnGqx/6U+AZ 2wQHxT5tMdxXQaNF0sgFEq1NNclB8K3g4As8R/yzJc3ez3OcWM0en0TwFtAotpoi K6ulMQqq0/8gX57w7ZP8s4SPEfaug== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yt6P8l8a7L1Uz03dPxfgs/7erj20jLxvIk4QV6RONDMVX/+tTJCAXb5s+D6yiA8rRMRwu3HigETlbLP/GRIhG5iEkpn83ixbgW0DzjNQ3084DITK6bGXwGmZ5J+FsNg8J8GEAuJRlh8Q39tqwMQOdow/G3J1GqpDb9vIbl6tyMooYGACMdLlpGnnvfLoDMS9ZluohxNF8fX0Mmj+QvlE21WztvGKfFWfqvLFzLuuVXqFGNwTJ0IEcIAIqm9RD5uWsdPLPRW/KZm53w1FBXdt+l9GgADRZZ99BWrBcP8EcEdrNoZuIsAMJNaH66WThcph4ADAcRN3Rg8LKs15d0aXTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9sXnPdBvjQ5BwWsZ1rkam1PrQ1bL8BnjGZgxT6FYCPY=; b=qw8ht1M1IyWf4mD/hQ4uW/EAlb36q4S95xAF3EmYXAYbnEeZqLChGZwv6CEpdrg6KyLd7Uy0ps8nD62oDu6R+P3aJWxugQBt0gRD9tUFX9bA43SEmwqiTW8TPagX9vDwRmx21OzlpDD5MrMbOojqRU5ZMse+slvtiNb7DStYoschZXt/g+67dfN8HnO0b7o8ZPLNRqz/K0SNbM8ojMn3KVKpN2AruM4c/E6lH+0Ahw9tzQHIDg3XCYXikCLBnY6oc/eBrsBOHLzuae2+UFNJFa0aiiPT4qTbNhp77/zSlwttQXt64HjpVloM5AZdwl6OlKt18eg6bKu+gRWR+fICbw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9sXnPdBvjQ5BwWsZ1rkam1PrQ1bL8BnjGZgxT6FYCPY=; b=uau3LVtogvReUnYGh/Rt7bA2XMkV/FuXpjOe1OQJi/vwRdrq8yi/HpdLMupvdy6f78FdHgwsN5UECaa8apgCxgwIMomkBW/kQS7+DtoE3wknp+qSRSWU0k2aQ4/nRPQ44mwMMmUHNlccQBY8uWviQtvvvScRyfBfD4GvtTtrQwEVjm0KAJHgZnc3ZF7jkRsjMOgTS+7qpSlT00gDe7yLGFx8+lkbTx4wc2b6ko5rV4//sihdSNiJLtGTWWF34np199FZ0dxflQIx/bZHa0O8MwixNpAJ4K4SxmeefQkukN24ylx4fDPy4nfLxDxGlVN3LLkLDLcCK06rY70fXWK2Ow== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 17/19] target/arm: Report 0 as supported for ID fields gated by vCPU init flags Date: Thu, 16 Jul 2026 21:38:56 +0000 Message-ID: <20260716213858.609699-18-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|BN0PR02MB8255:EE_ X-MS-Office365-Filtering-Correlation-Id: 6465b1c4-82a9-4592-bcff-08dee382bde4 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|1800799024|366016|23010399003|56012099006|6133799003|22082099003|18002099003|10067099003; X-Microsoft-Antispam-Message-Info: aylUIlOCvkGlql+fyP35jHHK3UJtm8oyTRIsBhTZoatBb9WRNKt6hJvC6wfFd66K6xcKpXHoMredqeLyV5qv7LUa9iWkogYQPSHbxE3kTrWhQMeohdrIdGdKiVQECphgYDQ0rjj5wnxa3mz3jO5BrEnfbiz83qMp7ZkNwsXfNdZyI8+5dbONKJAwwFLIzLXKDfHy0pzw9cdBvL/FI3PBO29pRLg5Yh2OSPYIS7k7ketNfZr02oqr7qXfqygMslel3WwrN6d2ENWYj3kf/upEq73kZRUENd6rrQpPi8F2tUwoRR/6ZLFCIoxPJ/PxjyCPMh8i530MMllgphbxxXwt1Tiojkvicc0LmpZqs+FjBGHaLR88q8EmtEYfzQTML1NDS1DPnXOYS66rFxKhE8Ug3SI/bYzJtzDEnUS6b0oZnNMx3EPPaF+1/Qn2W5Jqu5FsaxAreK0WzP5B+SAgWa/gsq3nI5Ix0brHic0oTediw8p9ECtSLd7LAbHCXiAikW4VCgvPEO4FspC2KWd3wyLAJcNcmdnDaPqScPD4TnM8ut16u0z53v7JogSWiHBNKhcEG/4CYTrBhkdMh7D3XX1IkVXROk3bb+7udc6qK/HNUNsXMutw8DA2rgmZwVZGvZXfu+EIRk4UfDH4k4bTF8wS2uxtezHI9L6XMhgasmYbVT0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(1800799024)(366016)(23010399003)(56012099006)(6133799003)(22082099003)(18002099003)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?X+DoqvVGd7tbKsWPenfbr7cI5T8AuOnotPwSI6mu0cXI75ul1cdIy5MPGMzf?= =?us-ascii?Q?5it98yPYxFkd73mwMXvdMYgR2JlGqdmXV5Ics845ujXVywRldAJ0UDRnoR8/?= =?us-ascii?Q?dfyayl52iIpDOO9kQS2tsYHoAR5KbpEb2R5zR06chNc57ienXwzboQlvdBdm?= =?us-ascii?Q?VXIVYLU6gvCfY372T1H4KXqLEODP/ItVVy17IViKT3mCvc/AV/ioOsQ7phbv?= =?us-ascii?Q?Y+fom4M0ZE5r7lv+n3q2v/Q0cMcvRLMCcEFY4vq3A9FMnU5XYvxZg07Jihzt?= =?us-ascii?Q?p2OGr/VoUKebN4bXBi0aNmysIV/SndqOJB0a1zlZ0f2I7fCO8kT+hjN3w9wP?= =?us-ascii?Q?/LJbjXVtIrDpxcmcPsk/EbRvHT6/iHc/W509L15I+4Y/2CmtGjhyxpxTuwYZ?= =?us-ascii?Q?Hp1HV6TVYEofgtIVT1caCpPN8cG2jfHuNV/iZUjDdPHJ3umT5mOlPlN75kBI?= =?us-ascii?Q?9pQd7co89QWj0fzn5u6zllJv/gi6TUxVRamLw78lWVjYpJKXovmvgQUU0J7q?= =?us-ascii?Q?DLmITgSSEAZ+O3XgQ0J6g8nkhuY2evWZQ8Rxi7JCVIMjtWYYEWJGoRcvWCns?= =?us-ascii?Q?VnangSFBHh4aZE3ku/rdCWkm/YOz5iHC0xF4+E3VrLWuhpWzmXNNVdp32OJt?= =?us-ascii?Q?r+VnNCHvjkULs1B+C59NWo0WKINTTZNOsisxcXf3L9bKh340YaKPCfydE85l?= =?us-ascii?Q?cZa79Isl+hcOYubmoVb0Ga2JPCDzk7xCdr17DXb2bEQSP7hSOxeELmuI8ltP?= =?us-ascii?Q?BBB6Zhh9Hqp53pdeJdSt2JyQGip59MPMEyACkHnWtk/im3XIjFOMqSMSb3OH?= =?us-ascii?Q?qXddzKDK5Nc8btVAo/kqp5wLDhrDsxYsv6ncMh2NAZWGczFI4dIWBi7cfDPH?= =?us-ascii?Q?WN1kRQCMWXHPuW8bTMdz+VhzJxtldXOwsYZt7topCVab/Gv+DcMMEjHeYOBW?= =?us-ascii?Q?YJ4NfhSJdnqAQeB73NQigpkvdFrJycVbednOuykuY7MvKxUHBAZH1ka467/c?= =?us-ascii?Q?eCVxgrUEo9rwVzu43pyt9n87zpCwCq3XoQglEgteNk055tA7DMViX4t9BtY5?= =?us-ascii?Q?4ip6lpqiIzeyz9sWeY7J0HMhsZ/LKb+dIyjlpIGw2rXeUOLZ3R+swc31SVMp?= =?us-ascii?Q?4O7AR3kukl3gQOmVBpgU8l/KH3c16epnDzpi6p2HLXSgnHk1LYWB1Utpd+gi?= =?us-ascii?Q?Gttmu/d7T+qJpbswC80L8wa+vnAG7TwTCTz7qIcAVRYh1iihl0R/c6sBDrp3?= =?us-ascii?Q?k9NXpfRMsbj01TahxaXowDs3qprlG00NDFrJHjpAifi2ocs1MeU4JkqjlO/H?= =?us-ascii?Q?4ftupGPPJEmrzZWuf0ES5eLqS5Cb4CIklIdJw5lTPR7Qak6zD1qCHh2tg9OZ?= =?us-ascii?Q?SlPa6NU7SKqR3B248SFp4YYrtYUsTnrbS6fqPdvVHIUwpXFXWEF0j2DgYmfy?= =?us-ascii?Q?LcoEVXnVClle5Y925yKKR/fYldANC+VaROSDDFarkFKWPYNeuIswCfUmlg67?= =?us-ascii?Q?dRzArGTaUJIEwyyaQ1nHXbAeuoNALwiZULH/hTlMaey3boLVoITlwzgR+hww?= =?us-ascii?Q?9DxAcBjnBfNxgDsLZMBskiad7TeYlTEK6OK5YhjdTWYlvdAXgQcnPkHPRrsc?= =?us-ascii?Q?nVgGpcl9C04aqNWDKDnthP6UEyJl5mh+yC5ac2KoBDfFKSXkDursuZwiEot/?= =?us-ascii?Q?DmC/An97B9FEy7qviZ4fFYkcciXFDXrfjM2EAxVw4USVX9b61YZnBigI9rTS?= =?us-ascii?Q?dog4p3tROZVMI2L1ttDJCkTqJ8fx8io=3D?= X-Exchange-RoutingPolicyChecked: mRv62I1htFlshzU28d4xu23GZTs9t9ZaaMAQwWYRlxRIxZhPNj7bdGCkqp7qCZjRAq06jqlggFz5a0//NEiI1+bynaTld/PNTEPYaDoLQ0ByEIPxJY1i8aRDyTIIZYKRdAUD6DpUce3ADk1gPb9Q0irnlxY51ZlCqeETLR/AqTGlj1LhkIL5IxBYHDuvG1/rER86moqUnnmWiMvLisabePsAfklHUjUGuqL5e1Iwi6Bqoa9v92ZAE3uCgncBJXLAOqv4ssXgrVpCu/qUBOHl2xlU7IjuRRt1FUBB4bvoXVMcrF2dX+tysmDt9/jjxR00vxQFpOLYt2jn53I2uM3h3Q== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6465b1c4-82a9-4592-bcff-08dee382bde4 X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:40.5422 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bc+7VleXrGWT32DDbosl0T00LwzESU3QUoNaF77xeXQu0uTAKNW+wJRFGHk6cNFeYl0fUbCIV+GYQNFCKHQBJu2WOjF/IECJz4nh5GaAleE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR02MB8255 X-Proofpoint-GUID: QPBrySl2Y_VPvrxC3rnL45-uw-tM8qt4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX/chvlV+kDUqf c2mFsNWV7e45t5eMwEmghogYbmVYaUkZlfL0LxfBaAxw3rCgGvjmTaHwGr9AREkMNg5CTM1A1gh DU3DmepwzbH924BgrXNTVG7pDieMOgwA3QvrCdnIaHLIBFhZ3JpiT+eLPNlVHOWJ8qr3djLtvNW 52jC4A+VGBF6Uh5FK99IlIb4cUSgpWQNnhDj5+d7Kqr7wjaUzHIzw1dlVPvz4+laFuxWWpS2Mou HccqhAxuY5J6Gd/g2imQha+lPq6JJ43RMHslyUNc75zWEnqsi2AzUtwyOqVNFvGjZqwKyIIT+cK VPlmVtQOnUefwnD56bKxCL3laR8lNXp9sv12Pke+TemboHQNeXlPhTb6MbaKsJ4RRKQEeV0EL4Z te13CkUuMAK6d6d4uhZkhnyV5rTfKD6lNe8jvQcfUZ9aGd92BsYMFEaay2kBx7MgLwV80F7caPY Ee9AaciMN+UOoIlsRfg== X-Authority-Analysis: v=2.4 cv=d4HFDxjE c=1 sm=1 tr=0 ts=6a594f9e cx=c_pps a=wT4O3adra3cfqKKwvhZ7sQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=dEe9Ve2bX-KnNSUMM2s9:22 a=64Cc0HZtAAAA:8 a=AgFlfPbjf6SEF9yYaDIA:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX9aJljOOzM57w 9P7G9QTXSnA8Qr7JblBDfhdHHIINWueWU6H/DdKGSMJ83whfwocepqglIC9e6+KXFNp7qw+sTjE 3kEVznAlEF1pr8vQdEPeTbO4AAKuwgQ= X-Proofpoint-ORIG-GUID: QPBrySl2Y_VPvrxC3rnL45-uw-tM8qt4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238185369158500 Content-Type: text/plain; charset="utf-8" When QEMU queries supported CPU properties via KVM, it uses a scratch vCPU initialized with all host-supported features (like SVE and PAuth). KVM exposes the corresponding ID register fields (e.g., ID_AA64ISAR1_EL1.APA) as read-only, the supported values only shows the enabled host value (e.g., 5) and omits 0. This will lead into falsely flagging a model as blocked as the features can be masked by not passing those flags. For these fields, even if KVM reports them as non-writable, we explicitly append "0" to the list of supported values if the host value is non-zero. Signed-off-by: Khushit Shah --- target/arm/kvm.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 042d5fe804..ce77758c87 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -1292,6 +1292,24 @@ static void ranges_add(GArray *ranges, uint64_t min,= uint64_t max) g_array_append_val(ranges, r); } =20 +/* + * Some fields are reported as non-writable by KVM but can still be + * disabled by not requesting the corresponding vCPU init feature flag + * (SVE, pauth). The supported values are derived from a scratch vCPU + * whose init flags may differ from the real vCPU, so for these fields + * "off" (0) is a supported value in addition to the host value. + */ +static bool arm_field_off_via_vcpu_flags(const ARM64SysRegField *field) +{ + return field_matches(field, ID_AA64PFR0_EL1_IDX, "SVE") || + field_matches(field, ID_AA64ISAR1_EL1_IDX, "APA") || + field_matches(field, ID_AA64ISAR1_EL1_IDX, "API") || + field_matches(field, ID_AA64ISAR1_EL1_IDX, "GPA") || + field_matches(field, ID_AA64ISAR1_EL1_IDX, "GPI") || + field_matches(field, ID_AA64ISAR2_EL1_IDX, "APA3") || + field_matches(field, ID_AA64ISAR2_EL1_IDX, "GPA3"); +} + void arm_field_get_supported_values(const ARM64SysRegField *field, const ARMISARegisters *host_isar, ArmFieldValueSet **value_set) @@ -1304,6 +1322,13 @@ void arm_field_get_supported_values(const ARM64SysRe= gField *field, /* A non-writable field can only ever hold the host value. */ if (!arm_field_is_writable(field)) { ranges_add(ranges, host, host); + /* + * ...unless it is one of the fields that can still be turned off + * via vCPU init flags, in which case "off" (0) is also supported. + */ + if (host !=3D 0 && arm_field_off_via_vcpu_flags(field)) { + ranges_add(ranges, 0, 0); + } goto done; } =20 --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238139; cv=pass; d=zohomail.com; s=zohoarc; b=cO9lakfntNzVHDtt8NT8atwrc/XSo9SxOQ1lnrmbJ8tCPyYV6RQE9s5bD2EgNTROAmL4IGiXJAdUyXcxz7ivtIpJQfYelxdBpDbY3Z4NZwWcjTrzI5KowDkxG657rEOdfnqAVNonVbjA17dY5mkO2LHuNEJcuLVKH4Hudg/X9pE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238139; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7ftVkMcALZp5mhdHso5xT2g8zXa7kA61pMihzXyk3As=; b=UXb7p/PaimxiDi5oEBj4KIzU2eUg+CIokTlGLVqBlyw9l4U6AVJkODFAlaj7wsu7WWphhfiBF29LwfFnRsxHXyVYugR8B5uuOa0bcQHkI38EAID6PQ9M+Fz62zIr2bn0mRfePOGLXagywaGM+Q/orn6sI9cO6gO7DNM+o92vnyE= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238139663206.72764031960241; Thu, 16 Jul 2026 14:42:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToh-000289-5P; Thu, 16 Jul 2026 17:40:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToe-000246-Go; Thu, 16 Jul 2026 17:40:24 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToa-0005tf-Gn; Thu, 16 Jul 2026 17:40:24 -0400 Received: from pps.filterd (m0127843.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrUwE1796534; Thu, 16 Jul 2026 14:39:43 -0700 Received: from bl0pr03cu003.outbound.protection.outlook.com (mail-eastusazon11022136.outbound.protection.outlook.com [52.101.53.136]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fejrfb79p-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:43 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by BN0PR02MB8255.namprd02.prod.outlook.com (2603:10b6:408:156::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:41 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=7ftVkMcALZp5mhdHso5xT2g8zXa7kA61pMihzXyk3 As=; b=fKH4a+nX+ybj+VQzutG6Hs3+3U9iVH/EfoQCUktq4gUcHqAD6se99tCvD 6T2YjGmZbHYIwNtJCbsyfnv7TBnnAjH6CgYWT/B2+rkqnypaDMuD2p9ilNCqIcyT GmtTNIEc5PXgQZS3/cmVud8CfqfUOfkVI2579z+TECxapjUN6LqERn/exMw5bzNF mHEf3BnxqTnmp6t4V8UdXNZpdS+vFxTbmOHiLH0xb7PO1cr2UjyMrHe7oKQ5QkAL VaBl/YJxTXTOH5TzlFQruJlqoCqxJC0Avi3iOJvM6zPnXZboTFQduHXcgsfktq0p oUPkV0B3xUwoWPkLkYVkBRHhv9WNg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=L7gf8YoHBInB75jv101Tgble0J6vO4CBosO9ifNawVFCwQYnsT6MnUkAsadHghlBlba1TEMN9Jmvr6WvMrqiBdkVNs4emrekJyRz25epnWCDfo1siNBDQ+n4qAXjudEPrcu/7skHOfsAbu+8rIWqU+/kcru570Ud00mUahJJL0LPUe/2wmIA+NgLxh0jnX4RWHJvVPB5ZjUkwa9hKVB2BCYqzipTsomajL7u1UM46OEMDQdkih9GPtil4gf3yLg2ZAR0pmByThfApGZVJizH/7Vpsw8yEqvGC2ZUuIiU3fywAZPVgFYc9iUHn4ohqvKG2pp+Pb+LAMS1iiBqVrHcHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7ftVkMcALZp5mhdHso5xT2g8zXa7kA61pMihzXyk3As=; b=n87LEzzOI4gxY24wMKf4mF2rO01VHTvdpoeipQ4TTi3MEBroUKGcH9T/iTtYM1rfUMlttNIYMxETgVWHcj/zTIzsLsA/MCE9in2qjzY+qw95SH+NQBO32f3XQschsU7bLVU54MXY35f2a/oQoLx2KwhVoyd7fDz9aPuwpXoRP9Wjnk4HrjQ+IntJNakRNGUog1iHPrmg0f4dC44KPUT0G+W9Khw+PYtx74Prt5VIHBVjd5H+H1K4qI5K4zxQRKmtPyTL9DMXOj005n1shvzkshSC4hN++F0XhZ5YyJ1BYlZkjtHokJktYmMDw7zAiBdBD4um4ho/kzIFNZLr6Qhelg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7ftVkMcALZp5mhdHso5xT2g8zXa7kA61pMihzXyk3As=; b=eZQrkuEdMb529V3mKfUGq/IWsV9E8cGvBAcTjF1wLyLAOHiejjm7i9c66LsWBTeRZOsyp2XuH5TWmYfQ3EgFSdLYeGOEO2d2S5bZE2+OaYm7jhM+FlzkeXw2YMTDz2LuPCqCNgWnBirfXTCUNmrEZooAuZyZXKCqiMJOl939mh3vrTjmad/PfC9j/LYa9Y0luAoL6vNleLnJGtZ2F/NgYqXOnrobvVpnKkMFVSKwXZEH0HZSO8OnswhrQvUYXieL2ubS00Jg//nhisP4s+tu9L/sr64Z7yROKsMKQX6PB7ttaTnrog0sqtiwMEvevdmBI+w0hIrbedO53yv5OJ9nUA== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 18/19] target/arm/qmp: hook blockers in query-cpu-definitions Date: Thu, 16 Jul 2026 21:38:57 +0000 Message-ID: <20260716213858.609699-19-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|BN0PR02MB8255:EE_ X-MS-Office365-Filtering-Correlation-Id: d7513a30-306e-4299-01da-08dee382be57 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|1800799024|366016|23010399003|56012099006|22082099003|18002099003|10067099003; X-Microsoft-Antispam-Message-Info: aGK7YStxUJm5ZzvpyECRnR13UPFlE2AQNBXnKSxpaP/5w2gj7Gl217Tryy/X31WEwvZDizggLFFV50akRlDbGpGlZ+KMRluyxTsgG2wSgsny2nYVy9ihERr0Ef4U9JHflcKg0pu9BCfAyfsvUL4uc8QdYOPBR+xSpM0YwAoxOTrcx/ls89+oRj6VX5YhUrlwI9BXjmUYHGhHNPo5VARlp5wTe0e1oWefT3bfsPwELb+VHRqz4/o4VTpQUleGG0eFp1YdjMKQ4lvz5QFilql3uatAkL+ChR4Smb4GTQlu5IKO+OGxAAKoiEZuMxIfufZRj1oH0ha3d/iz/8xZ58D0G5brR4POarLumXmjcKa/NnU1ekhYM2fJ3Qq3Ch20RVRXGCkFHXw2NENmTewYeRvfiQNMVycOa0HYcT5TFbeJDLYCTMIXkPay01FwpIiL8rSwJcuY+xQ9o7Cv0uc23rmzkEcnPtZdDeyTVsrurpFVcgMgz1CNXIRzQR31uCOWbDH8Y/99uj3GeVdf/sgVe1O51NSAP4CMqlwnaSnOrmblnqX+w6E8RWHj/pcwVAfZQnp18DQf/bs43/SIXNP0nWAIQPG/lK2hBk9FuPeMrIkQNh1AGHG0wwMzcs3RDa6hITJNcjKllg+QYD/EWPxx2U87BsQeXLVpSuvXsSfCJXWiUNg= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(1800799024)(366016)(23010399003)(56012099006)(22082099003)(18002099003)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bRROr0M+WFOEjeOKPObCMea3NrPUIo0CVbA1GM77bRgdATOygc1n4oEuJ+V7?= =?us-ascii?Q?keWEeWlO8MAT14cTRPcs4LtpKnijrqmpNaZnLO0Gxzps6JlWT6DvwaEfcrQ1?= =?us-ascii?Q?ERUaKwfMFrkGkzLAew/P1/QxxCBhl6Dmbc+IPU8Z8mdDvKWF8yQGs5FEZN7X?= =?us-ascii?Q?2hK/v+orn2R6o6BwIjWJbVmz1SFmo34DLaP2T93vCn9PVOwijMM1Vc9QapfT?= =?us-ascii?Q?jdC207KvO8SAMbLldIqlWPyJ9ilMQhbRBHofatRnw1WMf+Kx/I1yb3m1lqOH?= =?us-ascii?Q?welikw7j2X3aO4/Wiz+vgUZ9CurIr7cS04930QkTfQgjNolb+eC7HweKyUET?= =?us-ascii?Q?QqVoJ05UfObCENnOACB4szFwKKzueN/Z8ePe042Nsm2zjfAxpmw809GGKJBB?= =?us-ascii?Q?CKsqcSzVYt6beNbb8TWP1Ap+7dC527Pz+wm5EQ1NbdCEhoxdzWyxD7GtmP57?= =?us-ascii?Q?QcsalW4fmGDaOEgRsuqLTOfxDYRWLhmPb0Wi0uX1Eu6bALhV0fEO2XcEkpV+?= =?us-ascii?Q?ixDqYWp56F0XNjiXeMaAmvohY+2RQlmU5CmHeTwH3SicEGoGTUfSJpnXbBSf?= =?us-ascii?Q?oXdOw17dsqbyQTvvFsX4OudDBDW1pEOveLFXuNjSf6oRqw9xmvAk+TAmwhrH?= =?us-ascii?Q?+UHUFTpnUdlUywqqmEIKyonOyzLCe7di41USbciHCnZ87TKv/RyR9cg9SF0P?= =?us-ascii?Q?hHCqToAsOqLtCxlv24e2f6yia01SBP2w3EWFW3mZ6xdt6Z+kO57vJC2da8FH?= =?us-ascii?Q?nlSRtX43i8HIU1xNvniQS2VlLPhNM0zyabgUVFWgrldXUCOgEiH3HOUMUm6c?= =?us-ascii?Q?GxUfVg7bUokJ92NplFADaIiJ1fDCwEOVG33Je4IFTCYAWpTBhst2lBwTdS4A?= =?us-ascii?Q?utdQJCHTF4GH2Fbj6crz3yvxCjaiR1k5WMp3LIwQVb14CW7v9AQ/p6wSWOmG?= =?us-ascii?Q?M9VEqmBaMDsrRcxC32/ux0wOJR5k2mPsBcyKKnFAYaeeC2GHw80P6+nHXawk?= =?us-ascii?Q?V0Io/A7CkC7RtZio7myGvOhqOh5mQx8T7RYuPspCkBKf5UCrZnUhrsKzthEj?= =?us-ascii?Q?woq4IodP5zRmjoz8PaR78I7/cGFUPVydEwGNDnx5dvGWPOoeS4tDn6WmEKfq?= =?us-ascii?Q?Os7p4r6Zrk33YLjWHE+duM6+t4dWwVGhIgvpCOdGs9nse/U9OmQ8zpVuh8o4?= =?us-ascii?Q?oMm48jAA71itz7OiDzAFwc8ig4eO4ZOglKgWbKeB/7bHz3gxwEftftHZOK2+?= =?us-ascii?Q?Swn3Ef+JDFFl8NfCK8/EDUS69X+PO7R2sLYem7/4Xp1r2lFTclrXM3R0nXAc?= =?us-ascii?Q?m9W560GHgd12HXk3vR87W0uwo5f0vaT6DWiszjkzqmQGhTYqnlDDOYllqjyi?= =?us-ascii?Q?B6RDYT0yMcFgn+BuAHI/JFmGI3XuswJokPQ2UFzR1v1N7qVamXE7zK9yepgE?= =?us-ascii?Q?aJoUpKFQU4KrZaZ+9dQ/kZf+C3LJUYC2CvG8gtFf5qYaWAfUq/mhyvo3C5+I?= =?us-ascii?Q?3mr+yqcXNniuIFGG4EZNdMLyI8TbmZTnnjLKnM4VZXEGYQA5FRyRtnvy2i8w?= =?us-ascii?Q?Q5oCo580R6LXPjhvBhbXQ1OzRuLSUYXAFCgtfsi199AVsLPCQSRARiAOqs01?= =?us-ascii?Q?q9s6ZjT8GjXJwdtA/Knuzyyh8XJAs2hyIaESa39CgEpNv94NxPs0A1H5t2t4?= =?us-ascii?Q?jSoG0udCupJ39ZpzA+5TC1AyzvijUzml7cy2OLORBaTPPn7D3jZ54xmTIsqd?= =?us-ascii?Q?qAHOFPOxKopm8h4mC2qZCvXyXEMkk6o=3D?= X-Exchange-RoutingPolicyChecked: Az3sYpFKOvUPOLTzvgF5vgfhTzTPZ1YkFHGsQ1DxES6FkU6j1dJ2+iH1DDK3X9SFDahogcWP8saXIlmvQAMOD5s/UXkgVG/N8CsySw+is86cBwG+cSkh0SE0kXVxwKldwYWu6+gnZIapbc5AXlmRmKmSpiI8axQ/ZaRYxooIY5o0kgYh28XfT2kQL96l5xu2L+s3HYF8PWJE+HFM2XuRnqFQf9m/VbN6h+WHdIDms562n0vkIqbdqHTDJuw9CFk4bzhPKf7yM3/Ki4kGaTqDQveO7h/e2lUBNMJOXJlM+GoY1fYzPBi2vZ9ftT/rvRaGOV6Xu+w7zbATmI8OxEPCjg== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7513a30-306e-4299-01da-08dee382be57 X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:41.3049 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nIIcQ997SFoz7NO3AXGquimFihB+5tmFE6XrYkXE/kAtXojlMBNuJFNcnP5ewA/oknLrILyZpw6/p09yuLr7Q/h5VHE42EO21frn+ngalFU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR02MB8255 X-Proofpoint-GUID: y9ANUC8jdPTItldooCub8fDfFJxhKScx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX5e1cSfJmHGUr +lbfAG5Avxy/wcd0VRDPKUV4SOTADWVe8XfGGMkVzrWFBENJYn7z+ZHCc+sT/KvNLKwI3af+pRn hwwYy+yJaPzGc2fEhkpeT2navrIqHSVDj1CLSqwQmwgpvvxFUkytCQyn255/OSgjde7lP41qhEe pvMrTZpB1s+IkpXSqJq8TnMp8ecKswtM4IO5BqQ5Ep1g+/VOyIStmpOxX7lE3N6hghjXn3S4AMw 6EB+kvll4c84ak9V9uovCGnHedhZ6pTuuR+ylGnzlK2IZV3MST2998y/a667qdYhUNv/rsrQInC nh0gR5wPDjMIdFn002PMwSInOONPTP8xZPWf7yAITzWWbCzHWwvZEPP4YDK0njqilQK/yiXPW9I BHP6v9kOgSgnh5Xoy5w0LnxhBuY5+0crZ9dkRMSWil7n8Iugp/eA9d6Mtjzu1YwgB+WlTMJhhaz f15B3DBXX9HK3ETUW2g== X-Authority-Analysis: v=2.4 cv=d4HFDxjE c=1 sm=1 tr=0 ts=6a594f9f cx=c_pps a=wT4O3adra3cfqKKwvhZ7sQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=dEe9Ve2bX-KnNSUMM2s9:22 a=64Cc0HZtAAAA:8 a=oSinNBb-mIJOy2iRG7MA:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX98KowGRw3vCi i212QmBKU7ZaLuOzkYWWSOsr26GWFPXj+EcDkfe/fLQg4zeGhFpARjKFWJ60+F1YR1ncf/4NGhB k8KmzJxGRT3LF2OlSgoHT5D4NCKTEeE= X-Proofpoint-ORIG-GUID: y9ANUC8jdPTItldooCub8fDfFJxhKScx X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238141381158500 Content-Type: text/plain; charset="utf-8" Now, report blocker for named cpu models in query-cpu-definitions. Heavy handling is done by validating the realized ID registers values against the host values. sveNNNN needs special handling as those are not stored in any ID registers. Introduces arm_cpu_class_check_missing_features() and aarch64_idregs_get_blockers() to achieve this. This way we need not instantiate each model to check if it can be realized and we also get granular information on the ID reg fields blocking the realization. Signed-off-by: Khushit Shah --- target/arm/arm-cpu-models-stub.c | 5 ++++ target/arm/arm-cpu-models.c | 35 ++++++++++++++++++++++ target/arm/arm-cpu-models.h | 2 ++ target/arm/arm-qmp-cmds.c | 12 ++++++++ target/arm/cpu64.c | 51 ++++++++++++++++++++++++++++++++ target/arm/internals.h | 3 ++ target/arm/kvm-stub.c | 10 +++++++ target/arm/kvm.c | 4 +-- target/arm/kvm_arm.h | 17 +++++++++++ 9 files changed, 137 insertions(+), 2 deletions(-) diff --git a/target/arm/arm-cpu-models-stub.c b/target/arm/arm-cpu-models-s= tub.c index 0481f0f946..dadd3b7647 100644 --- a/target/arm/arm-cpu-models-stub.c +++ b/target/arm/arm-cpu-models-stub.c @@ -11,3 +11,8 @@ const ArmNamedCpuModel *arm_find_model(const char *name) { return NULL; } + +void arm_cpu_class_check_missing_features(ARMCPUClass *acc, strList **bloc= kers) +{ + return; +} diff --git a/target/arm/arm-cpu-models.c b/target/arm/arm-cpu-models.c index 40e8578591..44e7d3cfa2 100644 --- a/target/arm/arm-cpu-models.c +++ b/target/arm/arm-cpu-models.c @@ -475,6 +475,41 @@ static void arm_named_cpu_initfn(Object *obj) arm_realize_model_chain(obj, model, &error_abort); } =20 +void arm_cpu_class_check_missing_features(ARMCPUClass *acc, strList **bloc= kers) +{ + Error *err =3D NULL; + Object *obj =3D object_new_with_class(OBJECT_CLASS(acc)); + ARMCPU *cpu =3D ARM_CPU(obj); + + if (!kvm_enabled() || !arm_find_model(acc->info->name)) { + goto out; + } + + if (cpu_isar_feature(aa64_sve, cpu)) { + arm_cpu_sve_finalize(cpu, &err); + if (err) { + error_free(err); + err =3D NULL; + uint32_t host_vq_map =3D cpu->sve_vq.supported; + uint32_t model_vq_map =3D cpu->sve_vq.map; + + if ((model_vq_map & host_vq_map) !=3D model_vq_map) { + for (int vq =3D 1; vq <=3D ARM_MAX_VQ; vq++) { + uint32_t vq_bit =3D (1 << (vq - 1)); + if ((model_vq_map & vq_bit) && !(host_vq_map & vq_bit)= ) { + QAPI_LIST_PREPEND(*blockers, + g_strdup_printf("sve%d", vq * 128)); + } + } + } + } + } + + aarch64_idregs_get_blockers(cpu, kvm_arm_get_host_isar(), blockers); +out: + object_unref(obj); +} + void arm_register_named_cpu_models(void) { size_t i; diff --git a/target/arm/arm-cpu-models.h b/target/arm/arm-cpu-models.h index ac4e510499..6c8fba2aeb 100644 --- a/target/arm/arm-cpu-models.h +++ b/target/arm/arm-cpu-models.h @@ -7,6 +7,7 @@ =20 #include "qapi/error.h" #include "qom/object.h" +#include "cpu.h" =20 typedef enum ArmModelPropType { ARM_MODEL_PROP_BOOL, @@ -31,5 +32,6 @@ typedef struct ArmNamedCpuModel { void arm_register_named_cpu_models(void); =20 const ArmNamedCpuModel *arm_find_model(const char *name); +void arm_cpu_class_check_missing_features(ARMCPUClass *acc, strList **bloc= kers); =20 #endif /* ARM_CPU_MODELS_H */ diff --git a/target/arm/arm-qmp-cmds.c b/target/arm/arm-qmp-cmds.c index 457cc3edf3..6f11681c87 100644 --- a/target/arm/arm-qmp-cmds.c +++ b/target/arm/arm-qmp-cmds.c @@ -341,6 +341,18 @@ static void arm_cpu_add_definition(gpointer data, gpoi= nter user_data) info->name =3D cpu_model_from_type(typename); info->q_typename =3D g_strdup(typename); =20 + /* calculate blockers */ + if (kvm_enabled() + && !g_str_equal(info->name, "host") + && !g_str_equal(info->name, "max") + && arm_find_model(info->name) !=3D NULL) { + arm_cpu_class_check_missing_features(ARM_CPU_CLASS(oc), + &info->unavailable_features); + if (info->unavailable_features) { + info->has_unavailable_features =3D true; + } + } + QAPI_LIST_PREPEND(*cpu_list, info); } =20 diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 44dd9acf80..f41bcf2e81 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -20,6 +20,7 @@ =20 #include "qemu/osdep.h" #include "qapi/error.h" +#include "qapi/util.h" #include "cpu.h" #include "cpregs.h" #include "qemu/module.h" @@ -779,6 +780,56 @@ void aarch64_add_idregs_properties(Object *obj) aarch64_add_idreg_properties(obj, reg); } } + +void aarch64_idregs_get_blockers(ARMCPU *cpu, + const ARMISARegisters *host_isar, + strList **blockers) +{ + for (int i =3D 0; i < NUM_ID_IDX; i++) { + ARM64SysReg *reg =3D &arm64_id_regs[i]; + + if (!reg->name) { + continue; + } + + for (uint32_t j =3D 0; j < reg->fields_count; j++) { + const ARM64SysRegField *field =3D ®->fields[j]; + ArmFieldValueSet *vs =3D NULL; + bool supported =3D false; + uint64_t model_val; + + /* Not a blocker if the field is never written back to KVM. */ + if (arm_field_skip_writeback_always(field) || + (!arm_field_is_writable(field) && + arm_field_skip_writeback_if_not_writable(field))) { + continue; + } + + model_val =3D extract64(cpu->isar.idregs[field->index], + field->shift, field->length); + + /* + * If the field is written back, make sure a "supported" value + * is requested. + */ + arm_field_get_supported_values(field, host_isar, &vs); + for (size_t k =3D 0; k < vs->n_ranges; k++) { + if (model_val >=3D vs->ranges[k].min && + model_val <=3D vs->ranges[k].max) { + supported =3D true; + break; + } + } + g_free(vs->ranges); + g_free(vs); + + if (!supported) { + QAPI_LIST_PREPEND(*blockers, + g_strdup_printf("SYSREG_%s_%s", reg->name, field->name= )); + } + } + } +} #endif =20 void aarch64_add_pauth_properties(Object *obj) diff --git a/target/arm/internals.h b/target/arm/internals.h index 7502b6db8a..d05e35ba83 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1756,6 +1756,9 @@ void aarch64_add_sve_properties(Object *obj); void aarch64_add_sme_properties(Object *obj); #ifndef CONFIG_USER_ONLY void aarch64_add_idregs_properties(Object *obj); +void aarch64_idregs_get_blockers(ARMCPU *cpu, + const ARMISARegisters *host_isar, + strList **blockers); #endif =20 /* Return true if the gdbstub is presenting an AArch64 CPU */ diff --git a/target/arm/kvm-stub.c b/target/arm/kvm-stub.c index d19c53927d..eb8fdda236 100644 --- a/target/arm/kvm-stub.c +++ b/target/arm/kvm-stub.c @@ -131,3 +131,13 @@ void arm_field_get_supported_values(const ARM64SysRegF= ield *field, { g_assert_not_reached(); } + +bool arm_field_skip_writeback_always(const ARM64SysRegField *field) +{ + g_assert_not_reached(); +} + +bool arm_field_skip_writeback_if_not_writable(const ARM64SysRegField *fiel= d) +{ + g_assert_not_reached(); +} diff --git a/target/arm/kvm.c b/target/arm/kvm.c index ce77758c87..b909a11dfd 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -1394,7 +1394,7 @@ done: (*value_set)->ranges =3D (ArmFieldRange *)g_array_free(ranges, false); } =20 -static bool arm_field_skip_writeback_always(const ARM64SysRegField *field) +bool arm_field_skip_writeback_always(const ARM64SysRegField *field) { /* * GIC is controlled by the gic-version property and fabricated by KVM @@ -1412,7 +1412,7 @@ static bool arm_field_skip_writeback_always(const ARM= 64SysRegField *field) || field->index =3D=3D CLIDR_EL1_IDX; } =20 -static bool arm_field_skip_writeback_if_not_writable(const ARM64SysRegFiel= d *field) +bool arm_field_skip_writeback_if_not_writable(const ARM64SysRegField *fiel= d) { /* * KVM populates ID_DFR0_EL1.PerfMon even for AArch64-only guests but diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h index 4a04d72e39..6409bec735 100644 --- a/target/arm/kvm_arm.h +++ b/target/arm/kvm_arm.h @@ -172,6 +172,23 @@ void arm_field_get_supported_values(const ARM64SysRegF= ield *field, const ARMISARegisters *host_isar, ArmFieldValueSet **value_set); =20 +/** + * arm_field_skip_writeback_always: + * @field: the ID-register field to test + * + * Returns: true if @field must never be written back to KVM (and so may + * legitimately differ from the host value). + */ +bool arm_field_skip_writeback_always(const ARM64SysRegField *field); + +/** + * arm_field_skip_writeback_if_not_writable: + * @field: the ID-register field to test + * + * Returns: true if @field should be skipped when it is not writable. + */ +bool arm_field_skip_writeback_if_not_writable(const ARM64SysRegField *fiel= d); + /** * kvm_arm_steal_time_finalize: * @cpu: ARMCPU for which to finalize kvm-steal-time --=20 2.52.0 From nobody Sat Jul 25 15:25:39 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1784238065; cv=pass; d=zohomail.com; s=zohoarc; b=LRoZbGoazlkOMWevK24AA7lAzaLn0kgZeYAL1lKdU0X9BAxSfIky4JS/t3nVqcWVGhtyJq5TNK+OdAzPJ7LeMEdOzaI2wTVKHp5ayTywBfI7f9VDK7KVGxtsqAbr9qGEGPNOn6odAi9TRXsV/cPlid45PcmPi+OUWmcI+l4GaSM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784238065; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BkGJKeBPe77hOHQTMgqHf+HajHaW6zy+KttHmwZLNcg=; b=bCl7i++rRJ85CiAk6IrI1064T8MMhpNYyqTSrPhUVy8+BJIFFRudCak5BYgqk6otgLljL6+5RNkU8J6cZW+sHfBDC/CL+LwZRI9Y+ObY/GeRTk7S8MJNTegOLyMmiNyaHS9v7GgIr+3VN7tKa4M75rLIG6TQfhnHA/hWerN94Rw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784238065386267.8069877196273; Thu, 16 Jul 2026 14:41:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wkToP-0001sd-84; Thu, 16 Jul 2026 17:40:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToL-0001m4-EM; Thu, 16 Jul 2026 17:40:05 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wkToD-0005sF-Sd; Thu, 16 Jul 2026 17:40:05 -0400 Received: from pps.filterd (m0127843.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJrUwF1796534; Thu, 16 Jul 2026 14:39:44 -0700 Received: from bl0pr03cu003.outbound.protection.outlook.com (mail-eastusazon11022136.outbound.protection.outlook.com [52.101.53.136]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fejrfb79p-3 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 14:39:43 -0700 (PDT) Received: from SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) by BN0PR02MB8255.namprd02.prod.outlook.com (2603:10b6:408:156::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Thu, 16 Jul 2026 21:39:42 +0000 Received: from SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4]) by SA2PR02MB7564.namprd02.prod.outlook.com ([fe80::1ea5:acb6:ebe1:e1c4%5]) with mapi id 15.21.0223.011; Thu, 16 Jul 2026 21:39:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=BkGJKeBPe77hOHQTMgqHf+HajHaW6zy+KttHmwZLN cg=; b=sSl99AQBDw9i0QAJdAONMdFlSdwuSnQex/9k85P8a8fFcZihi3FbMnRkw LQ8gtdoy0Aj1+WFHiDhfqrNNZJ8Wz1IAuUiIzSkEJG/xeJlUtyqZHEvfdOQIQwT8 M8OhAwIu+c+XzZ3GTCJUtVVaweXkEPNfnJRqGbn5f9zCVZFpBcX/LWv++Fuu+726 4MDdPLR6Rm1rw6NWGAfl5C6PLNEoERAp9kbnNCPDREbtdCVf7XMwhKzIIWXAAfxe wX4YkBq1vZtBueCsOEroRdg1og7cQqvvVFaikSdX3+/fOImG49ipHsfkuVORpT7Y lEUMQjvRmkv0MohNwMt/cTZdKEqUg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kwoSBkkZDXIXloN0nMXeRysyw2G3lj6RzZpvkIO3lu+rR+EzwUfvP+sU7nUnb4Dzk443Jv2d+xBWUUrlGzWsmnuDQOCwsmYeLRIT6Bnfie1TfBlCYesPxcdbbZ2PxjT2Y+qRedA/+PmopDG6HWOohDrBzGv5o2JY2+460OHwEbU8rMDo+5r62BxY6qb1WZd5KHEFAGjAF54OWRLElvQyTn87kdO84rvNCXXGK3Wh/jBNLnz7YqryqQYp6/nDk7apwlhzWm7xw8F9sAfBoVzXN0WRxKCNIReBttEUDRbUsYV1dZ9kx0N1a+PyP5/b+q/oRXUOCNCMceurj9b3bsjd5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BkGJKeBPe77hOHQTMgqHf+HajHaW6zy+KttHmwZLNcg=; b=FKZJi8OOMZ7VzcRW1r8m/iUXK4gPrOzkZuJ9KY3tauR0dRsTbjlLNaHxmLgP3r4thxCfXmrhuhWad7JCOepRlvhbawLMSYrQCNJEnx3jF5I/cWq41V7E33QU/9GaXprft01JXWeObJHGG8f43FT5tJJLbaCmM6MchjeCBgQCCStyWEXxj7TXSfXcYZAxoJB1qYEkOKoEDaCSJBH2B2C1nMrSVbrfMizwntvGQX03IwVOEsepAOFlBGLLwF49JFzxQoyVd7TS/Qb6/LaqfHe9RisoqFxM+IBEWEypOJkqeDTT4P42IluuAOFPqttk9MvqUgOsdUX/nRKy8sDtvvK0vw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BkGJKeBPe77hOHQTMgqHf+HajHaW6zy+KttHmwZLNcg=; b=HymHhXfzFFZNVjKeKwAg3c/RuyIudD6olRn8WjDwN4VTXcIy1x39RRE+pVR0w2wpbei/uv7sWaf1BQ6SUPTan+tgLUYQX75NsE1+h+tXDWRwJaCMxn6eTT0oMrKpz07f4ywoH+9/iSsdGnzjNEGZDgTE5VZnRvhDrCsQjg+/LffUIfKwE5dnQGrs27Ocm/TxYcTJF9xMiRXkKEMG8ytKVIBENKrCJkl7LeN6NZi/D2eW8iy8xq/F7Kh2TRYB/h2/PUeXEva0EjuhdEnHXAvs9Olcbt/djwrRID/aYnnJWk49YRzzQw+a4ExDb1xSPUfKHY7GczO4/QSqsnVhR+W6dA== From: Khushit Shah To: qemu-devel@nongnu.org, qemu-arm@nongnu.org, kvmarm@lists.linux.dev, eric.auger@redhat.com Cc: cohuck@redhat.com, peter.maydell@linaro.org, richard.henderson@linaro.org, maz@kernel.org, oliver.upton@linux.dev, berrange@redhat.com, abologna@redhat.com, jdenemar@redhat.com, gshan@redhat.com, skolothumtho@nvidia.com, sebott@redhat.com, armbru@redhat.com, philmd@linaro.org, yangjinqian1@huawei.com, shaju.abraham@nutanix.com, mark.caveayland@nutanix.com, khushit.shah@nutanix.com, prerna.saxena@nutanix.com Subject: [RFC PATCH v3 19/19] target/arm/kvm: fix host model writeback when kernel supports EL2 Date: Thu, 16 Jul 2026 21:38:58 +0000 Message-ID: <20260716213858.609699-20-khushit.shah@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260716213858.609699-1-khushit.shah@nutanix.com> References: <20260716213858.609699-1-khushit.shah@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR17CA0071.namprd17.prod.outlook.com (2603:10b6:510:325::28) To SA2PR02MB7564.namprd02.prod.outlook.com (2603:10b6:806:146::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR02MB7564:EE_|BN0PR02MB8255:EE_ X-MS-Office365-Filtering-Correlation-Id: 4da8b3f5-9c92-47c5-ed58-08dee382bed3 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|376014|1800799024|366016|23010399003|3023799007|56012099006|6133799003|22082099003|18002099003|10067099003; X-Microsoft-Antispam-Message-Info: +iV93I7HpI2BwMMvB8FPc48MTQujgm2z3Caou1G1IksKBQBiCNzZxXI2PPZjUGoSVTta276TecP3h5P4brN1jqgsk775d1YLTvm5NFYtWDawvNeOrMi4CQDmI3VnoF0uI7+KdHNfoZMvSj3Wv9+vo/NFnaoVYEIUH4pnDXsTacqPVj24obyY/Q/t19K+KGPtLgTDjRQ4JBQzpUCKIfIBPmbuso3k1Dz03BAVU5GTxpDZtyfG9gjeEau6qwS8q634mTNgn8qwXluyb/cXLw6kiR2eLfz2jqeKJddpgyspO/YWcs0SmGK5tuucEE9X0l/3mVbet6TPh7ag7YrKbFWYq/KxlApO3Qe7OhMMP3f7PTUIUpEwJAFceDHzzuqFDZnbgnfqsx7RVVOvr9QCRTbmy5JcA9HVlK3GxPHQWdEKHQ1tReMjZOm2ePRwvT72mwP+QtfTbfkqzW5v+4SdlRq///ft2xFh5dUB/7r1Qe/2OCbnnIio3yg6fARCI/Zba7DkTQAkprqHZSXqhNHkuLkJKzbiQOWuOGfS1gtIp8L7WjMWtcUSZW7etEsRTl8307pJej+x+2MUGf3+N0mFne3INq5WfpbDz/TAsDMKzfSDSnGE2hBaMOoRULQpCKaHgeGyI5mHjTIv/3j829BA+SYILRnOzAs9PVnL27cgIw3EzlI= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR02MB7564.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(376014)(1800799024)(366016)(23010399003)(3023799007)(56012099006)(6133799003)(22082099003)(18002099003)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?njGcGu+4ECz3FxtOMc2GQoEAjYtxFTeib5PHHXlvqtdVN3Fn8DUUJN1CaG69?= =?us-ascii?Q?uPrEwCycmB6XyE8GSQnbRYva+PFwmFWD29cJtyj2vNXtuJxwd7n/Tnn1Pwrb?= =?us-ascii?Q?elU/nhy0F36d2wF/JpW8T5hJJ0yGWIgTiiXyweRfh6ts09QRxuA0rNoCDqOO?= =?us-ascii?Q?Rl0K/paodOeSG6r2VcXXRqyvWtTDGtg8uXgDGq3gmhQ3krZhFuNawPM1ITao?= =?us-ascii?Q?U47TKyT55LZGsFQ41GZwN4QGJO7Dnq+LOTGiF7xcuuR7MU69CF5GKXcVDFm/?= =?us-ascii?Q?oPmjNYtj4BAYUpqpO7B+bTjfvpxzmAGjqp3roEWcV1/xuQyHLQYj4WIeFIZs?= =?us-ascii?Q?JkggId4nm4OhjE20V+YrV+rDxZTO4RK/dU37b/0PuhSDy9058tkX6lzT/mSJ?= =?us-ascii?Q?t5TAu4FHWnzvRHYDWu3LnVLjBMfHZU8dz704GE31Xu3bvyp5fl9mCJ3dQZv9?= =?us-ascii?Q?JYN2/1gce4TBwu/D1cv6vH+8DhT0PGFgqkwxrEvGIWGVrmmldlPAz6ls3kmy?= =?us-ascii?Q?Jbj9Gfai6ykwuTQF9r6bdz4cPqL5lYBCFnLhIK3EmLRzFsh3z4KUskAWYVEE?= =?us-ascii?Q?vT0LtzpR9CLHEjyvDcD1kpphESVALKsB20jyuMf8HxNuMuvrpSXlV0s8Tfle?= =?us-ascii?Q?rhWJgf6WqzMNHL6BshdjU8tEwsf2LKI5qo8/J5DXxxBt/9pqH+pisspMaRCy?= =?us-ascii?Q?zBw3zgPA0y9CQLDKyB+9Nd+ztNOhTrm15T7A0D/dJ8u4vrFn+Cni+w6/Dp6X?= =?us-ascii?Q?o0oB4IeOY8jkMpW4roJVnHyZiH5yv54CbQxudxWQdUOGvk8pPTC6AtWIkJvj?= =?us-ascii?Q?DkfcsV4pQEE+84Ys8OpOB++JIjX0yEf6+8tPtadk0KUmc1RXArhUhT+Cfvwl?= =?us-ascii?Q?xYZQiRmYepdBYJ2lEgE2+7j5xT84m9sOeIabApQQH99Bj9CL7neXCC9ZwUr2?= =?us-ascii?Q?n8FEe3650njM62sPi5wKX1OdNGO7IY7kzbkINJ4vefuOz81ZUACyw6IGC/9t?= =?us-ascii?Q?zJlilS76/xTluZ47GZBQ5x/C0yHsI/YhIYf7j5y40f4obmpLxzL+tJrNgYjJ?= =?us-ascii?Q?0WSX8OgeOajN1LSC1FOA3HcHy3dCCCSk33B7a8laoIaxQ5+qWVFOgsZmiFtL?= =?us-ascii?Q?7rHb+QJ2Uy1tBcHtb8UvO2hVFFpwoq/xb5GcSrVQWwCuqpqFWcYgVjx775xK?= =?us-ascii?Q?giPo+D1bRySkK/tSp7FDwCNu24b5rRIR7ignlHqr2YscjTlyx3nharMJfz6D?= =?us-ascii?Q?QzgtMcNWMF7PyVgKnq6bBgz7pxvBe6qknSAUjVW+XzAUrtxw4wlVSXTKm3Jh?= =?us-ascii?Q?fvoawbol1swNeWNFxaU9MWPwaYV59mDsfLqrgJLoTHZedx+mbvTCfPeU63aU?= =?us-ascii?Q?gqZnNn/zxy+ZeVQvZE6CRSRHKcamlTpNP7jPJ7UE9s5CTCoM+snlTuirIOli?= =?us-ascii?Q?RtoykNucjpXSB4eoSSuCIcBsSEvNO1/zg6ZTpzBsJA6Pf6Svz54NSaTQBDMQ?= =?us-ascii?Q?FKYGvzhnhu/YulfnUWNdFfcX8oIzPJL6uLB618c3VuSmpuVMRx7OB3NBlIa0?= =?us-ascii?Q?YQr/BYEbNCfuPsuWNVzetzH4iUbuOzKBiCdug9vBEnRfahAGOxqhm2W4zdf1?= =?us-ascii?Q?L2GUmqEaDE8dkiRyFYbypuIEBuyBHVDK9+fMDfk4OGuBOb1OuB0XrblUOHHY?= =?us-ascii?Q?QndiKiXRlN/GQTqlNNUahye7Ce3vCYY7K1Sbm3j5pb40MOlyUI3UiXUvmGZw?= =?us-ascii?Q?OLzlVwuRG6I957o0UKBxvAApuszwKt8=3D?= X-Exchange-RoutingPolicyChecked: TLjRXztwETmUM1p4VReAJaFz4rY4h0F7qCLD16yJPYV4wg7pp1oPqbU2SMbl3NpUNl2t8sdaANzU0L4LoxMG9P1TeMbrXnXibaMWKeaKT4yMy7GizDIhejqEpOBOiqERyF//IKxCeKYq5OIi7cIThUMq0uI6YAzAJ3NGWT/jEyEhGgZGjb2Icjt2BYx2Bnv+QJFzJQnK5/oWriDgvjeiC6fdOmFORu6KGe9+tyWL0Qvo9EJt5rCF74+OSZgQj2pjpUWlM1yf2eGHqLeVEjHMshrTCoIptMgCthclawqA/GkIpxuWASKAIiY2esllCtjOrU8gl45zRZxkuq0RvslHvw== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4da8b3f5-9c92-47c5-ed58-08dee382bed3 X-MS-Exchange-CrossTenant-AuthSource: SA2PR02MB7564.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2026 21:39:42.1453 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0LikXo7npPOspxFqI0GqptsYuXQs5YK6sM7rxUxr773bGSQ3R8x3vQL1aBHG/OxXIbLGYu/BumrdLnwipIYcmtbC/jKBX/cfHOd2p99GYnQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR02MB8255 X-Proofpoint-GUID: O3Yf3ZnPPrwJeepVM7Uq8VumKf7NrNWs X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX306fMzUMXYLE uHWG5kavGMPjjDwXvlgQ8oplsgULNrTa4Za4fgDHO0mX4yHfaBeeqsIxyiOtRaeoekNHSFnhRgE wwEY5V3dtkVhGijPyrIkdJenUHXqUa1nReWMd+yme3TJcHC+rDt8KzZM6DmsB9tEm+XpXHThOCf enc7qr/5EoZqwkZp/2Fi/BjEDC6DP0OehZnTIcMENuw6QAFvKvTtMrpNNMvjXVkw6Y0UfxkMxKS G6yBgbRfBQ5IzB7/m4MrVxpny6CcAaOCqy/nWZCzOvhUVHwJYa/ZzjeMp3ozfmE1rw2plPCMRxJ QKEvyM+HqohAZCLNMcnzOq5GkUiMytTJ/EtvyoYWyG2Sr51kzYyrcuVIBNZuheC2mEzHyWeiBLv wJTlunU8XzGRK1+7uklVBPxN89leUF2Tuw/g1ECBlQ2EOB5c4MugnaE9d/UfiAyhfmoHw2akPfu r6PzCPJ3290vGzQ63gg== X-Authority-Analysis: v=2.4 cv=d4HFDxjE c=1 sm=1 tr=0 ts=6a594f9f cx=c_pps a=wT4O3adra3cfqKKwvhZ7sQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=dEe9Ve2bX-KnNSUMM2s9:22 a=64Cc0HZtAAAA:8 a=SkqPq7xGtlfVTkEtxm0A:9 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIyMCBTYWx0ZWRfX3nu+vA1jc2gt gOFB0VhO0tBBb3zUOi0WYZEeQ+U5dxO1v3tKLlXZ/jmVSXFPsN4PpBPzJQY+VaTivZM/WYmQWpC LbozqDmsMOR0/By7o0DaJrIqTRsjB3c= X-Proofpoint-ORIG-GUID: O3Yf3ZnPPrwJeepVM7Uq8VumKf7NrNWs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=148.163.155.12; envelope-from=khushit.shah@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1784238066962158500 Content-Type: text/plain; charset="utf-8" kvm_arm_get_host_cpu_features() probes the host by spinning up a scratch vCPU and reading its ID registers. When the host kernel advertises nested virtualization, the scratch is created with KVM_ARM_VCPU_HAS_EL2, which makes the kernel run limit_nv_id_reg() on that vCPU and force several fields (e.g. ID_AA64MMFR4_EL1.NV_frac, parts of ID_AA64DFR0_EL1) to values that match KVM's nested-virt capabilities rather than the raw host. If the actual vCPU is later created without EL2 (e.g. -machine virt,virtualization=3Doff), the EL2-on values cached above no longer match what the kernel exposes for the real vCPU and ID-register writeback fails. Fix this by caching two host views, one probed with EL2 and one without, and selecting the appropriate view at every use site. For -cpu host (and -cpu max) without EL2 we additionally rebase cpu->isar.idregs[] from the EL2-on view it was initialized with onto the EL2-off view via kvm_arm_rebase_host_idregs(), so each field that the user has not explicitly touched picks up the value that the real vCPU will actually see. Corner case: the rebase compares the post-init field value against the EL2-on host value to decide whether the user set it. If the user directly or indirectly set field X=3Di and the EL2-on view also reports feat_X=3Di but the EL2-off view reports feat_X=3Dj, the rebase cannot distinguish "user asked for i" from "inherited i from host" and will overwrite with j. This only affects -cpu host/max without EL2 on NV enabled kernels where the user-requested value happens to match the EL2-on host view, so we avoid the complexity of user set values tracking and accept the loss here. Named models are not affected with the issue as they already start with default-zeroed view. Signed-off-by: Khushit Shah --- target/arm/arm-cpu-models.c | 14 +++++- target/arm/arm-qmp-cmds.c | 2 +- target/arm/cpu64.c | 2 +- target/arm/kvm-stub.c | 4 +- target/arm/kvm.c | 93 ++++++++++++++++++++++++++++++------- target/arm/kvm_arm.h | 5 +- 6 files changed, 94 insertions(+), 26 deletions(-) diff --git a/target/arm/arm-cpu-models.c b/target/arm/arm-cpu-models.c index 44e7d3cfa2..a41f1f1169 100644 --- a/target/arm/arm-cpu-models.c +++ b/target/arm/arm-cpu-models.c @@ -459,7 +459,12 @@ static void arm_named_cpu_initfn(Object *obj) return; } =20 - kvm_arm_set_cpu_features_from_host(cpu); + /* + * Start with the host view without EL2. + * If nested virt is needed user must provide values for all the + * blockers. + */ + kvm_arm_set_cpu_features_from_host(cpu, false); if (!arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) { return; } @@ -481,10 +486,15 @@ void arm_cpu_class_check_missing_features(ARMCPUClass= *acc, strList **blockers) Object *obj =3D object_new_with_class(OBJECT_CLASS(acc)); ARMCPU *cpu =3D ARM_CPU(obj); =20 + const ARMISARegisters *host_isar; + if (!kvm_enabled() || !arm_find_model(acc->info->name)) { goto out; } =20 + /* Use the host view without EL2 to calculate blockers. */ + host_isar =3D kvm_arm_get_host_isar(false); + if (cpu_isar_feature(aa64_sve, cpu)) { arm_cpu_sve_finalize(cpu, &err); if (err) { @@ -505,7 +515,7 @@ void arm_cpu_class_check_missing_features(ARMCPUClass *= acc, strList **blockers) } } =20 - aarch64_idregs_get_blockers(cpu, kvm_arm_get_host_isar(), blockers); + aarch64_idregs_get_blockers(cpu, host_isar, blockers); out: object_unref(obj); } diff --git a/target/arm/arm-qmp-cmds.c b/target/arm/arm-qmp-cmds.c index 6f11681c87..8dcff6c22c 100644 --- a/target/arm/arm-qmp-cmds.c +++ b/target/arm/arm-qmp-cmds.c @@ -102,7 +102,7 @@ CpuPropertyInfoList *qmp_query_cpu_props_info(Error **e= rrp) return NULL; } =20 - host_isar =3D kvm_arm_get_host_isar(); + host_isar =3D kvm_arm_get_host_isar(false); =20 /* * Spin up a scratch "host" vCPU object and walk its QOM properties. diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index f41bcf2e81..c7556bfd52 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -1050,7 +1050,7 @@ static void aarch64_host_initfn(Object *obj) =20 #if defined(CONFIG_KVM) kvm_arm_set_cpreg_mig_tolerances(cpu); - kvm_arm_set_cpu_features_from_host(cpu); + kvm_arm_set_cpu_features_from_host(cpu, true); aarch64_add_sve_properties(obj); =20 #ifndef CONFIG_USER_ONLY diff --git a/target/arm/kvm-stub.c b/target/arm/kvm-stub.c index eb8fdda236..1a713cb904 100644 --- a/target/arm/kvm-stub.c +++ b/target/arm/kvm-stub.c @@ -45,7 +45,7 @@ bool kvm_arm_el2_supported(void) /* * These functions should never actually be called without KVM support. */ -void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu) +void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu, bool with_el2) { g_assert_not_reached(); } @@ -120,7 +120,7 @@ char *kvm_print_register_name(uint64_t regidx) g_assert_not_reached(); } =20 -const ARMISARegisters *kvm_arm_get_host_isar(void) +const ARMISARegisters *kvm_arm_get_host_isar(bool with_el2) { return NULL; } diff --git a/target/arm/kvm.c b/target/arm/kvm.c index b909a11dfd..f2635980eb 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -67,7 +67,7 @@ typedef struct ARMHostCPUFeatures { const char *dtb_compatible; } ARMHostCPUFeatures; =20 -static ARMHostCPUFeatures arm_host_cpu_features; +static ARMHostCPUFeatures arm_host_cpu_features[2]; =20 /** * kvm_arm_vcpu_init: @@ -363,8 +363,7 @@ static int get_host_cpu_idregs(int fd, ARMHostCPUFeatur= es *ahcf) } =20 =20 -static void -kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf) +static void kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf, bool w= ith_el2) { /* Identify the feature bits corresponding to the host CPU, and * fill out the ARMHostCPUClass fields accordingly. To do this @@ -404,7 +403,7 @@ kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf) * Ask for EL2 if supported. */ el2_supported =3D kvm_arm_el2_supported(); - if (el2_supported) { + if (el2_supported && with_el2) { init.features[0] |=3D 1 << KVM_ARM_VCPU_HAS_EL2; } =20 @@ -553,7 +552,7 @@ kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf) err |=3D get_host_cpu_reg(fd, ahcf, ID_AA64ZFR0_EL1_IDX); =20 /* Read the set of supported vector lengths. */ - arm_host_cpu_features.sve_vq_supported =3D kvm_arm_sve_get_vls= (fd); + ahcf->sve_vq_supported =3D kvm_arm_sve_get_vls(fd); } } =20 @@ -604,7 +603,7 @@ static int kvm_arm_get_writable_id_regs(uint64_t *idreg= map) return 0; } =20 -void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu) +void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu, bool with_el2) { CPUARMState *env =3D &cpu->env; uint64_t *writable_map; @@ -629,11 +628,11 @@ void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu) } g_free(writable_map); =20 - if (!arm_host_cpu_features.dtb_compatible) { - kvm_arm_get_host_cpu_features(&arm_host_cpu_features); + if (!arm_host_cpu_features[with_el2].dtb_compatible) { + kvm_arm_get_host_cpu_features(&arm_host_cpu_features[with_el2], wi= th_el2); } =20 - cpu->kvm_target =3D arm_host_cpu_features.target; + cpu->kvm_target =3D arm_host_cpu_features[with_el2].target; =20 if (cpu->kvm_target =3D=3D QEMU_KVM_ARM_TARGET_NONE) { /* @@ -644,18 +643,18 @@ void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu) return; } =20 - cpu->dtb_compatible =3D arm_host_cpu_features.dtb_compatible; - cpu->isar =3D arm_host_cpu_features.isar; - cpu->sve_vq.supported =3D arm_host_cpu_features.sve_vq_supported; - env->features =3D arm_host_cpu_features.features; + cpu->dtb_compatible =3D arm_host_cpu_features[with_el2].dtb_compatible; + cpu->isar =3D arm_host_cpu_features[with_el2].isar; + cpu->sve_vq.supported =3D arm_host_cpu_features[with_el2].sve_vq_suppo= rted; + env->features =3D arm_host_cpu_features[with_el2].features; } =20 -const ARMISARegisters *kvm_arm_get_host_isar(void) +const ARMISARegisters *kvm_arm_get_host_isar(bool with_el2) { - if (!arm_host_cpu_features.dtb_compatible) { - kvm_arm_get_host_cpu_features(&arm_host_cpu_features); + if (!arm_host_cpu_features[with_el2].dtb_compatible) { + kvm_arm_get_host_cpu_features(&arm_host_cpu_features[with_el2], wi= th_el2); } - return &arm_host_cpu_features.isar; + return &arm_host_cpu_features[with_el2].isar; } =20 static bool kvm_no_adjvtime_get(Object *obj, Error **errp) @@ -1438,6 +1437,7 @@ static int kvm_arm_write_idregs_to_cpreg_list(ARMCPU = *cpu) uint64_t writable_mask =3D sysregdesc->writable_mask; uint64_t desired =3D cpu->isar.idregs[i]; uint64_t previous, updated; + bool has_el2 =3D cpu->has_el2; uint64_t *cpreg; =20 cpreg =3D kvm_arm_find_cpreg_ptr(cpu, idregs_sysreg_to_kvm_reg(sys= reg)); @@ -1447,7 +1447,7 @@ static int kvm_arm_write_idregs_to_cpreg_list(ARMCPU = *cpu) * snapshotted at probe time as the reference to check the vCPU ID * regs have the same value. */ - previous =3D cpreg ? *cpreg : arm_host_cpu_features.isar.idregs[i]; + previous =3D cpreg ? *cpreg : kvm_arm_get_host_isar(has_el2)->idre= gs[i]; =20 if (previous =3D=3D desired) { continue; @@ -2332,6 +2332,50 @@ bool kvm_arm_mte_supported(void) return kvm_check_extension(kvm_state, KVM_CAP_ARM_MTE); } =20 +/* + * Rebase cpu->isar.idregs[] on top of new_isar given the initial_isar. + * + * For fields in cpu->isar.idregs[] that are same as initial_isar, update + * the field with the new_isar values. + */ +static void kvm_arm_rebase_host_idregs(ARMCPU *cpu, + const ARMISARegisters *new_isar, + const ARMISARegisters *initial_isar) +{ + for (int i =3D 0; i < NUM_ID_IDX; i++) { + ARM64SysReg *sysregdesc =3D &arm64_id_regs[i]; + + for (int j =3D 0; j < sysregdesc->fields_count; j++) { + const ARM64SysRegField *field =3D &sysregdesc->fields[j]; + uint64_t idreg_val =3D extract64(cpu->isar.idregs[i], + field->shift, field->length); + uint64_t initial_val =3D extract64(initial_isar->idregs[i], + field->shift, field->length); + uint64_t new_val =3D extract64(new_isar->idregs[i], + field->shift, field->length); + + if (idreg_val =3D=3D initial_val && new_val !=3D idreg_val) { + /* + * The cpu->isar.idregs[]'s field val is same as + * initial_isar.idregs[]'s field val, which was used to + * initialise it. Hence, override it with the new_isar[] + * value. User might have explicitly asked for some value + * which matched the host value without EL2 in this case, + * that value is lost. As rebase is needed in very specific + * case, we avoid that complication. + */ + cpu->isar.idregs[i] =3D deposit64(cpu->isar.idregs[i], + field->shift, field->lengt= h, + new_val); + + warn_report("KVM ID %s.%s value changed from 0x%016" + PRIx64 " to 0x%016" PRIx64, + sysregdesc->name, field->name, idreg_val, new= _val); + } + } + } +} + QEMU_BUILD_BUG_ON(KVM_ARM64_SVE_VQ_MIN !=3D 1); =20 static int kvm_arm_sve_set_vls(ARMCPU *cpu) @@ -2450,11 +2494,24 @@ int kvm_arch_init_vcpu(CPUState *cs) if (ret) { return ret; } + + /* For -cpu host/max, rebase the idregs[] on top of cpregs[] */ + if ((object_dynamic_cast(OBJECT(cpu), TYPE_ARM_HOST_CPU) + || object_dynamic_cast(OBJECT(cpu), TYPE_ARM_MAX_CPU)) + && !cpu->has_el2 + && kvm_arm_el2_supported()) { + /* scratch vCPU is created with EL2-enabled for -cpu host */ + kvm_arm_rebase_host_idregs(cpu, + kvm_arm_get_host_isar(false), + kvm_arm_get_host_isar(true)); + } + /* overwrite ID reg fields with their updated property values */ ret =3D kvm_arm_write_idregs_to_cpreg_list(cpu); if (ret) { return ret; } + ret =3D write_list_to_kvmstate(cpu, KVM_PUT_FULL_STATE); if (!ret) { return -1; diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h index 6409bec735..847efb1c8d 100644 --- a/target/arm/kvm_arm.h +++ b/target/arm/kvm_arm.h @@ -129,11 +129,12 @@ void kvm_arm_destroy_scratch_host_vcpu(int *fdarray); /** * kvm_arm_set_cpu_features_from_host: * @cpu: ARMCPU to set the features for + * @with_el2: probe the host with the EL2-enabled scratch vCPU view * * Set up the ARMCPU struct fields up to match the information probed * from the host CPU. */ -void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu); +void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu, bool with_el2); =20 /** * kvm_arm_add_vcpu_properties: @@ -276,7 +277,7 @@ void kvm_arm_enable_mte(Object *cpuobj, Error **errp); =20 void arm_cpu_kvm_set_irq(void *arm_cpu, int irq, int level); =20 -const ARMISARegisters *kvm_arm_get_host_isar(void); +const ARMISARegisters *kvm_arm_get_host_isar(bool with_el2); =20 void arm_gic_cap_kvm_probe(GICCapability *v2, GICCapability *v3); =20 --=20 2.52.0