Skip to content

Commit 7f1a695

Browse files
committed
Add numbers of preload disp perf for GUI calls
For: QubesOS/qubes-issues#1512
1 parent d60d4bf commit 7f1a695

File tree

3 files changed

+249
-102
lines changed

3 files changed

+249
-102
lines changed

qubes/tests/integ/dispvm_perf.py

Lines changed: 71 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
import qubes.tests
2626

2727

28+
CONCURRENCY = os.environ.get("QUBES_TEST_PERF_CONCURRENCY", False)
29+
30+
2831
class TC_00_DispVMPerfMixin:
2932
def setUp(self: qubes.tests.SystemTestCase):
3033
super().setUp()
@@ -135,10 +138,12 @@ def test_001_vm_dispvm_gui(self):
135138
"""Latency of vm-dispvm GUI calls"""
136139
self.run_test("vm-dispvm-gui")
137140

141+
@unittest.skipUnless(CONCURRENCY)
138142
def test_002_vm_dispvm_concurrent(self):
139143
"""Latency of vm-dispvm concurrent calls"""
140144
self.run_test("vm-dispvm-concurrent")
141145

146+
@unittest.skipUnless(CONCURRENCY)
142147
def test_003_vm_dispvm_gui_concurrent(self):
143148
"""Latency of vm-dispvm concurrent GUI calls"""
144149
self.run_test("vm-dispvm-gui-concurrent")
@@ -151,10 +156,12 @@ def test_007_dom0_dispvm_gui(self):
151156
"""Latency of dom0-dispvm GUI calls"""
152157
self.run_test("dom0-dispvm-gui")
153158

159+
@unittest.skipUnless(CONCURRENCY)
154160
def test_008_dom0_dispvm_concurrent(self):
155161
"""Latency of dom0-dispvm concurrent calls"""
156162
self.run_test("dom0-dispvm-concurrent")
157163

164+
@unittest.skipUnless(CONCURRENCY)
158165
def test_009_dom0_dispvm_gui_concurrent(self):
159166
"""Latency of dom0-dispvm concurrent GUI calls"""
160167
self.run_test("dom0-dispvm-gui-concurrent")
@@ -167,10 +174,12 @@ def test_021_vm_dispvm_preload_gui(self):
167174
"""Latency of vm-dispvm (preload) GUI calls"""
168175
self.run_test("vm-dispvm-preload-gui")
169176

177+
@unittest.skipUnless(CONCURRENCY)
170178
def test_022_vm_dispvm_preload_concurrent(self):
171179
"""Latency of vm-dispvm (preload) concurrent calls"""
172180
self.run_test("vm-dispvm-preload-concurrent")
173181

182+
@unittest.skipUnless(CONCURRENCY)
174183
def test_023_vm_dispvm_preload_gui_concurrent(self):
175184
"""Latency of vm-dispvm (preload) concurrent GUI calls"""
176185
self.run_test("vm-dispvm-preload-gui-concurrent")
@@ -183,10 +192,12 @@ def test_027_dom0_dispvm_preload_gui(self):
183192
"""Latency of dom0-dispvm (preload) GUI calls"""
184193
self.run_test("dom0-dispvm-preload-gui")
185194

195+
@unittest.skipUnless(CONCURRENCY)
186196
def test_028_dom0_dispvm_preload_concurrent(self):
187197
"""Latency of dom0-dispvm (preload) concurrent calls"""
188198
self.run_test("dom0-dispvm-preload-concurrent")
189199

200+
@unittest.skipUnless(CONCURRENCY)
190201
def test_029_dom0_dispvm_preload_gui_concurrent(self):
191202
"""Latency of dom0-dispvm (preload) concurrent GUI calls"""
192203
self.run_test("dom0-dispvm-preload-gui-concurrent")
@@ -199,45 +210,77 @@ def test_401_dom0_dispvm_gui_api(self):
199210
"""Latency of dom0-dispvm GUI API calls"""
200211
self.run_test("dom0-dispvm-gui-api")
201212

