File 022-cli-add-target.memReserve-for-pci-bridge-and-pcie-root-port-controllers.patch of Package virt-manager
Subject: cli: add target.memReserve for pci-bridge and pcie-root-port controllers
From: Lin Ma lma@suse.de Sun Jan 5 17:47:20 2025 +0800
Date: Wed Jan 29 10:25:37 2025 +0100:
Git: 79c333e3643cdef3a24672f4b6f0f34d5aa178fd
Libvirt(since v10.3.0) supports setting memReserve attribute to pci-bridge
and pcie-root-port, Let's add it into virt-install. Eg:
virt-install \
......
--controller pci,index=0,model=pcie-root \
--controller pci,index=1,model=pcie-root-port,target.memReserve=8196 \
--controller pci,index=2,model=dmi-to-pci-bridge \
--controller pci,index=3,model=pci-bridge,target.memReserve=8196 \
......
It results in the following domain XML snippet:
<controller type='pci' index='0' model='pcie-root'>
<alias name='pcie.0'/>
</controller>
<controller type='pci' index='1' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='1' port='0x10' memReserve='8196'/>
<alias name='pci.1'/>
<address type='pci' ....../>
</controller>
<controller type='pci' index='2' model='dmi-to-pci-bridge'>
<model name='i82801b11-bridge'/>
<alias name='pci.2'/>
<address type='pci' ....../>
</controller>
<controller type='pci' index='3' model='pci-bridge'>
<model name='pci-bridge'/>
<target chassisNr='3' memReserve='8196'/>
<alias name='pci.3'/>
<address type='pci' ....../>
</controller>
Signed-off-by: Lin Ma <lma@suse.de>
diff --git a/tests/data/cli/compare/virt-install-many-devices.xml b/tests/data/cli/compare/virt-install-many-devices.xml
index 251dc1cb3..d91e4c849 100644
--- a/tests/data/cli/compare/virt-install-many-devices.xml
+++ b/tests/data/cli/compare/virt-install-many-devices.xml
@@ -483,7 +483,7 @@
<target index="1"/>
</controller>
<controller type="pci" index="2" model="pci-bridge">
- <target chassisNr="1"/>
+ <target chassisNr="1" memReserve="8196"/>
</controller>
<controller type="pci" index="3" model="pci-expander-bus">
<target busNr="252">
diff --git a/tests/test_cli.py b/tests/test_cli.py
index 7f3ba0c3a..4a980dbac 100644
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -685,7 +685,7 @@ source.reservations.managed=no,source.reservations.source.type=unix,source.reser
--controller xenbus,maxGrantFrames=64
--controller pci,index=0,model=pcie-root-port,target.chassis=1,target.port=1,target.hotplug=off
--controller pci,index=1,model=pci-root,target.index=1
---controller pci,index=2,model=pci-bridge,target.chassisNr=1
+--controller pci,index=2,model=pci-bridge,target.chassisNr=1,target.memReserve=8196
--controller pci,index=3,model=pci-expander-bus,target.busNr=252,target.node=1
--controller usb3
--controller scsi,model=virtio-scsi
diff --git a/virtinst/cli.py b/virtinst/cli.py
index cecf33be1..33235bf37 100644
--- a/virtinst/cli.py
+++ b/virtinst/cli.py
@@ -4199,6 +4199,7 @@ class ParserController(VirtCLIParser):
cls.add_arg("target.busNr", "target_busNr")
cls.add_arg("target.index", "target_index")
cls.add_arg("target.node", "target_node")
+ cls.add_arg("target.memReserve", "target_memReserve")
cls.add_arg("address", None, lookup_cb=None, cb=cls.set_address_cb)
cls.add_arg("num_pcie_root_ports", None, lookup_cb=None, cb=cls.noset_cb)
diff --git a/virtinst/devices/controller.py b/virtinst/devices/controller.py
index 57c94fe48..c45b8e08d 100644
--- a/virtinst/devices/controller.py
+++ b/virtinst/devices/controller.py
@@ -85,6 +85,7 @@ class DeviceController(Device):
target_busNr = XMLProperty("./target/@busNr", is_int=True)
target_index = XMLProperty("./target/@index", is_int=True)
target_node = XMLProperty("./target/node", is_int=True)
+ target_memReserve = XMLProperty("./target/@memReserve", is_int=True)
def _get_attached_disk_devices(self, guest):
ret = []