* [pve-devel] [PATCH qemu-server v5 1/5] tests: replaced somemachine&someothermachine with q35&pc
2023-01-18 13:57 [pve-devel] [PATCH qemu-server/manager/docs v5 0/5] vIOMMU-Feature Markus Frank
@ 2023-01-18 13:57 ` Markus Frank
2023-08-17 11:43 ` [pve-devel] applied: " Fiona Ebner
2023-01-18 13:57 ` [pve-devel] [PATCH qemu-server v5 2/5] feature #3784: Parameter for guest vIOMMU & machine as property-string Markus Frank
` (4 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Markus Frank @ 2023-01-18 13:57 UTC (permalink / raw)
To: pve-devel
needed for new machine parameter
parse_property_string checks for the regex, therefore the test-cases
with somemachine & someothermachine always fail.
So I changed somemachine & someothermachine to q35 & pc with sed
sed -i 's/somemachine/q35/g'
sed -i 's/someothermachine/pc/g'
Signed-off-by: Markus Frank <m.frank@proxmox.com>
---
test/snapshot-expected/commit/qemu-server/101.conf | 2 +-
test/snapshot-expected/commit/qemu-server/102.conf | 2 +-
test/snapshot-expected/commit/qemu-server/201.conf | 2 +-
test/snapshot-expected/commit/qemu-server/202.conf | 2 +-
test/snapshot-expected/commit/qemu-server/203.conf | 2 +-
test/snapshot-expected/create/qemu-server/102.conf | 2 +-
test/snapshot-expected/create/qemu-server/104.conf | 4 ++--
test/snapshot-expected/create/qemu-server/106.conf | 2 +-
test/snapshot-expected/create/qemu-server/301.conf | 2 +-
test/snapshot-expected/create/qemu-server/302.conf | 2 +-
test/snapshot-expected/delete/qemu-server/203.conf | 2 +-
test/snapshot-expected/delete/qemu-server/204.conf | 2 +-
test/snapshot-expected/prepare/qemu-server/102.conf | 2 +-
test/snapshot-expected/prepare/qemu-server/104.conf | 2 +-
test/snapshot-expected/rollback/qemu-server/101.conf | 2 +-
test/snapshot-expected/rollback/qemu-server/106.conf | 4 ++--
test/snapshot-expected/rollback/qemu-server/201.conf | 2 +-
test/snapshot-expected/rollback/qemu-server/202.conf | 2 +-
test/snapshot-expected/rollback/qemu-server/203.conf | 2 +-
test/snapshot-expected/rollback/qemu-server/204.conf | 2 +-
test/snapshot-expected/rollback/qemu-server/205.conf | 2 +-
test/snapshot-expected/rollback/qemu-server/301.conf | 2 +-
test/snapshot-expected/rollback/qemu-server/302.conf | 2 +-
test/snapshot-expected/rollback/qemu-server/303.conf | 2 +-
test/snapshot-input/commit/qemu-server/101.conf | 2 +-
test/snapshot-input/commit/qemu-server/102.conf | 2 +-
test/snapshot-input/commit/qemu-server/201.conf | 2 +-
test/snapshot-input/commit/qemu-server/202.conf | 2 +-
test/snapshot-input/commit/qemu-server/203.conf | 2 +-
test/snapshot-input/create/qemu-server/104.conf | 2 +-
test/snapshot-input/delete/qemu-server/101.conf | 2 +-
test/snapshot-input/delete/qemu-server/203.conf | 2 +-
test/snapshot-input/delete/qemu-server/204.conf | 2 +-
test/snapshot-input/rollback/qemu-server/101.conf | 2 +-
test/snapshot-input/rollback/qemu-server/102.conf | 2 +-
test/snapshot-input/rollback/qemu-server/103.conf | 2 +-
test/snapshot-input/rollback/qemu-server/104.conf | 2 +-
test/snapshot-input/rollback/qemu-server/106.conf | 4 ++--
test/snapshot-input/rollback/qemu-server/201.conf | 2 +-
test/snapshot-input/rollback/qemu-server/202.conf | 2 +-
test/snapshot-input/rollback/qemu-server/203.conf | 2 +-
test/snapshot-input/rollback/qemu-server/204.conf | 2 +-
test/snapshot-input/rollback/qemu-server/205.conf | 2 +-
test/snapshot-input/rollback/qemu-server/301.conf | 2 +-
test/snapshot-input/rollback/qemu-server/302.conf | 2 +-
test/snapshot-input/rollback/qemu-server/303.conf | 2 +-
test/snapshot-test.pm | 2 +-
47 files changed, 50 insertions(+), 50 deletions(-)
diff --git a/test/snapshot-expected/commit/qemu-server/101.conf b/test/snapshot-expected/commit/qemu-server/101.conf
index 060676e..82c9522 100644
--- a/test/snapshot-expected/commit/qemu-server/101.conf
+++ b/test/snapshot-expected/commit/qemu-server/101.conf
@@ -18,7 +18,7 @@ bootdisk: ide0
cores: 4
ide0: somestore:somedisk,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/commit/qemu-server/102.conf b/test/snapshot-expected/commit/qemu-server/102.conf
index 13f33a3..01b8531 100644
--- a/test/snapshot-expected/commit/qemu-server/102.conf
+++ b/test/snapshot-expected/commit/qemu-server/102.conf
@@ -34,7 +34,7 @@ bootdisk: ide0
cores: 4
ide0: somestore:somedisk,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/commit/qemu-server/201.conf b/test/snapshot-expected/commit/qemu-server/201.conf
index 63a6d77..f8e99dd 100644
--- a/test/snapshot-expected/commit/qemu-server/201.conf
+++ b/test/snapshot-expected/commit/qemu-server/201.conf
@@ -34,7 +34,7 @@ bootdisk: ide0
cores: 4
ide0: somestore:somedisk,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/commit/qemu-server/202.conf b/test/snapshot-expected/commit/qemu-server/202.conf
index 4c6b84d..a221ba0 100644
--- a/test/snapshot-expected/commit/qemu-server/202.conf
+++ b/test/snapshot-expected/commit/qemu-server/202.conf
@@ -35,7 +35,7 @@ bootdisk: ide0
cores: 4
ide0: somestore:somedisk,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/commit/qemu-server/203.conf b/test/snapshot-expected/commit/qemu-server/203.conf
index 5acf20d..e10b68e 100644
--- a/test/snapshot-expected/commit/qemu-server/203.conf
+++ b/test/snapshot-expected/commit/qemu-server/203.conf
@@ -35,7 +35,7 @@ bootdisk: ide0
cores: 4
ide0: somestore:somedisk,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/create/qemu-server/102.conf b/test/snapshot-expected/create/qemu-server/102.conf
index 9b57004..d507956 100644
--- a/test/snapshot-expected/create/qemu-server/102.conf
+++ b/test/snapshot-expected/create/qemu-server/102.conf
@@ -25,7 +25,7 @@ name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
numa: 0
ostype: win7
-runningmachine: somemachine
+runningmachine: q35
smbios1: uuid=01234567-890a-bcde-f012-34567890abcd
snaptime: 1234567890
sockets: 1
diff --git a/test/snapshot-expected/create/qemu-server/104.conf b/test/snapshot-expected/create/qemu-server/104.conf
index 54f1c21..385625f 100644
--- a/test/snapshot-expected/create/qemu-server/104.conf
+++ b/test/snapshot-expected/create/qemu-server/104.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
@@ -45,7 +45,7 @@ net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
numa: 0
ostype: win7
parent: test
-runningmachine: somemachine
+runningmachine: q35
smbios1: uuid=01234567-890a-bcde-f012-34567890abcd
snaptime: 1234567890
sockets: 1
diff --git a/test/snapshot-expected/create/qemu-server/106.conf b/test/snapshot-expected/create/qemu-server/106.conf
index 9b57004..d507956 100644
--- a/test/snapshot-expected/create/qemu-server/106.conf
+++ b/test/snapshot-expected/create/qemu-server/106.conf
@@ -25,7 +25,7 @@ name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
numa: 0
ostype: win7
-runningmachine: somemachine
+runningmachine: q35
smbios1: uuid=01234567-890a-bcde-f012-34567890abcd
snaptime: 1234567890
sockets: 1
diff --git a/test/snapshot-expected/create/qemu-server/301.conf b/test/snapshot-expected/create/qemu-server/301.conf
index 9c49b1d..8cba2dc 100644
--- a/test/snapshot-expected/create/qemu-server/301.conf
+++ b/test/snapshot-expected/create/qemu-server/301.conf
@@ -25,7 +25,7 @@ name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
numa: 0
ostype: win7
-runningmachine: somemachine
+runningmachine: q35
smbios1: uuid=01234567-890a-bcde-f012-34567890abcd
snaptime: 1234567890
sockets: 1
diff --git a/test/snapshot-expected/create/qemu-server/302.conf b/test/snapshot-expected/create/qemu-server/302.conf
index 9c49b1d..8cba2dc 100644
--- a/test/snapshot-expected/create/qemu-server/302.conf
+++ b/test/snapshot-expected/create/qemu-server/302.conf
@@ -25,7 +25,7 @@ name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
numa: 0
ostype: win7
-runningmachine: somemachine
+runningmachine: q35
smbios1: uuid=01234567-890a-bcde-f012-34567890abcd
snaptime: 1234567890
sockets: 1
diff --git a/test/snapshot-expected/delete/qemu-server/203.conf b/test/snapshot-expected/delete/qemu-server/203.conf
index c406640..ed93cf7 100644
--- a/test/snapshot-expected/delete/qemu-server/203.conf
+++ b/test/snapshot-expected/delete/qemu-server/203.conf
@@ -21,7 +21,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/delete/qemu-server/204.conf b/test/snapshot-expected/delete/qemu-server/204.conf
index c521154..fe63204 100644
--- a/test/snapshot-expected/delete/qemu-server/204.conf
+++ b/test/snapshot-expected/delete/qemu-server/204.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/prepare/qemu-server/102.conf b/test/snapshot-expected/prepare/qemu-server/102.conf
index 92db74a..8f998ca 100644
--- a/test/snapshot-expected/prepare/qemu-server/102.conf
+++ b/test/snapshot-expected/prepare/qemu-server/102.conf
@@ -23,7 +23,7 @@ name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
numa: 0
ostype: win7
-runningmachine: somemachine
+runningmachine: q35
smbios1: uuid=01234567-890a-bcde-f012-34567890abcd
snapstate: prepare
snaptime: 1234567890
diff --git a/test/snapshot-expected/prepare/qemu-server/104.conf b/test/snapshot-expected/prepare/qemu-server/104.conf
index 02e2d3c..2f2ec96 100644
--- a/test/snapshot-expected/prepare/qemu-server/104.conf
+++ b/test/snapshot-expected/prepare/qemu-server/104.conf
@@ -41,7 +41,7 @@ net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
numa: 0
ostype: win7
parent: test
-runningmachine: somemachine
+runningmachine: q35
smbios1: uuid=01234567-890a-bcde-f012-34567890abcd
snapstate: prepare
snaptime: 1234567890
diff --git a/test/snapshot-expected/rollback/qemu-server/101.conf b/test/snapshot-expected/rollback/qemu-server/101.conf
index 91de880..17257e3 100644
--- a/test/snapshot-expected/rollback/qemu-server/101.conf
+++ b/test/snapshot-expected/rollback/qemu-server/101.conf
@@ -21,7 +21,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/rollback/qemu-server/106.conf b/test/snapshot-expected/rollback/qemu-server/106.conf
index aa5fa9e..729bc93 100644
--- a/test/snapshot-expected/rollback/qemu-server/106.conf
+++ b/test/snapshot-expected/rollback/qemu-server/106.conf
@@ -3,7 +3,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
@@ -21,7 +21,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/rollback/qemu-server/201.conf b/test/snapshot-expected/rollback/qemu-server/201.conf
index c521154..fe63204 100644
--- a/test/snapshot-expected/rollback/qemu-server/201.conf
+++ b/test/snapshot-expected/rollback/qemu-server/201.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/rollback/qemu-server/202.conf b/test/snapshot-expected/rollback/qemu-server/202.conf
index 691f5a2..d09b5d0 100644
--- a/test/snapshot-expected/rollback/qemu-server/202.conf
+++ b/test/snapshot-expected/rollback/qemu-server/202.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:unsnapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/rollback/qemu-server/203.conf b/test/snapshot-expected/rollback/qemu-server/203.conf
index 6e53b27..8abf841 100644
--- a/test/snapshot-expected/rollback/qemu-server/203.conf
+++ b/test/snapshot-expected/rollback/qemu-server/203.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/rollback/qemu-server/204.conf b/test/snapshot-expected/rollback/qemu-server/204.conf
index c406640..ed93cf7 100644
--- a/test/snapshot-expected/rollback/qemu-server/204.conf
+++ b/test/snapshot-expected/rollback/qemu-server/204.conf
@@ -21,7 +21,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/rollback/qemu-server/205.conf b/test/snapshot-expected/rollback/qemu-server/205.conf
index c521154..fe63204 100644
--- a/test/snapshot-expected/rollback/qemu-server/205.conf
+++ b/test/snapshot-expected/rollback/qemu-server/205.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/rollback/qemu-server/301.conf b/test/snapshot-expected/rollback/qemu-server/301.conf
index c521154..fe63204 100644
--- a/test/snapshot-expected/rollback/qemu-server/301.conf
+++ b/test/snapshot-expected/rollback/qemu-server/301.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-expected/rollback/qemu-server/302.conf b/test/snapshot-expected/rollback/qemu-server/302.conf
index 828e8b0..5110016 100644
--- a/test/snapshot-expected/rollback/qemu-server/302.conf
+++ b/test/snapshot-expected/rollback/qemu-server/302.conf
@@ -27,7 +27,7 @@ name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
numa: 0
ostype: win7
-runningmachine: somemachine
+runningmachine: q35
smbios1: uuid=01234567-890a-bcde-f012-34567890abcd
snaptime: 1234567890
sockets: 1
diff --git a/test/snapshot-expected/rollback/qemu-server/303.conf b/test/snapshot-expected/rollback/qemu-server/303.conf
index 518c954..473a9a0 100644
--- a/test/snapshot-expected/rollback/qemu-server/303.conf
+++ b/test/snapshot-expected/rollback/qemu-server/303.conf
@@ -26,7 +26,7 @@ name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
numa: 0
ostype: win7
-runningmachine: somemachine
+runningmachine: q35
smbios1: uuid=01234567-890a-bcde-f012-34567890abcd
snaptime: 1234567890
sockets: 1
diff --git a/test/snapshot-input/commit/qemu-server/101.conf b/test/snapshot-input/commit/qemu-server/101.conf
index 4ab1787..92c1f6a 100644
--- a/test/snapshot-input/commit/qemu-server/101.conf
+++ b/test/snapshot-input/commit/qemu-server/101.conf
@@ -18,7 +18,7 @@ bootdisk: ide0
cores: 4
ide0: somestore:somedisk,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/commit/qemu-server/102.conf b/test/snapshot-input/commit/qemu-server/102.conf
index b62f2c6..99bca5e 100644
--- a/test/snapshot-input/commit/qemu-server/102.conf
+++ b/test/snapshot-input/commit/qemu-server/102.conf
@@ -35,7 +35,7 @@ bootdisk: ide0
cores: 4
ide0: somestore:somedisk,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/commit/qemu-server/201.conf b/test/snapshot-input/commit/qemu-server/201.conf
index 63a6d77..f8e99dd 100644
--- a/test/snapshot-input/commit/qemu-server/201.conf
+++ b/test/snapshot-input/commit/qemu-server/201.conf
@@ -34,7 +34,7 @@ bootdisk: ide0
cores: 4
ide0: somestore:somedisk,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/commit/qemu-server/202.conf b/test/snapshot-input/commit/qemu-server/202.conf
index 4c6b84d..a221ba0 100644
--- a/test/snapshot-input/commit/qemu-server/202.conf
+++ b/test/snapshot-input/commit/qemu-server/202.conf
@@ -35,7 +35,7 @@ bootdisk: ide0
cores: 4
ide0: somestore:somedisk,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/commit/qemu-server/203.conf b/test/snapshot-input/commit/qemu-server/203.conf
index 5acf20d..e10b68e 100644
--- a/test/snapshot-input/commit/qemu-server/203.conf
+++ b/test/snapshot-input/commit/qemu-server/203.conf
@@ -35,7 +35,7 @@ bootdisk: ide0
cores: 4
ide0: somestore:somedisk,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/create/qemu-server/104.conf b/test/snapshot-input/create/qemu-server/104.conf
index c521154..fe63204 100644
--- a/test/snapshot-input/create/qemu-server/104.conf
+++ b/test/snapshot-input/create/qemu-server/104.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/delete/qemu-server/101.conf b/test/snapshot-input/delete/qemu-server/101.conf
index c521154..fe63204 100644
--- a/test/snapshot-input/delete/qemu-server/101.conf
+++ b/test/snapshot-input/delete/qemu-server/101.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/delete/qemu-server/203.conf b/test/snapshot-input/delete/qemu-server/203.conf
index c406640..ed93cf7 100644
--- a/test/snapshot-input/delete/qemu-server/203.conf
+++ b/test/snapshot-input/delete/qemu-server/203.conf
@@ -21,7 +21,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/delete/qemu-server/204.conf b/test/snapshot-input/delete/qemu-server/204.conf
index c521154..fe63204 100644
--- a/test/snapshot-input/delete/qemu-server/204.conf
+++ b/test/snapshot-input/delete/qemu-server/204.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/101.conf b/test/snapshot-input/rollback/qemu-server/101.conf
index 4fea865..0fa6a61 100644
--- a/test/snapshot-input/rollback/qemu-server/101.conf
+++ b/test/snapshot-input/rollback/qemu-server/101.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/102.conf b/test/snapshot-input/rollback/qemu-server/102.conf
index 8f0db83..3fcffe1 100644
--- a/test/snapshot-input/rollback/qemu-server/102.conf
+++ b/test/snapshot-input/rollback/qemu-server/102.conf
@@ -4,7 +4,7 @@ bootdisk: ide2
cores: 2
ide0: local:snapshotable-disk-1,size=32G
ide2: none,media=cdrom
-machine: someothermachine
+machine: pc
memory: 4096
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/103.conf b/test/snapshot-input/rollback/qemu-server/103.conf
index 8f0db83..3fcffe1 100644
--- a/test/snapshot-input/rollback/qemu-server/103.conf
+++ b/test/snapshot-input/rollback/qemu-server/103.conf
@@ -4,7 +4,7 @@ bootdisk: ide2
cores: 2
ide0: local:snapshotable-disk-1,size=32G
ide2: none,media=cdrom
-machine: someothermachine
+machine: pc
memory: 4096
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/104.conf b/test/snapshot-input/rollback/qemu-server/104.conf
index ff50151..2f12761 100644
--- a/test/snapshot-input/rollback/qemu-server/104.conf
+++ b/test/snapshot-input/rollback/qemu-server/104.conf
@@ -4,7 +4,7 @@ bootdisk: ide2
cores: 2
ide0: local:snapshotable-disk-1,size=32G
ide2: none,media=cdrom
-machine: someothermachine
+machine: pc
memory: 4096
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/106.conf b/test/snapshot-input/rollback/qemu-server/106.conf
index 64bf9bf..56d7199 100644
--- a/test/snapshot-input/rollback/qemu-server/106.conf
+++ b/test/snapshot-input/rollback/qemu-server/106.conf
@@ -3,7 +3,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: someothermachine
+machine: pc
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
@@ -21,7 +21,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/201.conf b/test/snapshot-input/rollback/qemu-server/201.conf
index c521154..fe63204 100644
--- a/test/snapshot-input/rollback/qemu-server/201.conf
+++ b/test/snapshot-input/rollback/qemu-server/201.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/202.conf b/test/snapshot-input/rollback/qemu-server/202.conf
index 691f5a2..d09b5d0 100644
--- a/test/snapshot-input/rollback/qemu-server/202.conf
+++ b/test/snapshot-input/rollback/qemu-server/202.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:unsnapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/203.conf b/test/snapshot-input/rollback/qemu-server/203.conf
index 6e53b27..8abf841 100644
--- a/test/snapshot-input/rollback/qemu-server/203.conf
+++ b/test/snapshot-input/rollback/qemu-server/203.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/204.conf b/test/snapshot-input/rollback/qemu-server/204.conf
index c406640..ed93cf7 100644
--- a/test/snapshot-input/rollback/qemu-server/204.conf
+++ b/test/snapshot-input/rollback/qemu-server/204.conf
@@ -21,7 +21,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/205.conf b/test/snapshot-input/rollback/qemu-server/205.conf
index c521154..fe63204 100644
--- a/test/snapshot-input/rollback/qemu-server/205.conf
+++ b/test/snapshot-input/rollback/qemu-server/205.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/301.conf b/test/snapshot-input/rollback/qemu-server/301.conf
index c521154..fe63204 100644
--- a/test/snapshot-input/rollback/qemu-server/301.conf
+++ b/test/snapshot-input/rollback/qemu-server/301.conf
@@ -20,7 +20,7 @@ bootdisk: ide0
cores: 4
ide0: local:snapshotable-disk-1,discard=on,size=32G
ide2: none,media=cdrom
-machine: somemachine
+machine: q35
memory: 8192
name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
diff --git a/test/snapshot-input/rollback/qemu-server/302.conf b/test/snapshot-input/rollback/qemu-server/302.conf
index 518c954..473a9a0 100644
--- a/test/snapshot-input/rollback/qemu-server/302.conf
+++ b/test/snapshot-input/rollback/qemu-server/302.conf
@@ -26,7 +26,7 @@ name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
numa: 0
ostype: win7
-runningmachine: somemachine
+runningmachine: q35
smbios1: uuid=01234567-890a-bcde-f012-34567890abcd
snaptime: 1234567890
sockets: 1
diff --git a/test/snapshot-input/rollback/qemu-server/303.conf b/test/snapshot-input/rollback/qemu-server/303.conf
index 518c954..473a9a0 100644
--- a/test/snapshot-input/rollback/qemu-server/303.conf
+++ b/test/snapshot-input/rollback/qemu-server/303.conf
@@ -26,7 +26,7 @@ name: win
net0: e1000=12:34:56:78:90:12,bridge=somebr0,firewall=1
numa: 0
ostype: win7
-runningmachine: somemachine
+runningmachine: q35
smbios1: uuid=01234567-890a-bcde-f012-34567890abcd
snaptime: 1234567890
sockets: 1
diff --git a/test/snapshot-test.pm b/test/snapshot-test.pm
index d26b422..5aca905 100644
--- a/test/snapshot-test.pm
+++ b/test/snapshot-test.pm
@@ -305,7 +305,7 @@ sub __snapshot_save_vmstate {
my $snap = $conf->{snapshots}->{$snapname};
$snap->{vmstate} = "somestorage:state-volume";
- $snap->{runningmachine} = "somemachine"
+ $snap->{runningmachine} = "q35"
}
sub assert_config_exists_on_node {
--
2.30.2
^ permalink raw reply [flat|nested] 11+ messages in thread
* [pve-devel] [PATCH qemu-server v5 2/5] feature #3784: Parameter for guest vIOMMU & machine as property-string
2023-01-18 13:57 [pve-devel] [PATCH qemu-server/manager/docs v5 0/5] vIOMMU-Feature Markus Frank
2023-01-18 13:57 ` [pve-devel] [PATCH qemu-server v5 1/5] tests: replaced somemachine&someothermachine with q35&pc Markus Frank
@ 2023-01-18 13:57 ` Markus Frank
2023-08-17 12:29 ` Fiona Ebner
2023-01-18 13:57 ` [pve-devel] [PATCH qemu-server v5 3/5] added test-cases for new machine-syntax & viommu Markus Frank
` (3 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Markus Frank @ 2023-01-18 13:57 UTC (permalink / raw)
To: pve-devel
vIOMMU enables the option to passthrough pci devices to L2 VMs
in L1 VMs via Nested Virtualisation.
QEMU-Parameters:
https://www.qemu.org/docs/master/system/qemu-manpage.html
https://wiki.qemu.org/Features/VT-d
-machine ...,kernel-irqchip=split:
"split" because of intremap see below.
-device intel-iommu:
* caching-mode=on:
"It is required for -device vfio-pci to work with the VT-d device, because host
assigned devices requires to setup the DMA mapping on the host before guest DMA
starts."
* intremap=on:
"This enables interrupt remapping feature. It's required to enable complete
x2apic. Currently it only supports kvm kernel-irqchip modes off or split, while
full kernel-irqchip is not yet supported."
Signed-off-by: Markus Frank <m.frank@proxmox.com>
---
PVE/API2/Qemu.pm | 23 ++++++++++++++---
PVE/QemuConfig.pm | 3 ++-
PVE/QemuServer.pm | 52 ++++++++++++++++++++++++++++++++++++---
PVE/QemuServer/Machine.pm | 6 +++--
4 files changed, 75 insertions(+), 9 deletions(-)
diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index c87602d..4e089f6 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -979,13 +979,21 @@ __PACKAGE__->register_method({
$conf->{vmgenid} = PVE::QemuServer::generate_uuid();
}
- my $machine = $conf->{machine};
+ my $machine_conf = PVE::QemuServer::parse_machine($conf->{machine});
+ my $machine = $machine_conf->{type};
if (!$machine || $machine =~ m/^(?:pc|q35|virt)$/) {
# always pin Windows' machine version on create, they get to easily confused
if (PVE::QemuServer::Helpers::windows_version($conf->{ostype})) {
- $conf->{machine} = PVE::QemuServer::windows_get_pinned_machine_version($machine);
+ $machine_conf->{type} = PVE::QemuServer::windows_get_pinned_machine_version($machine);
+ $conf->{machine} = PVE::QemuServer::print_machine($machine_conf);
}
}
+ my $q35 = $machine_conf->{type} && ($machine_conf->{type} =~ m/q35/) ? 1 : 0;
+ my $kvm = $conf->{kvm};
+ $kvm //= 1 if PVE::QemuServer::is_native($arch);
+ if ($machine_conf->{viommu} && (!$kvm || !$q35)) {
+ die "to use vIOMMU please enable kvm and set the machine type to q35\n";
+ }
PVE::QemuConfig->write_config($vmid, $conf);
@@ -1770,7 +1778,16 @@ my $update_vm_api = sub {
} elsif ($opt eq 'tags') {
assert_tag_permissions($vmid, $conf->{$opt}, $param->{$opt}, $rpcenv, $authuser);
$conf->{pending}->{$opt} = PVE::GuestHelpers::get_unique_tags($param->{$opt});
- } else {
+ } elsif ($opt eq 'machine') {
+ my $machine_conf = PVE::QemuServer::parse_machine($param->{$opt});
+ my $q35 = $machine_conf->{type} && ($machine_conf->{type} =~ m/q35/) ? 1 : 0;
+ my $kvm = $conf->{kvm};
+ $kvm //= 1 if PVE::QemuServer::is_native($arch);
+ if ($machine_conf->{viommu} && (!$kvm || !$q35)) {
+ die "to use vIOMMU please enable kvm and set the machine type to q35\n";
+ }
+ $conf->{pending}->{$opt} = $param->{$opt};
+ }else {
$conf->{pending}->{$opt} = $param->{$opt};
if ($opt eq 'boot') {
diff --git a/PVE/QemuConfig.pm b/PVE/QemuConfig.pm
index 051382c..7c998ef 100644
--- a/PVE/QemuConfig.pm
+++ b/PVE/QemuConfig.pm
@@ -433,7 +433,8 @@ sub __snapshot_rollback_hook {
} else {
# Note: old code did not store 'machine', so we try to be smart
# and guess the snapshot was generated with kvm 1.4 (pc-i440fx-1.4).
- $data->{forcemachine} = $conf->{machine} || 'pc-i440fx-1.4';
+ my $machine_conf = PVE::QemuServer::parse_machine($conf->{machine});
+ $data->{forcemachine} = $machine_conf->{type} || 'pc-i440fx-1.4';
# we remove the 'machine' configuration if not explicitly specified
# in the original config.
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 987908d..55c11d5 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -124,6 +124,19 @@ PVE::JSONSchema::register_standard_option('pve-qemu-machine', {
optional => 1,
});
+my $machine_fmt = {
+ type => get_standard_option('pve-qemu-machine', {
+ default_key => 1,
+ format_description => "pve-qemu-machine-type",
+ }),
+ viommu => {
+ type => 'boolean',
+ description => "enable guest vIOMMU (needs kvm to be enabled and q35 to be set as machine)",
+ default => 0,
+ optional => 1,
+ },
+};
+
# FIXME: remove in favor of just using the INotify one, it's cached there exactly the same way
my $nodename_cache;
sub nodename {
@@ -626,7 +639,12 @@ EODESCR
pattern => $PVE::QemuServer::CPUConfig::qemu_cmdline_cpu_re,
format_description => 'QEMU -cpu parameter'
},
- machine => get_standard_option('pve-qemu-machine'),
+ machine => {
+ description => "Specifies the Qemu machine type.",
+ type => 'string',
+ optional => 1,
+ format => $machine_fmt,
+ },
arch => {
description => "Virtual processor architecture. Defaults to the host.",
optional => 1,
@@ -2134,6 +2152,21 @@ sub parse_watchdog {
return $res;
}
+sub parse_machine {
+ my ($value) = @_;
+
+ return if !$value;
+
+ my $res = eval { parse_property_string($machine_fmt, $value) };
+ die $@ if $@;
+ return $res;
+}
+
+sub print_machine {
+ my ($machine_conf) = @_;
+ return PVE::JSONSchema::print_property_string($machine_conf, $machine_fmt);
+}
+
sub parse_guest_agent {
my ($conf) = @_;
@@ -2205,8 +2238,9 @@ sub qemu_created_version_fixups {
# check if we need to apply some handling for VMs that always use the latest machine version but
# had a machine version transition happen that affected HW such that, e.g., an OS config change
# would be required (we do not want to pin machine version for non-windows OS type)
+ my $machine_conf = parse_machine($conf->{machine});
if (
- (!defined($conf->{machine}) || $conf->{machine} =~ m/^(?:pc|q35|virt)$/) # non-versioned machine
+ (!defined($machine_conf->{type}) || $machine_conf->{type} =~ m/^(?:pc|q35|virt)$/) # non-versioned machine
&& (!defined($meta->{'creation-qemu'}) || !min_version($meta->{'creation-qemu'}, 6, 1)) # created before 6.1
&& (!$forced_vers || min_version($forced_vers, 6, 1)) # handle snapshot-rollback/migrations
&& min_version($kvmver, 6, 1) # only need to apply the change since 6.1
@@ -3335,7 +3369,8 @@ sub windows_get_pinned_machine_version {
sub get_vm_machine {
my ($conf, $forcemachine, $arch, $add_pve_version, $kvmversion) = @_;
- my $machine = $forcemachine || $conf->{machine};
+ my $machine_conf = parse_machine($conf->{machine});
+ my $machine = $forcemachine || $machine_conf->{type};
if (!$machine || $machine =~ m/^(?:pc|q35|virt)$/) {
$kvmversion //= kvm_user_version();
@@ -3575,6 +3610,8 @@ sub config_to_command {
my $kvm = $conf->{kvm};
my $nodename = nodename();
+ my $machine_conf = parse_machine($conf->{machine});
+
my $arch = get_vm_arch($conf);
my $kvm_binary = get_command_for_arch($arch);
my $kvmver = kvm_user_version($kvm_binary);
@@ -4137,6 +4174,15 @@ sub config_to_command {
}
push @$machineFlags, "type=${machine_type_min}";
+ if ($machine_conf->{viommu} && (!$kvm || !$q35)) {
+ die "to use vIOMMU please enable kvm and set the machine type to q35\n";
+ }
+
+ if ($machine_conf->{viommu}) {
+ unshift @$devices, '-device', "intel-iommu,intremap=on,caching-mode=on";
+ push @$machineFlags, 'kernel-irqchip=split';
+ }
+
push @$cmd, @$devices;
push @$cmd, '-rtc', join(',', @$rtcFlags) if scalar(@$rtcFlags);
push @$cmd, '-machine', join(',', @$machineFlags) if scalar(@$machineFlags);
diff --git a/PVE/QemuServer/Machine.pm b/PVE/QemuServer/Machine.pm
index d9429ed..bfbde59 100644
--- a/PVE/QemuServer/Machine.pm
+++ b/PVE/QemuServer/Machine.pm
@@ -15,7 +15,8 @@ our $PVE_MACHINE_VERSION = {
sub machine_type_is_q35 {
my ($conf) = @_;
- return $conf->{machine} && ($conf->{machine} =~ m/q35/) ? 1 : 0;
+ my $machine_conf = PVE::QemuServer::parse_machine($conf->{machine});
+ return $machine_conf->{type} && ($machine_conf->{type} =~ m/q35/) ? 1 : 0;
}
sub current_from_query_machines {
@@ -120,7 +121,8 @@ sub qemu_machine_pxe {
my $machine = get_current_qemu_machine($vmid);
- if ($conf->{machine} && $conf->{machine} =~ m/\.pxe$/) {
+ my $machine_conf = PVE::QemuServer::parse_machine($conf->{machine});
+ if ($machine_conf->{type} && $machine_conf->{type} =~ m/\.pxe$/) {
$machine .= '.pxe';
}
--
2.30.2
^ permalink raw reply [flat|nested] 11+ messages in thread
* [pve-devel] [PATCH qemu-server v5 3/5] added test-cases for new machine-syntax & viommu
2023-01-18 13:57 [pve-devel] [PATCH qemu-server/manager/docs v5 0/5] vIOMMU-Feature Markus Frank
2023-01-18 13:57 ` [pve-devel] [PATCH qemu-server v5 1/5] tests: replaced somemachine&someothermachine with q35&pc Markus Frank
2023-01-18 13:57 ` [pve-devel] [PATCH qemu-server v5 2/5] feature #3784: Parameter for guest vIOMMU & machine as property-string Markus Frank
@ 2023-01-18 13:57 ` Markus Frank
2023-01-18 13:57 ` [pve-devel] [PATCH docs v5 4/5] added vIOMMU documentation Markus Frank
` (2 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Markus Frank @ 2023-01-18 13:57 UTC (permalink / raw)
To: pve-devel
added two test-cases to test the new machine parameter with viommu
Signed-off-by: Markus Frank <m.frank@proxmox.com>
---
test/cfg2cmd/q35-viommu-alt.conf | 1 +
test/cfg2cmd/q35-viommu-alt.conf.cmd | 23 +++++++++++++++++++++++
test/cfg2cmd/q35-viommu.conf | 1 +
test/cfg2cmd/q35-viommu.conf.cmd | 23 +++++++++++++++++++++++
4 files changed, 48 insertions(+)
create mode 100644 test/cfg2cmd/q35-viommu-alt.conf
create mode 100644 test/cfg2cmd/q35-viommu-alt.conf.cmd
create mode 100644 test/cfg2cmd/q35-viommu.conf
create mode 100644 test/cfg2cmd/q35-viommu.conf.cmd
diff --git a/test/cfg2cmd/q35-viommu-alt.conf b/test/cfg2cmd/q35-viommu-alt.conf
new file mode 100644
index 0000000..44d38e2
--- /dev/null
+++ b/test/cfg2cmd/q35-viommu-alt.conf
@@ -0,0 +1 @@
+machine: q35,viommu=1
diff --git a/test/cfg2cmd/q35-viommu-alt.conf.cmd b/test/cfg2cmd/q35-viommu-alt.conf.cmd
new file mode 100644
index 0000000..24e873d
--- /dev/null
+++ b/test/cfg2cmd/q35-viommu-alt.conf.cmd
@@ -0,0 +1,23 @@
+/usr/bin/kvm \
+ -id 8006 \
+ -name 'vm8006,debug-threads=on' \
+ -no-shutdown \
+ -chardev 'socket,id=qmp,path=/var/run/qemu-server/8006.qmp,server=on,wait=off' \
+ -mon 'chardev=qmp,mode=control' \
+ -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' \
+ -mon 'chardev=qmp-event,mode=control' \
+ -pidfile /var/run/qemu-server/8006.pid \
+ -daemonize \
+ -smp '1,sockets=1,cores=1,maxcpus=1' \
+ -nodefaults \
+ -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' \
+ -vnc 'unix:/var/run/qemu-server/8006.vnc,password=on' \
+ -cpu kvm64,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,+lahf_lm,+sep \
+ -m 512 \
+ -device 'intel-iommu,intremap=on,caching-mode=on' \
+ -readconfig /usr/share/qemu-server/pve-q35-4.0.cfg \
+ -device 'usb-tablet,id=tablet,bus=ehci.0,port=1' \
+ -device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
+ -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
+ -iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
+ -machine 'type=q35+pve0,kernel-irqchip=split'
diff --git a/test/cfg2cmd/q35-viommu.conf b/test/cfg2cmd/q35-viommu.conf
new file mode 100644
index 0000000..6925a74
--- /dev/null
+++ b/test/cfg2cmd/q35-viommu.conf
@@ -0,0 +1 @@
+machine: type=q35,viommu=1
diff --git a/test/cfg2cmd/q35-viommu.conf.cmd b/test/cfg2cmd/q35-viommu.conf.cmd
new file mode 100644
index 0000000..24e873d
--- /dev/null
+++ b/test/cfg2cmd/q35-viommu.conf.cmd
@@ -0,0 +1,23 @@
+/usr/bin/kvm \
+ -id 8006 \
+ -name 'vm8006,debug-threads=on' \
+ -no-shutdown \
+ -chardev 'socket,id=qmp,path=/var/run/qemu-server/8006.qmp,server=on,wait=off' \
+ -mon 'chardev=qmp,mode=control' \
+ -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' \
+ -mon 'chardev=qmp-event,mode=control' \
+ -pidfile /var/run/qemu-server/8006.pid \
+ -daemonize \
+ -smp '1,sockets=1,cores=1,maxcpus=1' \
+ -nodefaults \
+ -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' \
+ -vnc 'unix:/var/run/qemu-server/8006.vnc,password=on' \
+ -cpu kvm64,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,+lahf_lm,+sep \
+ -m 512 \
+ -device 'intel-iommu,intremap=on,caching-mode=on' \
+ -readconfig /usr/share/qemu-server/pve-q35-4.0.cfg \
+ -device 'usb-tablet,id=tablet,bus=ehci.0,port=1' \
+ -device 'VGA,id=vga,bus=pcie.0,addr=0x1' \
+ -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3,free-page-reporting=on' \
+ -iscsi 'initiator-name=iqn.1993-08.org.debian:01:aabbccddeeff' \
+ -machine 'type=q35+pve0,kernel-irqchip=split'
--
2.30.2
^ permalink raw reply [flat|nested] 11+ messages in thread
* [pve-devel] [PATCH manager v5 5/5] ui: MachineEdit with viommu checkbox
2023-01-18 13:57 [pve-devel] [PATCH qemu-server/manager/docs v5 0/5] vIOMMU-Feature Markus Frank
` (3 preceding siblings ...)
2023-01-18 13:57 ` [pve-devel] [PATCH docs v5 4/5] added vIOMMU documentation Markus Frank
@ 2023-01-18 13:58 ` Markus Frank
2023-08-17 13:59 ` Fiona Ebner
2023-06-19 10:32 ` [pve-devel] [PATCH qemu-server/manager/docs v5 0/5] vIOMMU-Feature Markus Frank
5 siblings, 1 reply; 11+ messages in thread
From: Markus Frank @ 2023-01-18 13:58 UTC (permalink / raw)
To: pve-devel
Added a checkbox to enable viommu, if q35 is selected.
Otherwise (i440fx & !kvm) the checkbox is disabled, if not ticked on
before. If ticked on before, the user is able to uncheck the checkbox.
If kvm is deactivated or i440fx is selected, a hint tells that q35 and
kvm are required for vIOMMU.
The UI also needs to parse the new machine parameter as PropertyString.
Signed-off-by: Markus Frank <m.frank@proxmox.com>
---
www/manager6/qemu/MachineEdit.js | 58 ++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/www/manager6/qemu/MachineEdit.js b/www/manager6/qemu/MachineEdit.js
index f928c80c..d7650ea9 100644
--- a/www/manager6/qemu/MachineEdit.js
+++ b/www/manager6/qemu/MachineEdit.js
@@ -1,6 +1,7 @@
Ext.define('PVE.qemu.MachineInputPanel', {
extend: 'Proxmox.panel.InputPanel',
xtype: 'pveMachineInputPanel',
+ onlineHelp: 'qm_pci_viommu',
controller: {
xclass: 'Ext.app.ViewController',
@@ -12,11 +13,26 @@ Ext.define('PVE.qemu.MachineInputPanel', {
onMachineChange: function(field, value) {
let me = this;
let version = me.lookup('version');
+ let kvm = me.lookup('kvm');
+ let viommu = me.lookup('viommu');
+ let kvmHint = me.lookup('kvmQ35Hint');
let store = version.getStore();
let oldRec = store.findRecord('id', version.getValue(), 0, false, false, true);
let type = value === 'q35' ? 'q35' : 'i440fx';
store.clearFilter();
store.addFilter(val => val.data.id === 'latest' || val.data.type === type);
+ if ((type === 'q35' && kvm.getValue()) || viommu.getValue()) {
+ viommu.setDisabled(false);
+ kvmHint.setVisible(false);
+ } else {
+ // disable checkbox if vIOMMU is not possible and checkbox was not
+ // ticked on before
+ viommu.setDisabled(true);
+ }
+ if (type === 'i440fx' || !kvm.getValue()) {
+ // show hint when vIOMMU cannot be used
+ kvmHint.setVisible(true);
+ }
if (!me.getView().isWindows) {
version.setValue('latest');
} else {
@@ -38,14 +54,27 @@ Ext.define('PVE.qemu.MachineInputPanel', {
if (values.version && values.version !== 'latest') {
values.machine = values.version;
delete values.delete;
+ } else if (values.machine === undefined && values.viommu) {
+ // set machine to pc to raise the viommu + i440fx error
+ // from qemu-server instead of a regex error
+ values.machine = "pc";
+ delete values.delete;
}
delete values.version;
+ if (values.viommu) {
+ values.machine += ",viommu=1";
+ }
+ delete values.viommu;
+ delete values.kvm;
return values;
},
setValues: function(values) {
let me = this;
+ let machineConf = PVE.Parser.parsePropertyString(values.machine, "type");
+ values.machine = machineConf.type;
+
me.isWindows = values.isWindows;
if (values.machine === 'pc') {
values.machine = '__default__';
@@ -58,6 +87,11 @@ Ext.define('PVE.qemu.MachineInputPanel', {
values.version = 'pc-q35-5.1';
}
}
+
+ me.lookup('kvm').setValue(values.kvm);
+ values.viommu = machineConf.viommu === '1';
+ me.lookup('viommu').setValue(values.viommu);
+
if (values.machine !== '__default__' && values.machine !== 'q35') {
values.version = values.machine;
values.machine = values.version.match(/q35/) ? 'q35' : '__default__';
@@ -113,6 +147,26 @@ Ext.define('PVE.qemu.MachineInputPanel', {
fieldLabel: gettext('Note'),
value: gettext('Machine version change may affect hardware layout and settings in the guest OS.'),
},
+ {
+ xtype: 'proxmoxcheckbox',
+ fieldLabel: gettext('vIOMMU'),
+ name: 'viommu',
+ reference: 'viommu',
+ },
+ {
+ xtype: 'proxmoxcheckbox',
+ name: 'kvm',
+ reference: 'kvm',
+ hidden: true,
+ },
+ {
+ xtype: 'displayfield',
+ name: 'kvmQ35Hint',
+ reference: 'kvmQ35Hint',
+ userCls: 'pmx-hint',
+ value: gettext('vIOMMU needs kvm enabled and q35 firmware'),
+ hidden: true,
+ },
],
});
@@ -135,8 +189,12 @@ Ext.define('PVE.qemu.MachineEdit', {
me.load({
success: function(response) {
let conf = response.result.data;
+ if (conf.kvm === undefined || conf.kvm === null) {
+ conf.kvm = 1;
+ }
let values = {
machine: conf.machine || '__default__',
+ kvm: conf.kvm,
};
values.isWindows = PVE.Utils.is_windows(conf.ostype);
me.setValues(values);
--
2.30.2
^ permalink raw reply [flat|nested] 11+ messages in thread