213+
@unittest.skipUnless(CONCURRENCY)
202214
def test_402_dom0_dispvm_concurrent_api(self):
203215
"""Latency of dom0-dispvm concurrent API calls"""
204216
self.run_test("dom0-dispvm-concurrent-api")
205217

218+
@unittest.skipUnless(CONCURRENCY)
206219
def test_403_dom0_dispvm_gui_concurrent_api(self):
207220
"""Latency of dom0-dispvm concurrent GUI API calls"""
208221
self.run_test("dom0-dispvm-gui-concurrent-api")
209222

210-
def test_404_dom0_dispvm_preload_less_less_api(self):
211-
"""Latency of dom0-dispvm (preload less less) API calls"""
212-
self.run_test("dom0-dispvm-preload-less-less-api")
223+
@unittest.skipUnless(CONCURRENCY)
224+
def test_404_dom0_dispvm_preload_concurrent_api(self):
225+
"""Latency of dom0-dispvm (preload) concurrent GUI API calls"""
226+
self.run_test("dom0-dispvm-preload-concurrent-api")
213227

214-
def test_405_dom0_dispvm_preload_less_api(self):
215-
"""Latency of dom0-dispvm (preload less) API calls"""
216-
self.run_test("dom0-dispvm-preload-less-api")
228+
@unittest.skipUnless(CONCURRENCY)
229+
def test_405_dom0_dispvm_preload_gui_concurrent_api(self):
230+
"""Latency of dom0-dispvm (preload) concurrent GUI API calls"""
231+
self.run_test("dom0-dispvm-preload-gui-concurrent-api")
217232

218-
def test_406_dom0_dispvm_preload_api(self):
219-
"""Latency of dom0-dispvm (preload) API calls"""
220-
self.run_test("dom0-dispvm-preload-api")
233+
def test_410_dom0_dispvm_preload_1_api(self):
234+
"""Latency of dom0-dispvm (1 preload) API calls"""
235+
self.run_test("dom0-dispvm-preload-1-api")
221236

222-
def test_407_dom0_dispvm_preload_more_api(self):
223-
"""Latency of dom0-dispvm (preload more) API calls"""
224-
self.run_test("dom0-dispvm-preload-more-api")
237+
def test_411_dom0_dispvm_preload_2_api(self):
238+
"""Latency of dom0-dispvm (2 preload) API calls"""
239+
self.run_test("dom0-dispvm-preload-2-api")
225240

226-
def test_408_dom0_dispvm_preload_more_more_api(self):
227-
"""Latency of dom0-dispvm (preload more more) API calls"""
228-
self.run_test("dom0-dispvm-preload-more-more-api")
241+
def test_412_dom0_dispvm_preload_3_api(self):
242+
"""Latency of dom0-dispvm (3 preload) API calls"""
243+
self.run_test("dom0-dispvm-preload-3-api")
229244

230-
def test_409_dom0_dispvm_preload_gui_api(self):
231-
"""Latency of dom0-dispvm (preload) GUI API calls"""
232-
self.run_test("dom0-dispvm-preload-gui-api")
245+
def test_413_dom0_dispvm_preload_4_api(self):
246+
"""Latency of dom0-dispvm (4 preload) API calls"""
247+
self.run_test("dom0-dispvm-preload-4-api")
233248

234-
def test_410_dom0_dispvm_preload_concurrent_api(self):
235-
"""Latency of dom0-dispvm (preload) concurrent GUI API calls"""
236-
self.run_test("dom0-dispvm-preload-concurrent-api")
249+
def test_414_dom0_dispvm_preload_5_api(self):
250+
"""Latency of dom0-dispvm (5 preload) API calls"""
251+
self.run_test("dom0-dispvm-preload-5-api")
237252

