From nobody Mon Aug 24 09:07:24 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=1786453194; cv=pass; d=zohomail.com; s=zohoarc; b=lx2a9/s8y3gWvsioxIodHmZtmhLEkpNrCWHRyA7sClJrZS/XADW2xjXJM8oLoTdfxIfDbn8U2RCN5Nqbtp/nnG6EUS3oijteBAuskH7qM53e2+tsCIQlKYJ5Vt2cB0+V1967vvRkWtgWhNVv66Y0T+DOzyAmncnOJ3FcEoLA4fw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786453194; 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=1i2sQWCy61Xc9y++lnAY/q0i8nEQpD57lReSpwAcJ1g=; b=jpCdigAjOelG7h+5dciN5PsIgy9m7qkByEnt1nhDA8WJhVRCC0Nyc/tx+teWjzo2nmUlf3aX9An50ao1o2ed5uETnzI3X2Pwp5n7/VcXNcExRzXUiowTijLFS54mRcu6OGEYEwWEYP4y74PR5hTQev/UO5AHB2NkOgFtfnioiu8= 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 1786453194927148.39686881856892; Tue, 11 Aug 2026 05:59:54 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 03EB841931; Tue, 11 Aug 2026 08:59:52 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 8088E3F89E; Tue, 11 Aug 2026 08:58:33 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 4440D3F89D; Tue, 11 Aug 2026 08:58:23 -0400 (EDT) Received: from mx0b-002c1b01.pphosted.com (mx0b-002c1b01.pphosted.com [148.163.155.12]) (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 25D383F86E for ; Tue, 11 Aug 2026 08:58:20 -0400 (EDT) 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 67BCShpj1061833 for ; Tue, 11 Aug 2026 05:58:19 -0700 Received: from sa9pr02cu001.outbound.protection.outlook.com (mail-southcentralusazon11023136.outbound.protection.outlook.com [40.93.196.136]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4fx2jeph88-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Tue, 11 Aug 2026 05:58:19 -0700 (PDT) Received: from BY5PR02MB6180.namprd02.prod.outlook.com (2603:10b6:a03:1fd::16) by CYXPR02MB10228.namprd02.prod.outlook.com (2603:10b6:930:dd::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.11; Tue, 11 Aug 2026 12:58:17 +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.0292.024; Tue, 11 Aug 2026 12:58:17 +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.6 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=1i2sQWCy61Xc9 y++lnAY/q0i8nEQpD57lReSpwAcJ1g=; b=CKVtC67csoOf9HFmKcg+Jtuv/SChc yfjnyrdmYmag9xlxE/MWeBeBawTZiKpagei6XLvIrB+uK6LmUUzB4Io4FQ5hfk1g je1ClS3SD683GT/8F0+Ajd1kynOG/+90VGAygEPq/sFuZfYT9B54pQ6323kjXgCQ H6u7d+zUfXI9ovdVXl+xKvEB3sjg3e1TCPLGV6dZ6QHG0M8m5XDV4PiOswtsC+aC cwpj7CKaB7TBFgSn8hGnlJHv48p6e9qzlUPVnn8QrT31Dse5AgoIU0TDjTub8Tvl m0eQ80koTSangBUCp8jMHdX63+aV8CWkKLOF5FxHKCf89MixUL1Oa//Cw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KITBSAn+xe7fwiPyQn0bocyrIcgQVCT5rNvqPypv5lXk48kO05ZLhWiMoCFc/FrIUt4O+IV6FfwslyvQBEEX4INJ6kAGl+CZTAMJxa2bbawuWAkRIW/T8M2J5oBdyCK2XjwbYQ3vAaEVoKVIGwB8Qm5HpNZPJO23DSJzCFaF8arslGjZlqPLid38Jim5v5nsxC6zCJS7UEjFnwJ2hUoXT4U8PBOXdUqqbZz+ULdeGRFa1rLHJmuoG4OVWgj0L62v89xlATkp80GU7cEKu1IXyadd/F+TwklKzVtMxUoC5AdFDM0Zj5vN7VWKpZ3kB0w3bC28dpmAsmD0YLPnfubBgA== 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=1i2sQWCy61Xc9y++lnAY/q0i8nEQpD57lReSpwAcJ1g=; b=S1P7EUf2/DPi7cglSl/QBUMZxS9rOG3DNz5GuYpncjj0b/+nt1QZRAKHgb4RUJa51N5Xw8Kz1W2hui7/OQjbgUnqNPQ5/RPQxnkGP35GJl0e6u/2RrZNNPCOJLVr7eVuBChhzk0f802TCvKAmBuJRQgm83yAr9BWKDUFvWHwQAHx4AaG4Rxt+s/cIwIYhg602cshZ03OMxcESed+zpfFMUKzd4wg0bQkwz0ZRkNHoGbE5m+QnEkRH7D+YarDBvrS1z+uschoZHN60p/O7Fe8qmfrDTKIatQoOJeMQsCRL4NrWDu6RkG5kVw5Yu1Ipqv1OZdrAQBormQQizC46bwvfw== 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=1i2sQWCy61Xc9y++lnAY/q0i8nEQpD57lReSpwAcJ1g=; b=vRa4TEWhYhuEyn2ydaB1vlFrMuOPiC+WmjVZ6UZ9yLl44FV/4V6M5hNhKXyWbdxyl9Wu0n9baUPS2Ah5cblpKPBHP9L7vcmanDQQ5lzNKvp9oqvyisQVareLq2ugxrD9AlHecnMXbtD0IAj4Ydfo7WsSOZNhLD+Wo2IMScNj2N8dw6xESFBAhZ4Eewizvmj/yuVhBP6AmHVs/yHwYYakie89LcxTj39o+JLzf7HaE3RpGq3Oa7QyANwDnN8RYhvO49wiWdv6e+vLGGHiRLEfGR4xSXG6rsMtDaDn783Z5iM5HSGyYh7fUwuRCCf2tkja8YwXhVhrpcCNNpzM4sYb7Q== From: John Levon To: devel@lists.libvirt.org Subject: [PATCH] Allow slices for file/block backed NVRAM Date: Tue, 11 Aug 2026 13:58:07 +0100 Message-ID: <20260811125807.3268062-1-john.levon@nutanix.com> X-Mailer: git-send-email 2.43.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0031.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:151::18) To BY5PR02MB6180.namprd02.prod.outlook.com (2603:10b6:a03:1fd::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY5PR02MB6180:EE_|CYXPR02MB10228:EE_ X-MS-Office365-Filtering-Correlation-Id: 93b89c14-614f-4ce7-046a-08def7a83620 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|23010399003|18002099003|20052099010|56012099006|3023799007|6133799003|10067099003; X-Microsoft-Antispam-Message-Info: dfiPeUl4VDZgN9+NqVzbi+R62E5yw+qwCKFX2Yhi16WnQSdtraTwrH35Uf2PLGlCI1zz/cADVwl2VMXjNUlpEEF4GZWMe6oSDK6HlPA/AWnDNrAXkULoxClT6BJDGUViJ6KEaXVUMrY1IN8KTWq8f9C8J6t7J0e1fy4wyoWTrGQGoZZCALagC4D/oh5ekjiZrrIwi3z5KNE99NGTVeqNCrB7JUk4Jx2Z49MRKMZ6K9DV0ceCt2NS/nQl+kWjU2IDpyh0QjWueynhHEiXMxXt4lbjRGqGrksVCLiJyelrkxh/NH0QDUjOES1iQ1b9HO75FGDXhU4GslU05Vzb8CyanSG5ILZ6qEufYqNLnkrfzY1wk9srMYmGvp5HFxjvL8nt99iAjWquNosMlv9xeLhWjSW/w+BafIJhGiIn+YNQ913e/gjJHh88i4g5omC+o9WBtsr2uuNsTe9cNW9xNYsC7kdXtU4LQ5fqGzO3fX56xOgj+g1BL4O6hQxTKWuUjw4bew2YoxMSTGWoKaIUuMLkGvfLJTzQ34Cz3FXUIFWCngnYTmmwjtiWS8u9ce13nw/c3fDaWIc/LPTcuvcCXqbLbo0Z2Z8c2wM42icy25OI81R5pcltPUL0silkKVOiz2pAN8w6+79FBNR+7EmRvIyIpeU/Mw/YdRujFcgPUsREJIk= 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)(1800799024)(366016)(376014)(23010399003)(18002099003)(20052099010)(56012099006)(3023799007)(6133799003)(10067099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KOoCGfP7trHnSmKgFKAAqa0WtuhE67pwAT6pjdIllMeQh4U+rk+DAA8RRliD?= =?us-ascii?Q?yrWijnqLeu3n9IRjGcSx6kwG9Xpwcym1ZGJpKMuj2T7qUeaGdtuCYB4QlQA/?= =?us-ascii?Q?vKh9TH+k3cga/feHsdswGAfHrk3XjiB3v4LNnQEHuc6xPs+igvhWyqIK+wF6?= =?us-ascii?Q?ec86qf0G/27j1v/AHcjIjZWcCR5181jTZY/uLlOb+1MKvjguFl753FookWr3?= =?us-ascii?Q?onrcSJ7UcM/Ic/Hbf8UVheRsKwVkeCfqZDgRUmb/ym50V4daQvMLrW+y5sNq?= =?us-ascii?Q?ThkhkwQm3ckZW8OU68hDsPIfy2GPNFS7AnWzoRB2JOdOhK2tC9qufs0o7+CN?= =?us-ascii?Q?4Hb6Sr0DHB5AXf7OKQm1RI5UjDjWvtHD2lUF3XCHJvqsyvCIZm56cxPJrOhu?= =?us-ascii?Q?KxflCe6jfbj3zz1Qk2IL/bpFWDBpP+DrL/elVitiTyi3S3CzksyG/DnFylps?= =?us-ascii?Q?76JXV3aJz7lt7PgspsCzuwXTuGcfOZKyg/6QpcQF5pNkgFP0u1CozPIng9VO?= =?us-ascii?Q?af+/dTXYk7Qqo6H8xQ0Fyifuho9Qgz0jwFbofn4ICrsFlI8AJ8wkT45QiXVg?= =?us-ascii?Q?r79m87TTzn2KMIpwlnGubEl5Dv5stV+se5SWhlp/swuy8d5Us7T+EXSzGmst?= =?us-ascii?Q?DPseo3GCv9VZQk5ipVvTmSlsvmRm8Qz/VwnStX05jt/6hjQO4yHLalwCBPwx?= =?us-ascii?Q?CXhXUnlSU6kRG+foZkylKo5T0czZo6NUOgKFolOkZHly2fhGSNso7EBXtGj3?= =?us-ascii?Q?Nq+hanJm2je1mH2KNF2Z+jmEWnDqtCGfriFplU5TEciUK6nsVrYRc1HCJNi3?= =?us-ascii?Q?lPnOLwl9UxrrXu7FvJRuBaJ8fi2/Y24S8X+1O/eoGxzNn0QqGclTaTwMjOsd?= =?us-ascii?Q?rYNhaNUR/JdaUBUc2L8V1KANfZ5jt04Ynr98vPCSaEBflNo+bOx3UNPfONME?= =?us-ascii?Q?ScEaQoMzZ3f1XdXOaLHkFxxmwJKcmFxIH+le9Ptcuv1YEzOZB8mvTG+RGZrz?= =?us-ascii?Q?rAQc3m7srOsHdzT9cLYgh/Vtt+owEK8eorkKPmbR34Og/Soi1CvCIQlU243C?= =?us-ascii?Q?eZOXtvhJZwfX+Um+VDsiHdZo+fe/sskvaBosWkIa4XbBSiNoYcV775q3ZXwk?= =?us-ascii?Q?gJFSwCTqI5WV08f/MTsqdMgL4oSOlEY6Sr1nHK1xjM0QGuo3eodpluDuqN03?= =?us-ascii?Q?3+Z4CRNZODiF6p+BsicG+9VuxXiAkJNoXW73iH7/FgeixXKHgTwt0+f+eE2F?= =?us-ascii?Q?+z/RBxwhYcGtR9dt/kd3i8LhECwLfkPIr1iKgXiBwem0fedSG1mRpCxBfa8Q?= =?us-ascii?Q?iJ8SYKwsVcHBkDWDCb6vpwOiN7b9ZFt2R1Qc0En7CcOggBlxAOQA1nU5JyCY?= =?us-ascii?Q?Qo2D3NuZNjyvPeikc2guodq43VDv4tYhSxwD80RwO2nZJkV/S33nElaRWh3M?= =?us-ascii?Q?Se90EO6FwCwwNgUymFjfF1WSP/3/LXV+V7V4lAOqF87O9F+Kxp/HC38AWpwx?= =?us-ascii?Q?j1cQOsdvuWc3yKzM+Ut554710vuP76y2WsvNw2Z688Cz7HamAJiHWWdy9dgt?= =?us-ascii?Q?50D1sOIsEqxBnOK4seFcxeKNUhGJgZhkokSw3N1mheDHSP0x37mrKUSZfGjz?= =?us-ascii?Q?kjoeXtJ8x0hBHliPf40fw8uza5WBGsNUnffO0FD/RX8XtYDdSCa2Miyn5+BZ?= =?us-ascii?Q?addkvzS6DlCVme7k4LH+DJADtKaxip8t27wEPPvB9L5kuC9goTs5aPy32An3?= =?us-ascii?Q?InPLyC+DCw=3D=3D?= X-Exchange-RoutingPolicyChecked: OVa/Pom9OOMS9kz3jSJla0id2hrOQQB63pg3XVxkNnWUbkVKpeEy7rMTLgjj944Yp9ArfjbEv+T/iUfMRe/walRBSiqX1e/ClExLQvar5ZkiNGySO7uuC0ZrvEAOJOGjfjRWsE5Ofkbessti22XekDikbfuA/j0qKr1iAilzZ3u2qPY7IT4xF8YUnbzYc9wC3nR2XBPRes84L44hZGERLoZO3Vpr0yrnQBu1EPl+DwWidLCzmNPZdGgyP1wl3cVaZBPGSPYT7FijTosi2CgUJwbttb1NHb+QZ0eYLiVd+G3wbs0iWnY69GidEGEVsSbaekZphWjGqEpsWBLn/h7Onw== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 93b89c14-614f-4ce7-046a-08def7a83620 X-MS-Exchange-CrossTenant-AuthSource: BY5PR02MB6180.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2026 12:58:17.0286 (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: 7o+yKxlAbWsPBBqblfVjbWVRH914I9oH4aZdX2L6oJ1soYMAeWqo18xgntrIl/vRVpS+V9v8GkJVjRVxEXlqqA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR02MB10228 X-Authority-Analysis: v=2.4 cv=ba1bluPB c=1 sm=1 tr=0 ts=6a7b1c6b cx=c_pps a=MadOk45lBhyGsbwhHlC0NA==: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=dEe9Ve2bX-KnNSUMM2s9:22 a=64Cc0HZtAAAA:8 a=vo1Bz8Vl-oRKaxw-fogA:9 X-Proofpoint-ORIG-GUID: cjy0pe_I4vLMob5w8kSHrQsjHFXarYYi X-Proofpoint-GUID: cjy0pe_I4vLMob5w8kSHrQsjHFXarYYi X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDEwOCBTYWx0ZWRfX7udxF0JFJ0Xj hFRyXE0jITukAbrYuXZGUyIfmpCjL1PGnD6JBOSB6A1T0ujN91BF+H0Hyr/lcv82OVt1Y0wrpCn sNb/xHnxswSSLZUEpexxX2RVLZv2jQM= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDEwOCBTYWx0ZWRfXwV1B6bZCPpsl m1DP8V1WBudYum59wrUyDygBf/erQ6KObr/Ne12txW/bhJZuGh6QFcAEoRB+vf+MUaZUu/4ACRF flp1+H2hk0y+MbGhjWpAy4t7vCrE+fs5QI7tDPnH9jYXLRV7M6pE3WxuEkomBf0JOLWbh92dcHY YL8K4kSLR8cXL6j244UcUlU+3R2w/7LpxI4exVdEAK2ekW3L7QiPFPoVlTAqW+FfwCDGsJEuWBo 20B3wRnO0iP7FnITPeNroBS9r3D7vtuXVnjYSrWucu2gsIbK3tlLWyIPYMstu+Elfye3zfxV+0k g7qqSpdHEcbi8TexmajSCO+BpXj0gcHiAcewtVeF+SQ8FPhLNrOvMKhAaaJXn/in9rwGHvEK5MB zVt8emUQiXsu0naX1W7OLWDB8PN9NssnIBtQYeCZ2eG4+h3K6FZ1+Azg48VZR2gkmgFFyVGb7az 097Oj0H+5kQ83H209Dw== 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-11_02,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Message-ID-Hash: GSCHREE3XAIZ3QT66P7HUAV7ICJ2OM7R X-Message-ID-Hash: GSCHREE3XAIZ3QT66P7HUAV7ICJ2OM7R 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: 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: 1786453196195158500 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 file/block may be larger due to alignment/allocation restrictions. Signed-off-by: John Levon Reviewed-by: Mark Cave-Ayland --- src/qemu/qemu_validate.c | 13 +++--- ...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, 110 insertions(+), 6 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..113a711390 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -708,7 +708,14 @@ qemuValidateDomainDefNvram(const virDomainDef *def, switch (src->type) { case VIR_STORAGE_TYPE_FILE: case VIR_STORAGE_TYPE_BLOCK: + break; + case VIR_STORAGE_TYPE_NETWORK: + if (src->sliceStorage) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("slices are not supported with network-backe= d NVRAM")); + return -1; + } break; =20 case VIR_STORAGE_TYPE_DIR: @@ -728,12 +735,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