From nobody Mon Aug 24 02:11:35 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.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=1783415535; cv=pass; d=zohomail.com; s=zohoarc; b=DdSpPDa1AsMP9wmHQMfdJnXjGDhzNXZmPdwbQo/wZ9eRB86m2ys+2tiU2ji6nRClVqEFfaHRhBhcihMyxodqDPwOebOjZRK3Rg8aAFq758+1noHo8jm0TITB6tYvVGdSqs7SWQb05XWJ0Fr0ZZVO8wtjqRQ4IPdFSkFXaOg0ssw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1783415535; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=C755nf0l9fT+YTH1ElL35KmrS5x2FyiqQ6b6L4iy9sk=; b=HKXzEc86BGfqOMBORFh7Ffh3kS+N/b7XYIBANefuQqA9YRWU8JOR8r5vGZnSjT1d52Ff0XMhFm95kOG0SUdrEEeM3ksNCsdZo2CjYqi85MlQx5ZnQ5KWuX217GI06AIHiukKCJKmm2mgQ4N3qNq+DF6Jl14Idogd71y42HQYLaw= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1783415535855571.9479241544683; Tue, 7 Jul 2026 02:12:15 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 8BDE141CF1; Tue, 7 Jul 2026 05:12:13 -0400 (EDT) Received: from [172.19.199.7] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 1F14943E19; Tue, 7 Jul 2026 05:05:10 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 8C1F6417DE; Tue, 7 Jul 2026 05:04:01 -0400 (EDT) Received: from mx0a-002c1b01.pphosted.com (mx0a-002c1b01.pphosted.com [148.163.151.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 63E5C3F951 for ; Tue, 7 Jul 2026 05:01:19 -0400 (EDT) Received: from pps.filterd (m0127838.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6678HObO1903846 for ; Tue, 7 Jul 2026 02:01:18 -0700 Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11020074.outbound.protection.outlook.com [52.101.56.74]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 4f71qvdu77-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Tue, 07 Jul 2026 02:01:17 -0700 (PDT) Received: from DS0PR02MB10202.namprd02.prod.outlook.com (2603:10b6:8:1aa::10) by MN2PR02MB6622.namprd02.prod.outlook.com (2603:10b6:208:1df::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.181.14; Tue, 7 Jul 2026 09:01:15 +0000 Received: from DS0PR02MB10202.namprd02.prod.outlook.com ([fe80::6312:3f4:fe13:41d5]) by DS0PR02MB10202.namprd02.prod.outlook.com ([fe80::6312:3f4:fe13:41d5%4]) with mapi id 15.21.0181.008; Tue, 7 Jul 2026 09:01:15 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 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=C755nf0l9fT+YTH1ElL35KmrS5x2FyiqQ6b6L4iy9 sk=; b=1dIh3GuwUZp/17UaXnCeSRXCTT9hZa/mNp3kfGK+nrq+uRwuDy434CqOp UnPlriI/Qgr8h02EFPIL2HbNwKe3IYrcAs+DNvdQfcmSRG4ObKowg+4aJem4uAMz ygl3z5S85xnlU5rFjcxd6vzdDAMzO65kHucD+zsl29yQOPhQe3drd8mysapP/219 2a1AuYU1aHVittbpfV+LrzdxFyQS1ksx4vDaBMdIHwMPhsI6ZdWvlmLZznfV3tRd u0LWRjjPw9xeyGjezo7Mp6IXpoVCPZxxxukNOKeLP5N7psSsNFHM861ySAgJsB9v fbcqEQZ0ltb/+nu6myzKpj57+eu1g== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XMIYWb+xy2/0rW1WCDuBeoZhINSEvoyzTAZgFoZMU/OWxRqUpXMsqY51zZsRTZ5QxpkyV+VuTIih39kMtz5Tyk1oHaBJAXZLYc2345GPjs7mqCyLVeN93cpGZITMFteSf/Mef2JPUhFpruDyrnwiDuru978Qj+3cM0e33RjaGY7GnTPmCH+sYoE+4voK/vvGfz33slgKbybokXi3iYIEN/J/1z0LSLeTF0QVVPPbRPNBizOtzMt5Y3zYTyBNnKQhvuXWAse90f99Yeh0Cpd32n/L3nZlCFiHjrddRUcf/LvWarStBsiZweqIqkqSEMUd16SPy2MabXdYW9TbZTXtfw== 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=C755nf0l9fT+YTH1ElL35KmrS5x2FyiqQ6b6L4iy9sk=; b=y53An3NbLpedYW2T/KU/MD/bj0I/EP28342SIdWUIiKcijqCK4DEgPjlEjCYxeLjvPnc2QCFCWGG4o8vsIn89Gc2WkMycLVSIyGDSpGUEij9vfIG9b8LX2fSqa3Pb54FEpixCxLcMzfp6J/iBc/qJTVgLOLkIKi1iyEN0n8sOrEca7qDJcKT40dHJdqziPPstB195wq47blDEkOr2q3JSz7w/Xb1EaqKMVVM0PVQp4XRKXns0WfGZ/JcHUe97/lbFhqZDn+aaes8bnqR0hM2rm3N8cEJqfAtGmL3IipzqJ0DruOBHz9OtrBlkU9zC3bf0vMJiKVGhcAKFHqunwGO0g== 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=C755nf0l9fT+YTH1ElL35KmrS5x2FyiqQ6b6L4iy9sk=; b=AlTngB/Yw+/vJKbBvgIRiLA/KywZJOtQEfhxqBDWvpIRHy1tpIErMrplwR6Cqu9GHDUlkQ5A61qSPpZtDVcApu12zt6MRleWvYwRmubOKbPcG5b6sUffK1knMotOeVxvMAd9O6uKvH3/L6QG/f/Ct3ZsyHgt4zjxJZcEaP8RqUAS5q4Ri4Z0Iuj/BsmJuaBDLKYSoafiBpePkay++4wFFZKHlLRC+tgdNSeBf4N2lNxCOzVxdY8gBr6QIon0mr8IEh01vTNGlqDGx3Iw6vmYJvQcbTVao8rqsB6V280mrQ1SieRdeAeYpwY90Oou0dDvArs2yr9E7Gcty8V7/iVq2A== From: sandesh.patel@nutanix.com To: devel@lists.libvirt.org Subject: [RFC PATCH v2 3/5] Cache and load ARM CPU property information Date: Tue, 7 Jul 2026 08:23:58 +0000 Message-ID: <20260707083129.1138945-4-sandesh.patel@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20260707083129.1138945-1-sandesh.patel@nutanix.com> References: <20260707083129.1138945-1-sandesh.patel@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CYXP220CA0005.NAMP220.PROD.OUTLOOK.COM (2603:10b6:930:ee::9) To DS0PR02MB10202.namprd02.prod.outlook.com (2603:10b6:8:1aa::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR02MB10202:EE_|MN2PR02MB6622:EE_ X-MS-Office365-Filtering-Correlation-Id: e42cafa2-132d-442b-fe37-08dedc064d0c x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|1800799024|366016|18002099003|22082099003|6133799003|56012099006; X-Microsoft-Antispam-Message-Info: DpouQSmqwxVLqzSDF85/DVO6nMvEUuzJi+qIwnjm+r9pCg4XCuxMWOh/nN9jeVz/g+FoZsRqJx5J84oWNMfHLmYV6C8v2XboDMC3GKzYPHc/FuMgGg69RvuBamHItPYgEyximKHDatsEnzXlSf7ADBO8S0lhhqX0WKpEBFNrS406430UjFYQ2rTfs+Db7vFXMCB5IxFVvb4BmkLN53mP5PocOxSnGpxdOcpBAU1oh81zOmW4OaSS2/wCgNbzrBBjeipKKlaIsUf8Drdt31olEPnSBSnTQTIPP7zEpUG341c20Xg2HkWIkqQ4SKdDhrmmVR0pBVVHuEesROkcwfmVEOb51mSf1qHUlHd3tmTc1exBZ4DNphqplCtw+5NXUpyyn6KH2Gh1ZC0ahuFBs2h4IgSmSMAOiev18+Qk/kFe3JGSnNuxoOt7l+5p2uETC7RPjFTZ1IQUN56B/KZossDRWhE+Yp1m0skbiXGsIt5/4YvkYpg/FEIvAEWd3/HszkScm4t72lOz6weJAKdqhhOqA80MAD94JX0Tu+V1Clh7YrlD8/kbCYlc2AbatjFu8K35lkZHyvvgHuUlWVXSnHjrHIAXy4WntL+zrLMJ9ow6p41R/TWuIN+ObaX3GqCGloOxVa6mea2yZ/c6zsRSX3OR84rGSvCpVFIVKUhJFGcfWmQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR02MB10202.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(1800799024)(366016)(18002099003)(22082099003)(6133799003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dzoIrUNNo17plqg1H4WVUNW0lntoBbr4IpaEkTWcj7V+tKy135QDj+tv9K5A?= =?us-ascii?Q?wc9zSMci0yi8c6wSQd/iq31Z3o8ETjhI0WoOhYy+kEa5F+eWwGHEv3OVjW+4?= =?us-ascii?Q?b+tQDkKc5mcT3XqkNxrzUjZM3dAJ73Z+27FetGkwuHN/rFi3DidZVr1m6USI?= =?us-ascii?Q?nx4emY6bsKjyxBxvpME5k/FDbvc+urKFUHHGUztoevpMWviRSMBvI3Wa0NKj?= =?us-ascii?Q?Yx2ozQB8NhRfRXjhEABzvWO5kTXQJl5F+V711Hul3xDR93Nj5lPI3rmGOwKS?= =?us-ascii?Q?bMXMKXKz9AySwNLkx47Gw+DiUxTUc+qFtDjWI70zUvtY7YiNZhBSRbCBkZbM?= =?us-ascii?Q?ULT8SUTwcSVlF8YYoTsupN06tLb++Pb7wPhn98Sr961JYtEGt/tROGGM+lZd?= =?us-ascii?Q?2ntrCJRsv623e9S/5S2inI1AtX7pS00Ke3e11HxSFKvk4MqfPH6ydfHwq6QT?= =?us-ascii?Q?dPymV9rw7SFvydxEV7l6pagQ3NSrs6b4jzoEhoRAA9gdhm+MgJlAx9PT5cnF?= =?us-ascii?Q?e40+Me5XOzMQXIqKPZqz9cZvYsaKt1y6FSvXSc5cbufhne9hLpkyYfdlgRwv?= =?us-ascii?Q?rpGMEIKf+WyBTkybZ5bzqrUZaJ394c6ob322gMq+H6cMI+mNYRff7o/K0bAf?= =?us-ascii?Q?S7pJZLNKUcKdJRYgzvQI+RKMNew3Ao6kiItAAN42/vVrrorVvPdl9axMkPeF?= =?us-ascii?Q?geO9TsvUWBhOd3JU+loXBlhRSO5TE9OW+f7VO35eBJuKZMYbrcSe/8WctCwQ?= =?us-ascii?Q?qcvcbaeWO7op1n/zDgc32jZTUqxgIByvFZIXQDItGBt05BlYBCrco872k7jH?= =?us-ascii?Q?TZVbcBNw9qwFtVw+/fCcrd7qd8iJPpPh68dTdYGoczTHA9J6ONX5QOY3K8gu?= =?us-ascii?Q?KabY1bji5MvUYh3NLbd+nqpX0IkU/Y3BTXdHhMHqmNF34bP8zEni8QOQuvic?= =?us-ascii?Q?W5TKqSHmXDJywn0nzCAzmwYK1A9NBbKLlOwIP407nDyaFGUsb0sWmm4Tyso5?= =?us-ascii?Q?EHKrbc7saIcsr+/ufsEAA2M3XakZqg4sHvMT8jKYRX22lzfrI4WlDiYFTLAO?= =?us-ascii?Q?R9NODx250Yfnsrl+jLxVlqAsl4fqRBpeNmHHReyu0QrJi2JpJSZe1kf3dLbP?= =?us-ascii?Q?rAsT9DJD+IjSOvZKCH23lkE8NY8p5bV9W+C8kxyiVBsVkYV2P356O6CTqOr4?= =?us-ascii?Q?eAMg38uG7RvaMaoRTbqUZv/I7901sR59u+pbRtXM2ucP85jj84TZjfEh+PQw?= =?us-ascii?Q?Vvw8b/jodUEnNVpovLsWSMRvUPmm01y2SJeS2jfmhu9TjKQNvP+QQ9Gv+jlx?= =?us-ascii?Q?3vmZCd9hjtLoc1hJ7humsNllkis4+szIhm+4GyyMaA1y5AeFDHDnCTxLw/Rh?= =?us-ascii?Q?0PnOZmBsyyNSu1liFTmFEA3hBInyWkMB538BCqfL+wDLemBZHEgsXOJIcyQg?= =?us-ascii?Q?xoqtv0TN0zFCMORzApzTAUyi176Ejfw3fOct9Nyk6iKtZUrFJ00+TFUd7dsU?= =?us-ascii?Q?1dWvrJCsVmd/jlm+/qBP93cbbrUCrq2wnrX0UT6El+Z1FDBUerBjFnZdT3s+?= =?us-ascii?Q?g45fWV56vznuth9fKsVJxXROCm/LTTLRf7yCYIPu3YJZ+YWvlk7KZ0JwX7i5?= =?us-ascii?Q?ISQfu6O0JUxDIS3sTDHDKuY6i/W/ETnwVhGFC4xRUH6wdEUz44SKiKnjEYP0?= =?us-ascii?Q?F86VKRduodZARoa8jE22DEKC+2KpAVdA+wyxzycVQa3LOpbIGfeLVaSQ/J/x?= =?us-ascii?Q?P5Qc9y+W9rhSlr5U577VQt6OGadLyJU=3D?= X-Exchange-RoutingPolicyChecked: h19tLe4Ja1zZRS7wshZSVD3W3hEEBdvTCa9l+cu79MDsRQLW8kD5AkaHZsx7EZmXLZMsSGqD75sZD5WqMFpwOjyt46fArgoASc7KvMB+WAzJHMetJ/MO8GzfCVxRU0sHSnT5nPIAyun3v0AM0py5n8UyZYCXu2hrqN7UR9ppRcaMPvVNgzpDjII7EJdd9jE6z886Fo6GBdJ3nc7MfakECMoSSWD5DYmgm6LSyx1uiU6p7i3oAhE3n8XuDyFzm5/5nrayvZw3PyA0wlIMg6fO2Vpmse2OezeDfarYYNymNIwANl8BI7L0wad4MT5w+CzUOIWwnzidy8e4OeDSjBOETg== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: e42cafa2-132d-442b-fe37-08dedc064d0c X-MS-Exchange-CrossTenant-AuthSource: DS0PR02MB10202.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2026 09:01:15.5727 (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: J89rJkNp4gyeJAIauFUANexPbLXcqKSQ0Y6LcHGzieGE83V51WrHo8710WJswkil0rLFK2/hZCmYNNMJsWb7IJ2chH3rvD9rndWiJxUnhbY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR02MB6622 X-Proofpoint-ORIG-GUID: 8b2_v0ea_76s23-ykGh2FOIGnCD8vuVS X-Authority-Analysis: v=2.4 cv=ANp8gx1L c=1 sm=1 tr=0 ts=6a4cc05d cx=c_pps a=Syn3MuHMyA8lBdxmL2NqkQ==: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=1L6crL_YRTbalZ11mEUO:22 a=64Cc0HZtAAAA:8 a=Y7fGXwsEvP5xTqx1X3kA:9 X-Proofpoint-GUID: 8b2_v0ea_76s23-ykGh2FOIGnCD8vuVS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA3MDA4NiBTYWx0ZWRfX9V5/0UswmjKV WvJwtNBRqumygXFLyefpIrF9sZYHXH2UdRDJWwJbS5QmddE+gKanZne6AFOSzFLmHLG0ruvAVBk 1I7JVxCqRyvCl4lx8jIlruWz5Xs1NScbsnYdXwEkyPpd4wmEkutsVsoEY+gEKrxhZZOOJzE1cqt 6CTGwIAqvOFyEk5ciadl6+TNwLhshT8Sq7BArhOb6rOG25LlAWGAAgz0Tb0mbt3FgsMjHn/JM4r VK1uzhVZjSA3x1ZewTecWPafAyVv2qaoaJejGvDlKKD2hoJALIHIEvBfzcj9FW+vIaDm9f2wENa MaM4H5dvYP4frnDKKxDq/tixinbZ6o4tV9WGwsV4NluNZ+79zvQ6Kzi0S0m+7rD7EfW+XlBD1TX QL8AGT4s4ynjzHPIAZwDWkpXZ65qTPCIQ5oJ04QzKW+EhuuiMNDLqC+9kWamSN0lSq9NRQ4PAGT 6G5RZ7BJcPYI0C3nXUA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA3MDA4NiBTYWx0ZWRfX1XkppB2us9tG vn2411daHTh4KHlPWaa0P3PV5b+hELAm7qvEt+ChJH7JL/ycfvWBdcZDcMz4dTPlIcfmsMuOO1L Cb8JjJ6CD3Ml+fE+QK4B6i1GfkcyiFQ= 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-07_02,2026-07-06_02,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Message-ID-Hash: SXIFPXWN37D2T6HVRRXSNCGXC6IS7K3V X-Message-ID-Hash: SXIFPXWN37D2T6HVRRXSNCGXC6IS7K3V X-MailFrom: sandesh.patel@nutanix.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: shaju.abraham@nutanix.com, khushit.shah@nutanix.com, Sandesh Patel X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1783415536651158500 Content-Type: text/plain; charset="utf-8" From: Sandesh Patel Persist the list of ARM CPU properties and their host-supported values that was probed from QEMU into the on-disk QEMU capabilities cache, so that subsequent libvirtd starts do not have to re-issue the QMP query. Signed-off-by: Sandesh Patel --- src/qemu/qemu_capabilities.c | 117 ++++++++++++++++++++++++++++++++++- 1 file changed, 116 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index d79941f6bd..d314956f46 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4531,6 +4531,79 @@ virQEMUCapsLoadMachines(virQEMUCapsAccel *caps, } =20 =20 +static int +virQEMUCapsLoadCPUProps(virQEMUCaps *qemuCaps, + xmlXPathContextPtr ctxt) +{ + g_autoptr(qemuMonitorCPUPropsInfoList) cpuProps =3D NULL; + g_autofree xmlNodePtr *nodes =3D NULL; + int nprops; + size_t i; + + VIR_XPATH_NODE_AUTORESTORE(ctxt); + + if ((nprops =3D virXPathNodeSet("/qemuCaps/cpuPropertyInfo/property", + ctxt, &nodes)) < 0) + return -1; + + if (nprops =3D=3D 0) + return 0; + + cpuProps =3D g_new0(qemuMonitorCPUPropsInfoList, 1); + cpuProps->nprops =3D nprops; + cpuProps->props =3D g_new0(qemuMonitorCPUPropsInfo, nprops); + + for (i =3D 0; i < (size_t) nprops; i++) { + qemuMonitorCPUPropsInfo *prop =3D cpuProps->props + i; + g_autofree char *type_str =3D NULL; + g_autofree xmlNodePtr *svsNodes =3D NULL; + int nsvs; + size_t j; + + if (!(prop->name =3D virXMLPropString(nodes[i], "name"))) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("missing property name in QEMU capabilities c= ache")); + return -1; + } + + if (!(type_str =3D virXMLPropString(nodes[i], "type"))) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("missing property type in QEMU capabilities c= ache for property '%1$s'"), + prop->name); + return -1; + } + if ((prop->type =3D qemuMonitorCPUPropertyTypeFromString(type_str)= ) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("unknown property type '%1$s' in QEMU capabil= ities cache for property '%2$s'"), + type_str, prop->name); + return -1; + } + + prop->composite =3D virXMLPropString(nodes[i], "composite"); + + ctxt->node =3D nodes[i]; + if ((nsvs =3D virXPathNodeSet("./supportedValue", ctxt, &svsNodes)= ) < 0) + return -1; + + if (nsvs =3D=3D 0) + continue; + + prop->supportedValues =3D g_new0(char *, nsvs + 1); + for (j =3D 0; j < (size_t) nsvs; j++) { + if (!(prop->supportedValues[j] =3D virXMLPropString(svsNodes[j= ], "value"))) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("missing 'value' attribute in QEMU capabi= lities cache for property '%1$s'"), + prop->name); + return -1; + } + } + } + + qemuCaps->kvm.cpuProps =3D g_steal_pointer(&cpuProps); + return 0; +} + + static int virQEMUCapsLoadAccel(virQEMUCaps *qemuCaps, xmlXPathContextPtr ctxt, @@ -5089,6 +5162,9 @@ virQEMUCapsLoadCache(virArch hostArch, virQEMUCapsInitHostCPUModel(qemuCaps, hostArch, VIR_DOMAIN_VIRT_HY= PERV); virQEMUCapsInitHostCPUModel(qemuCaps, hostArch, VIR_DOMAIN_VIRT_QEMU); =20 + if (virQEMUCapsLoadCPUProps(qemuCaps, ctxt) < 0) + return -1; + if (virXPathBoolean("boolean(./kvmSupportsNesting)", ctxt) > 0) qemuCaps->kvmSupportsNesting =3D true; =20 @@ -5182,6 +5258,45 @@ virQEMUCapsFormatHostCPUModelInfo(virQEMUCapsAccel *= caps, } =20 =20 +static void +virQEMUCapsFormatCPUProps(virQEMUCapsAccel *caps, virBuffer *buf) +{ + qemuMonitorCPUPropsInfoList *cpuProps =3D caps->cpuProps; + size_t i; + + if (!cpuProps) + return; + + virBufferAddLit(buf, "\n"); + virBufferAdjustIndent(buf, 2); + + for (i =3D 0; i < cpuProps->nprops; i++) { + qemuMonitorCPUPropsInfo *prop =3D cpuProps->props + i; + + virBufferEscapeString(buf, "name); + virBufferAsprintf(buf, " type=3D'%s'", + qemuMonitorCPUPropertyTypeToString(prop->type)); + virBufferEscapeString(buf, " composite=3D'%s'", prop->composite); + virBufferAddLit(buf, ">\n"); + + virBufferAdjustIndent(buf, 2); + if (prop->supportedValues) { + size_t j; + + for (j =3D 0; prop->supportedValues[j]; j++) { + virBufferEscapeString(buf, "= \n", + prop->supportedValues[j]); + } + } + virBufferAdjustIndent(buf, -2); + virBufferAddLit(buf, "\n"); + } + + virBufferAdjustIndent(buf, -2); + virBufferAddLit(buf, "\n"); +} + + static void virQEMUCapsFormatCPUModels(virArch arch, virQEMUCapsAccel *caps, @@ -5275,7 +5390,7 @@ virQEMUCapsFormatAccel(virQEMUCaps *qemuCaps, virQEMUCapsFormatHostCPUModelInfo(caps, buf, typeStr); virQEMUCapsFormatCPUModels(qemuCaps->arch, caps, buf, typeStr); virQEMUCapsFormatMachines(caps, buf, typeStr); - + virQEMUCapsFormatCPUProps(caps, buf); } =20 =20 --=20 2.43.7