From nobody Mon Aug 24 09:07:20 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=1786695695; cv=pass; d=zohomail.com; s=zohoarc; b=dAwtPOMgwKLEFsGeFZ3ZbDwx2g1YhDmxWEnvKR7cjDHpbEmduiRFsCX1iEaZ4TQES5jXw+LF5Fdjyt46FK7kzdu14pHjZOrtVLWyTh8bbaJ5Sa+EZG53sXz8yKHQ235sDt4Xt6MwHDyUY5/7TlXFiutfeYMqP1EIZBzU9F0GgFU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786695695; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=OOGVtXbKl40KEttLgakhiHsyE98C0RI8AEX6JSEJvF4=; b=I2t5YBARO+/MGhvZ0EoJKrphGjoAYbvKYu6NuHMflhlMMFEsuadYdsbjUwtO0PM2jEkt2hvm0+fEo54+1bv7upgei8FqOW5AuV8EAvU+QWfPer0Lu1FdqMwYwIte3kKYiO9Eh/wfpUC+NpYAjFWSkqfWtXq8fgvJGiJySYo/XXk= 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 1786695695457116.91876701971648; Fri, 14 Aug 2026 01:21:35 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 4F9A94197D; Fri, 14 Aug 2026 04:21:33 -0400 (EDT) Received: from [172.19.199.13] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 37C3F41A2D for ; Fri, 14 Aug 2026 04:19:55 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 3468F417F5; Fri, 14 Aug 2026 04:19:43 -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 216AA417F0 for ; Fri, 14 Aug 2026 04:19:38 -0400 (EDT) Received: from pps.filterd (m0127840.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67E7jRbh990984; Fri, 14 Aug 2026 01:19:36 -0700 Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11020131.outbound.protection.outlook.com [52.101.56.131]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 4g1p0eh2se-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 14 Aug 2026 01:19:36 -0700 (PDT) Received: from BY5PR02MB6180.namprd02.prod.outlook.com (2603:10b6:a03:1fd::16) by SJ0PR02MB8733.namprd02.prod.outlook.com (2603:10b6:a03:3da::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.15; Fri, 14 Aug 2026 08:19:33 +0000 Received: from BY5PR02MB6180.namprd02.prod.outlook.com ([fe80::5bab:a96b:f604:d7e1]) by BY5PR02MB6180.namprd02.prod.outlook.com ([fe80::5bab:a96b:f604:d7e1%6]) with mapi id 15.21.0315.011; Fri, 14 Aug 2026 08:19:33 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-4.2 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,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:message-id :mime-version:subject:to; s=proofpoint20171006; bh=OOGVtXbKl40KE ttLgakhiHsyE98C0RI8AEX6JSEJvF4=; b=s41d3oQOAlHqVMdrHPQO5HhvUAfGp wCNd3UhAoWJluaN0bRl2Q2jsfNGYONqUugAZ8djjyWDiVNEAZ8wjscbIy0yWwxYo kQp+7eil9Od+04KQhF4fcYz6XR2B+f9K4niLDWU179ZDlaiw5QRlVdd4V+j3Tv7v jsvbdcxcIPTMH4xPUxNCis3871gP/l8t3h0hxixBtpMWPm4+BD8llB17EFYOhSVT 6CWKkLf6fYfiJxrMyJdiqHz3isz7oUrwtaEVOF6ptGUfJlyl3D+hYG8UUOKSH9lp gBGPHx5gpmcdbZhIeZ/6su5IMMXMRWaym/LsnWx6fv3T3n6bSmcVVEArA== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eA0fafH1cpBk18k4w5DFp855j4yleP3Gzh2/oREc8uWMcdLxy7//J7ymU6g/m/yTVOwD1qdUY8xyjDzUUokL5RrQ0bJx9UoULTbvXKuYRQeTUpHggh63Xq5M3ruiRlk+v6H39PhYCaUoBYWhXYZYjJmHKoAIY9ZfR68X+JCOpzCDIfFdN5pEmWba4qQaOw8Gs2faLWo5tZpqgBiJImem5SzASr0X6URPhNem2+cQtAUpkYSEaYqD9KCk7aS3F28TbjXoEYCGNa+1eLsxSSlWTUSe6elMizQpIybrHVvjwF2aL+UZni+RjW3JVmFloi1E0gV+1l19e8y4Bzd61RV12Q== 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=OOGVtXbKl40KEttLgakhiHsyE98C0RI8AEX6JSEJvF4=; b=iB/Sz++eKp9RBTn+3jhAG5Pvas198YdozxQo73ONeZwNEJ5E177PCu4TgmyeFJGR1AaCGZy2VbWI6taFq2FBl/lKp8xT/pjUN1MYkQvweJOJRA8eAk7RjetO7S3oOQVrvpKeqVXnYoEnzD7/UQuYMuEvaME/vxcru9a207vERaoIk/4QBwx6snNkMrLGdbnX6hT0/gulLaTqePciCFMlPBaRikDShOocD0uzrhpOHO1KN3CT2y7fj8Gg5QNwr/aGZZ0+MAYCWjUHuLcuqTUxNdXRDjuwdblRenDsS3HI/MJ82zMPoXml0ihB0xNL11orAB4KTfpbYlxrw9TEuMCxvw== 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=OOGVtXbKl40KEttLgakhiHsyE98C0RI8AEX6JSEJvF4=; b=RBHYPnf1h8WqkLMUAOIEUW0MfnV7JHdU9ggbwcfAsU0Ey8lTXaVAeD6rnbVMSJDuDGo+IFnZP6wZpYZw7mNSK6Xb8ppW3UvVmfHl5kWCvLmjYs9OOlO253FxICQl5aMwpPtgNpJEo9cPlnipadTyLKa4pLFkFJbhB682IIIk8NO6QfNw7JbyKQuBhyiVnOtjwlKVfBfzRIInO7WQLMA7GQgZ7KstawkIw909ECGIYUZRtRfnacrq/FF60oYfPOPsh8r772VDrRjGYy4ldvsVdmvIqDZYuNBLLlJjI+LGLWB9C5qY+oAWeAbQh6Ep4eZ8jaABIyZAILCXahiNK2MmNA== From: John Levon To: devel@lists.libvirt.org Subject: [PATCH v2] Allow slices for block backed NVRAM Date: Fri, 14 Aug 2026 09:19:29 +0100 Message-ID: <20260814081929.272002-1-john.levon@nutanix.com> X-Mailer: git-send-email 2.43.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO6P123CA0013.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:338::19) To BY5PR02MB6180.namprd02.prod.outlook.com (2603:10b6:a03:1fd::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY5PR02MB6180:EE_|SJ0PR02MB8733:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a4a0011-b9a9-4b0e-bb54-08def9dcc57b x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|1800799024|20052099010|18002099003|56012099006|3023799007|6133799003|10067099003; X-Microsoft-Antispam-Message-Info: jFwFmTsEmN2p10qY0Co1jhW72dSN7Fs2lDzKepI6tAqVaUIDDGLgxAvnKsNHMJfp/9KnXzCkhl7V72zEQ5p24lyGrzWusd8tCY4oT+yQxxq1Tg7SSwCJlETTc6aViXgeafKZVtqlQEa0hnD+Yt4B7f4XFtQ76uW4F8GXX5ueQ0R03lLum+TLhAz6jE7D9f5aWgg7d62cOlQbQiWMRdZ6WinowZ95Ge6t7pHeleX+ZGEF9i8lHpyXavR59Ap5f/bQk/VCBC7XlOXmPtmqQKJfCb+aFPeVS3MCR6bBdCR4EtrqZ9DUhw9WlGcXtXCmIADHx8f29v4FfG84MR4CdEV0K1312Qbwfsg5TS/o3B9ywko37PWR7eF6rHwyOFRbYmoAXF6OZptWgsXyysYIfByuS4i3/xyzP547mTVhaAXW2OvegNu72LR21AjFlHccTBq0L2Dcx+dT675+tTOanwCAr521CMldmLmFF0V+i4FML8v90v6TpPvbJzse9WEOyoUBusj/sCyPp5K21kmpUmcqTu7Vd7P3lppxcEUqynPZVDGiSp8xdIX3FECjWfd3XIVRPTHLa1qhcP88IrKi2+1Zsyp5YRm1n4zi3roPtbSA9DuLdm0qStWawOpgO1DegM0waEwNvMvvtcSqPTGH6vpdPoM+BlxTwb+bPzhczAyeorA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR02MB6180.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(23010399003)(376014)(1800799024)(20052099010)(18002099003)(56012099006)(3023799007)(6133799003)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qki9HewFmGGH7zcntWt+rV3INIi2zacAT2Rq0TAe4aRwKk4Xc87BWhldjpjY?= =?us-ascii?Q?GKpO54qfYSH3KOqiLGFrvZz3m9VoQ98iXcNB1UNdRTjQnDJp8MPRmRGqDIy5?= =?us-ascii?Q?KtJhN/NCNCElt1WL5V4ktjJVv+VjJOYV+mqGP0/ntvVAl9ffa+Ln7L4l9X3n?= =?us-ascii?Q?41bxP8YaE7j0NNzLWaYbBEs/uc5fwyUpFM5X9WAbnVETfoJJ1fzquxT30rHH?= =?us-ascii?Q?vFCWN+NRLrpwoJb1pc/bCc31yvqQf2pwIisSy4/ihFh/QcBBM9SkgT6BOrxp?= =?us-ascii?Q?zzkr7eQIa8yMxTsjhJOzklVKSDKzLK4o759/BXQdkEsHyZMcTbJ4WUwFrgx6?= =?us-ascii?Q?CMI2ZpSz9H+Qgp74RVYS5YraaI0oVhI4jbojK2c49gktWSBtNw4SGVugbfEd?= =?us-ascii?Q?VBg4167QT9AvP5WyE/kg8gsmwhy3IooDcRVepzxgy51mfpzSx+q5G1jzj/qj?= =?us-ascii?Q?8wyWHRGN+uf2gLU18/hHH69xHXFkqGT1mLYmQ+8W9WPNVscAhF1/7BQhRaxX?= =?us-ascii?Q?RtGy4m+byuj05RqNJhKrKhHrRgSduQjfi1liZNga8IFLAuWtdVFjQAIM0ayG?= =?us-ascii?Q?wsI2Im1mHqoqoaCYj4mXyEcOCrt1Ok0C18yaIzMUNLPmMXyFbvYcvkMlAa/c?= =?us-ascii?Q?sEMn6S4alOD8mxMy+/ZCVK56xS33km2wZY7IIlfpWoyGqIsHp3EH3BcIx41A?= =?us-ascii?Q?eYGV5WzAlT7PA8NkJ11hC6fjyvLxY0WuppW7jQ4/RrJtnKOBOoyUBbpPLeWd?= =?us-ascii?Q?IlgggfX9t0bFF6r1hUZw+JY4qMg9T451U2khilwqtak9LshuCTdazcUDngTE?= =?us-ascii?Q?FAH2gkUPdGMLwzQjvorMZ55o0P3s++LozmNNxS3Drfeb5F+GtN+uy/ebNrzb?= =?us-ascii?Q?zZOXLeQei2NNtr+BSXdMIGyeQl89GLnfCGWR4CKwLQrNr4cOAJm9Yaepuk9O?= =?us-ascii?Q?lVxniCpbGjGYmKZXKmKaX6z/dxMeaNr9ITWYxdDRVDkS9rp3xy+3Xw3W5l9w?= =?us-ascii?Q?eo7e4r/y12RpmpjSygf6PEkLdWS22SZWLOns+UgeSCOoo98fYggcHk3R0AOZ?= =?us-ascii?Q?oNUfxnK/QWJoRxjRKGd1UBAeQJJbPvPVqYeRKPde53QripCdGNuAv2BPTLcP?= =?us-ascii?Q?gPaGxBto1uIUru218HuR/Y6XTcctL9eyXOTBBavpyiqpnaHaV+NGRhYd5VDy?= =?us-ascii?Q?MqWo44hdhB4wNdP+vdhi/KaTMyqco7iLFPVrkRFSNOAvSh13pcJhPacXgwyc?= =?us-ascii?Q?yRIH9PeoIKnbLpsZM/XL5DmxNQRzsVAQdkeCVlp+gZHSuPdoifPwN7aqs8S+?= =?us-ascii?Q?jjpCQ506qNZXZ4wK9GrAO1yCj+mf+t+8mbBpYaEd2lIW1NFeADKSCRrydrad?= =?us-ascii?Q?Ih0LwL2t0qzKR4s/UD7NI4XYdlz9BPSQSNm7Mjmudkm/eQOu44RjNcIX9jrp?= =?us-ascii?Q?x1U/8s6AyZVezPq8i4ZlcT+pR1VF4R3qpBvQj6B/DYY+2F58iAIH/wPrbe5/?= =?us-ascii?Q?MMJiqJrOXJgWmErbRYxZcWgFfmmwIoWCkbA1xROfuEK5wq04yGQKNg/LijB4?= =?us-ascii?Q?GsxcHgstjjl7ZrJRqLBynrGhLpFzJGkjE7ynyObmte3TfTjFNUgkiYa+gGg0?= =?us-ascii?Q?r+UJhDolHS+G8s0gKkxqSAkcsrIJBNov2ZImXm7KGV2oTi7Wy4GLrplS8UNs?= =?us-ascii?Q?RotGb4CugtnSL58nQE3iMZf/wPOMNmYJVE0fLgxboYLFii+I8wmOyIwWA8a/?= =?us-ascii?Q?IbkFaOLSMw=3D=3D?= X-Exchange-RoutingPolicyChecked: QqXB511Ud2B+BoeSrys0Tyba+c879LIVv6iSIXTK1XIOXlk74ZPmTuzrcpqqJsy9YOlZu12HgBqxIyBVfyafBHyforFqu13ci8GbLg+FF5DO6pDF5jA0g3GyP37jONKn+jJzYh9/PTPmgxq50c03vV+7OK39COvaffWKKoR+NXA9nVDJ7pThE6tvzlpVK0PC8wZPKWCtswB9n5LF1qEs0UJX4ib7D7K+rzcXLhn6Ns5WhDv4ygaf4IBBmSiWdXjumEY3BfQWlM1ic0rLb3VMmCkuMLrA0Rle3ifXbNaH/sfJbDpYetRHob7X8awZUWp7rpqUvKz8I9ppxiEbOS3p2A== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a4a0011-b9a9-4b0e-bb54-08def9dcc57b X-MS-Exchange-CrossTenant-AuthSource: BY5PR02MB6180.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2026 08:19:33.6506 (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: fAfIGHp2t70H6VU8BWIlpWFtJoYvx24uya0zZUlD7t5Lkb68Hj+IH2xswSkAHKrhBMJcgiVowb8diDHmTaynnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR02MB8733 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE0MDA2MyBTYWx0ZWRfX/zyrklILzgnC kPtphfoh4SriJVRU5macnKg7qeULlMBN+nC5JjPcIqvWLPsDJ0RyBV+UzlEtAeQfTjQsDat2Dy7 VIaxrE3tEAo9caGOEpk8pL1VU1A8Wm9YfJAXwGsU9d7AtIKPCKflvC63hIq/mzEINgLmvlLRYRt 7yM03TewufFCJA5aUxBTHcj+9ihpVb9R+EDhBqckHnUbdHk/UAwt5TcIw4mYtG9SwigiRLlzI+K 1y5KJhDa+hZ8D8j/IjIip6AIo8qOE9CeMRXdhDIa8uGMZ2320k0XsJzmW1p+XsdvkiSToAKOH7e jNNeMa8zcu1sIg8JkCdAplvDJwoWBmhfnRTqoO7PMMZLP5GeTOfbtulCcDJaMYsKDE0x49BiSYR GPiLCXj4xIe2xiE8bPrIdVV/yB2fqBdmXYkygqBck3ewxpW9PEoJx6nfeUr8NzZcZEKu12NMnlx BIUtpI3Gyl1l6yhfQkA== X-Proofpoint-Spam-Info: AW1haW4tMjYwODE0MDA2MyBTYWx0ZWRfX6HPpALxbolP1 hIvae+Nzy6p3PVEPs7HSEJWZQLBaknU+f4vSOa6xwjJmaIXX4pw79G2Be4wdl2b7AukuH5VDv3C TymiVu5myoRNDRD1HZtFzYQF56ZEfbw= X-Proofpoint-GUID: QExjs4h82GnO9BGkmKjrSBz9TgJYlGq2 X-Proofpoint-ORIG-GUID: QExjs4h82GnO9BGkmKjrSBz9TgJYlGq2 X-Authority-Analysis: v=2.4 cv=Eeb4hvmC c=1 sm=1 tr=0 ts=6a7ecf98 cx=c_pps a=xmbubLo1gGd65bmaoQID5g==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=Sv0fKeRqtYgA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=_-M8LpHI31CeLmyZm6wg:22 a=64Cc0HZtAAAA:8 a=IvmIOFzRYfjBPSs8XEAA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-14_03,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Message-ID-Hash: MI3IN6BYGX57PYXPYGOMEQ4AEM7QIQLB X-Message-ID-Hash: MI3IN6BYGX57PYXPYGOMEQ4AEM7QIQLB X-MailFrom: john.levon@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: pkrempa@redhat.com, mark.caveayland@nutanix.com, John Levon 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: 1786695698516158500 Content-Type: text/plain; charset="utf-8" For NVRAM storage specifically, the guest-visible size is critical to correct handling of the OVMF address space. Allow specifying storage slices for NVRAM storage when the underlying block may be larger due to alignment/allocation restrictions. As qemuPrepareNVRAMBlock() does not support it, disallow slices with non-raw formats, and slice offsets. Signed-off-by: John Levon Reviewed-by: Peter Krempa --- src/qemu/qemu_validate.c | 32 ++++++++++---- ...ual-efi-nvram-dev-slice.x86_64-latest.args | 35 ++++++++++++++++ ...nual-efi-nvram-dev-slice.x86_64-latest.xml | 42 +++++++++++++++++++ .../firmware-manual-efi-nvram-dev-slice.xml | 25 +++++++++++ tests/qemuxmlconftest.c | 1 + 5 files changed, 128 insertions(+), 7 deletions(-) create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-sli= ce.x86_64-latest.args create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-sli= ce.x86_64-latest.xml create mode 100644 tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-sli= ce.xml diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 61f3bd3278..ae70eb89f0 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -707,8 +707,32 @@ qemuValidateDomainDefNvram(const virDomainDef *def, =20 switch (src->type) { case VIR_STORAGE_TYPE_FILE: - case VIR_STORAGE_TYPE_BLOCK: case VIR_STORAGE_TYPE_NETWORK: + if (src->sliceStorage) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("slices are not supported with non-block NVRA= M")); + return -1; + } + break; + + case VIR_STORAGE_TYPE_BLOCK: + if (src->sliceStorage) { + if (src->sliceStorage->offset !=3D 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("offset slices are not supported with NVR= AM")); + } + + switch (src->format) { + case VIR_STORAGE_FILE_RAW: + case VIR_STORAGE_FILE_NONE: + break; + + default: + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("NVRAM slices are not supported with form= at '%1$s'"), + virStorageFileFormatTypeToString(src->forma= t)); + } + } break; =20 case VIR_STORAGE_TYPE_DIR: @@ -728,12 +752,6 @@ qemuValidateDomainDefNvram(const virDomainDef *def, return -1; } =20 - if (src->sliceStorage) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("slices are not supported with NVRAM")); - return -1; - } - if (src->pr) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("persistent reservations are not supported with = NVRAM")); diff --git a/tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-slice.x86_= 64-latest.args b/tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-slice.= x86_64-latest.args new file mode 100644 index 0000000000..bb911d4ae1 --- /dev/null +++ b/tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-slice.x86_64-late= st.args @@ -0,0 +1,35 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/var/lib/libvirt/qemu/domain--1-guest \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/var/lib/libvirt/qemu/domain--1-guest/.local/share \ +XDG_CACHE_HOME=3D/var/lib/libvirt/qemu/domain--1-guest/.cache \ +XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-guest/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=3Dguest,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/va= r/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \ +-blockdev '{"driver":"file","filename":"/usr/share/edk2/ovmf/OVMF_CODE.fd"= ,"node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unm= ap"}' \ +-blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver"= :"raw","file":"libvirt-pflash0-storage"}' \ +-blockdev '{"driver":"host_device","filename":"/dev/lv/guest_VARS.fd","nod= e-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}'= \ +-blockdev '{"driver":"raw","file":"libvirt-pflash1-storage","offset":0,"si= ze":540672,"node-name":"libvirt-0-slice-sto","read-only":false}' \ +-machine pc-i440fx-10.0,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dp= c.ram,pflash0=3Dlibvirt-pflash0-format,pflash1=3Dlibvirt-0-slice-sto,acpi= =3Don \ +-accel tcg \ +-cpu qemu64 \ +-m size=3D1048576k \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":1073741824}= ' \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid 63840878-0deb-4095-97e6-fc444d9bc9fa \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D@mon-fd@,server=3Don,wait=3Doff \ +-object '{"qom-type":"monitor-qmp","id":"monitor","chardev":"charmonitor"}= ' \ +-rtc base=3Dutc \ +-no-shutdown \ +-boot strict=3Don \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-slice.x86_= 64-latest.xml b/tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-slice.x= 86_64-latest.xml new file mode 100644 index 0000000000..9409c6a7a6 --- /dev/null +++ b/tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-slice.x86_64-late= st.xml @@ -0,0 +1,42 @@ + + guest + 63840878-0deb-4095-97e6-fc444d9bc9fa + 1048576 + 1048576 + 1 + + hvm + + + + + /usr/share/edk= 2/ovmf/OVMF_CODE.fd + + + + + + + + + + + + + + qemu64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + + + + diff --git a/tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-slice.xml = b/tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-slice.xml new file mode 100644 index 0000000000..31cf086c2a --- /dev/null +++ b/tests/qemuxmlconfdata/firmware-manual-efi-nvram-dev-slice.xml @@ -0,0 +1,25 @@ + + guest + 63840878-0deb-4095-97e6-fc444d9bc9fa + 1048576 + 1 + + hvm + /usr/share/edk2/ovmf/OVMF_COD= E.fd + + + + + + + + + + + + + /usr/bin/qemu-system-x86_64 + + + + diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c index e0e64c6c38..3b6f97c2b0 100644 --- a/tests/qemuxmlconftest.c +++ b/tests/qemuxmlconftest.c @@ -1442,6 +1442,7 @@ mymain(void) DO_TEST_CAPS_LATEST("firmware-manual-efi-nvram-network-iscsi"); DO_TEST_CAPS_LATEST("firmware-manual-efi-nvram-network-nbd"); DO_TEST_CAPS_LATEST("firmware-manual-efi-nvram-file"); + DO_TEST_CAPS_LATEST("firmware-manual-efi-nvram-dev-slice"); DO_TEST_CAPS_LATEST_PARSE_ERROR("firmware-manual-efi-nvram-stateless"); =20 DO_TEST_CAPS_ARCH_LATEST_FULL("firmware-manual-efi-sev-snp", "x86_64", --=20 2.43.0