238-
def test_411_dom0_dispvm_preload_gui_concurrent_api(self):
239-
"""Latency of dom0-dispvm (preload) concurrent GUI API calls"""
240-
self.run_test("dom0-dispvm-preload-gui-concurrent-api")
253+
def test_415_dom0_dispvm_preload_6_api(self):
254+
"""Latency of dom0-dispvm (6 preload) API calls"""
255+
self.run_test("dom0-dispvm-preload-6-api")
256+
257+
def test_420_dom0_dispvm_preload_1_gui_api(self):
258+
"""Latency of dom0-dispvm (1 preload) GUI API calls"""
259+
self.run_test("dom0-dispvm-preload-1-gui-api")
260+
261+
def test_421_dom0_dispvm_preload_2_gui_api(self):
262+
"""Latency of dom0-dispvm (2 preload) GUI API calls"""
263+
self.run_test("dom0-dispvm-preload-2-gui-api")
264+
265+
def test_422_dom0_dispvm_preload_3_gui_api(self):
266+
"""Latency of dom0-dispvm (3 preload) GUI API calls"""
267+
self.run_test("dom0-dispvm-preload-3-gui-api")
268+
269+
def test_423_dom0_dispvm_preload_4_gui_api(self):
270+
"""Latency of dom0-dispvm (4 preload) GUI API calls"""
271+
self.run_test("dom0-dispvm-preload-4-gui-api")
272+
273+
def test_424_dom0_dispvm_preload_5_gui_api(self):
274+
"""Latency of dom0-dispvm (5 preload) GUI API calls"""
275+
self.run_test("dom0-dispvm-preload-5-gui-api")
276+
277+
def test_425_dom0_dispvm_preload_6_gui_api(self):
278+
"""Latency of dom0-dispvm (6 preload) GUI API calls"""
279+
self.run_test("dom0-dispvm-preload-6-gui-api")
280+
281+
def test_430_dom0_dispvm_preload_gui_api(self):
282+
"""Latency of dom0-dispvm (preload) GUI API calls"""
283+
self.run_test("dom0-dispvm-preload-gui-api")
241284

242285
def test_800_vm_vm(self):
243286
"""Latency of vm-vm calls"""
@@ -247,10 +290,12 @@ def test_801_vm_vm_gui(self):
247290
"""Latency of vm-vm GUI calls"""
248291
self.run_test("vm-vm-gui")
249292

293+
@unittest.skipUnless(CONCURRENCY)
250294
def test_802_vm_vm_concurrent(self):
251295
"""Latency of vm-vm concurrent calls"""
252296
self.run_test("vm-vm-concurrent")
253297

298+
@unittest.skipUnless(CONCURRENCY)
254299
def test_803_vm_vm_gui_concurrent(self):
255300
"""Latency of vm-vm concurrent GUI calls"""
256301
self.run_test("vm-vm-gui-concurrent")
@@ -263,10 +308,12 @@ def test_805_dom0_vm_gui_api(self):
263308
"""Latency of dom0-vm GUI API calls"""
264309
self.run_test("dom0-vm-gui-api")
265310

311+
@unittest.skipUnless(CONCURRENCY)
266312
def test_806_dom0_vm_concurrent_api(self):
267313
"""Latency of dom0-vm concurrent API calls"""
268314
self.run_test("dom0-vm-concurrent-api")
269315

316+
@unittest.skipUnless(CONCURRENCY)
270317
def test_807_dom0_vm_gui_concurrent_api(self):
271318
"""Latency of dom0-vm concurrent GUI API calls"""
272319
self.run_test("dom0-vm-gui-concurrent-api")

tests/dispvm_perf.py

Lines changed: 67 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ def __post_init__(self):
207207
POLICY_FILE = "/run/qubes/policy.d/10-test-dispvm-perf.policy"
208208
# MAX_PRELOAD is the number doesn't overpreload or underpreload (best
209209
# performance) on sequential calls between the tests
210-
# "dispvm-preload(-(more|less))-api" (tested on fedora-42-xfce). Machines with
210+
# "dispvm-preload(-NUMBER)-api" (tested on fedora-42-xfce). Machines with
211211
# different hardware or domains that boot faster or slower can theoretically
212212
# have a different best value.
213213
MAX_PRELOAD = 4
@@ -311,50 +311,97 @@ def __post_init__(self):
311311
from_dom0=True,
312312
),
313313
TestConfig(
314-
"dom0-dispvm-preload-less-less-api",
315-
preload_max=MAX_PRELOAD - 2,
314+
"dom0-dispvm-preload-1-api",
315+
preload_max=1,
316316
admin_api=True,
317-
extra_id="dispvm-preload-api",
317+
extra_id="dom0-dispvm-preload-api",
318318
from_dom0=True,
319319
),
320320
TestConfig(
321-
"dom0-dispvm-preload-less-api",
322-
preload_max=MAX_PRELOAD - 1,
321+
"dom0-dispvm-preload-1-gui-api",
322+
preload_max=1,
323+
gui=True,
323324
admin_api=True,
324-
extra_id="dispvm-preload-api",
325+
extra_id="dom0-dispvm-preload-gui-api",
325326
from_dom0=True,
326327
),
327328
TestConfig(
328-
"dom0-dispvm-preload-api",
329-
preload_max=MAX_PRELOAD,
329+
"dom0-dispvm-preload-2-api",
330+
preload_max=2,
330331
admin_api=True,
332+
extra_id="dom0-dispvm-preload-api",
331333
from_dom0=True,
332334
),
333335
TestConfig(
334-
"dom0-dispvm-preload-concurrent-api",
335-
concurrent=True,
336-
preload_max=MAX_CONCURRENCY,
336+
"dom0-dispvm-preload-2-gui-api",
337+
preload_max=2,
338+
gui=True,
337339
admin_api=True,
340+
extra_id="dom0-dispvm-preload-gui-api",
338341
from_dom0=True,
339342
),
340343
TestConfig(
341-
"dom0-dispvm-preload-more-api",
342-
preload_max=MAX_PRELOAD + 1,
344+
"dom0-dispvm-preload-3-api",
345+
preload_max=3,
343346
admin_api=True,
344-
extra_id="dispvm-preload-api",
347+
extra_id="dom0-dispvm-preload-api",
345348
from_dom0=True,
346349
),
347350
TestConfig(
348-
"dom0-dispvm-preload-more-more-api",
349-
preload_max=MAX_PRELOAD + 2,
351+
"dom0-dispvm-preload-3-gui-api",
352+
preload_max=3,
353+
gui=True,
350354
admin_api=True,
351-
extra_id="dispvm-preload-api",
355+
extra_id="dom0-dispvm-preload-gui-api",
352356
from_dom0=True,
353357
),
354358
TestConfig(
355-
"dom0-dispvm-preload-gui-api",
359+
"dom0-dispvm-preload-4-api",
360+
preload_max=4,
361+
admin_api=True,
362+
from_dom0=True,
363+
),
364+
TestConfig(
365+
"dom0-dispvm-preload-4-gui-api",
366+
preload_max=4,
356367
gui=True,
357-
preload_max=MAX_PRELOAD,
368+
admin_api=True,
369+
from_dom0=True,
370+
),
371+
TestConfig(
372+
"dom0-dispvm-preload-5-api",
373+
preload_max=5,
374+
admin_api=True,
375+
extra_id="dom0-dispvm-preload-api",
376+
from_dom0=True,
377+
),
378+
TestConfig(
379+
"dom0-dispvm-preload-5-gui-api",
380+
preload_max=5,
381+
gui=True,
382+
admin_api=True,
383+
extra_id="dom0-dispvm-preload-gui-api",
384+
from_dom0=True,
385+
),
386+
TestConfig(
387+
"dom0-dispvm-preload-6-api",
388+
preload_max=6,
389+
admin_api=True,
390+
extra_id="dom0-dispvm-preload-api",
391+
from_dom0=True,
392+
),
393+
TestConfig(
394+
"dom0-dispvm-preload-6-gui-api",
395+
preload_max=6,
396+
gui=True,
397+
admin_api=True,
398+
extra_id="dom0-dispvm-preload-gui-api",
399+
from_dom0=True,
400+
),
401+
TestConfig(
402+
"dom0-dispvm-preload-concurrent-api",
403+
concurrent=True,
404+
preload_max=MAX_CONCURRENCY,
358405
admin_api=True,
359406
from_dom0=True,
360407
),

0 commit comments

Comments
 (0)