Skip to content

Conversation

@ben-grande
Copy link
Contributor

@ben-grande ben-grande commented Aug 19, 2025

Visualization of disposable and preload performance compared to vm-vm connections.


There are lot of todos, not ready to be merged...

@ben-grande ben-grande force-pushed the preload-reader branch 2 times, most recently from e91aa29 to c18342f Compare August 21, 2025 08:49
@codecov
Copy link

codecov bot commented Aug 21, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 70.35%. Comparing base (a930d4e) to head (cc3a140).
⚠️ Report is 15 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #721      +/-   ##
==========================================
- Coverage   70.55%   70.35%   -0.20%     
==========================================
  Files          61       61              
  Lines       13642    13679      +37     
==========================================
- Hits         9625     9624       -1     
- Misses       4017     4055      +38     
Flag Coverage Δ
unittests 70.35% <ø> (-0.20%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ben-grande ben-grande force-pushed the preload-reader branch 2 times, most recently from eef0a88 to 1e316c2 Compare August 21, 2025 09:41
@ben-grande
Copy link
Contributor Author

Hum, got very different results after the computer has been suspend... I will be updating the sample data soon.

@marmarek
Copy link
Member

If that's on Novacustom laptop, it could be a side effect of QubesOS/qubes-issues#10110. See comments there for a workaround, and check if you still see a difference.

@ben-grande ben-grande force-pushed the preload-reader branch 6 times, most recently from 2ccf36a to 50affc4 Compare August 26, 2025 14:21
@ben-grande ben-grande force-pushed the preload-reader branch 8 times, most recently from 18fc3b7 to 2d5804b Compare September 9, 2025 09:33
pretty_name += "{}".format(pretty_to)
if pretty_type:
pretty_name += " ({})".format(pretty_type)
self.pretty_name = pretty_name
Copy link
Contributor Author

@ben-grande ben-grande Sep 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@marmarta Can you please check what you think of these names?

[user@dev ~/src/contrib/qubes-core-admin(preload-reader)]
% cd tests; PYTHONPATH=~/src/contrib/qubes-core-admin-client python3 -c 'import dispvm_perf; tests = dispvm_perf.ALL_TESTS; [print(test.pretty_name) for test in tests];'; cd -;
Qube runs simple app in another running qube (qrexec-client-vm)
Qube runs GUI app in another running qube (qrexec-client-vm)
Qube runs 4 concurrent simple apps in another running qube (qrexec-client-vm)
Qube runs 4 concurrent GUI apps in another running qube (qrexec-client-vm)
Dom0 runs simple app in another running qube (API)
Dom0 runs GUI app in another running qube (API)
Dom0 runs 4 concurrent simple apps in another running qube (API)
Dom0 runs 4 concurrent GUI apps in another running qube (API)
Qube runs simple app in a disposable (qrexec-client-vm)
Qube runs GUI app in a disposable (qrexec-client-vm)
Qube runs 4 concurrent simple apps in disposables (qrexec-client-vm)
Qube runs 4 concurrent GUI apps in disposables (qrexec-client-vm)
Dom0 runs simple app in a disposable (qvm-run)
Dom0 runs GUI app in a disposable (qvm-run)
Dom0 runs 4 concurrent simple apps in disposables (qvm-run)
Dom0 runs 4 concurrent GUI apps in disposables (qvm-run)
Qube runs simple app in disposables (2 preloaded) (qrexec-client-vm)
Qube runs GUI app in disposables (2 preloaded) (qrexec-client-vm)
Qube runs 4 concurrent simple apps in disposables (4 preloaded) (qrexec-client-vm)
Qube runs 4 concurrent GUI apps in disposables (4 preloaded) (qrexec-client-vm)
Dom0 runs simple app in disposables (2 preloaded) (qvm-run)
Dom0 runs GUI app in disposables (2 preloaded) (qvm-run)
Dom0 runs 4 concurrent simple apps in disposables (4 preloaded) (qvm-run)
Dom0 runs 4 concurrent GUI apps in disposables (4 preloaded) (qvm-run)
Dom0 runs simple app in a disposable (API)
Dom0 runs 4 concurrent simple apps in disposables (API)
Dom0 runs GUI app in a disposable (API)
Dom0 runs 4 concurrent GUI apps in disposables (API)
Dom0 runs simple app in disposables (3 preloaded) (API)
Dom0 runs simple app in disposables (1 preloaded) (API)
Dom0 runs simple app in disposables (2 preloaded) (API)
Dom0 runs 4 concurrent simple apps in disposables (4 preloaded) (API)
Dom0 runs GUI app in disposables (2 preloaded) (API)
Dom0 runs 4 concurrent GUI apps in disposables (4 preloaded) (API)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

love it. Clear and understandable.

@ben-grande ben-grande force-pushed the preload-reader branch 4 times, most recently from 1e60e74 to 8109b3d Compare September 10, 2025 15:37
@ben-grande ben-grande force-pushed the preload-reader branch 2 times, most recently from 496dd5c to 85d7e32 Compare September 18, 2025 18:49
@marmarek
Copy link
Member

marmarek commented Oct 2, 2025

qubes.tests.integ.dispvm_perf/TC_00_DispVMPerf_debian-13-xfce/test_900_reader
Render performance graphs. ... CRITICAL:qubes.tests.integ.dispvm_perf.TC_00_DispVMPerf_debian-13-xfce.test_900_reader:starting
2025-10-02 03:50:53,085 INFO main: Loading data
2025-10-02 03:50:53,086 INFO main: Loaded data
2025-10-02 03:50:53,086 INFO __init__: Initializing
2025-10-02 03:50:53,086 INFO __init__: Default template not specified, using newest fedora
Traceback (most recent call last):
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 1020, in <module>
    main()
    ~~~~^^
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 1008, in main
    graph = Graph(
        data,
    ...<4 lines>...
        show_image=args.show_image,
    )
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 223, in __init__
    fedora_template = max(
                      ~~~^
        (
        ^
    ...<7 lines>...
        ),
        ^^
    )["template"]
    ^
ValueError: max() iterable argument is empty

When running it as part of test_900_reader, do specify which template to do graphs for - the one that just had the perf tests completed.

@marmarek
Copy link
Member

marmarek commented Oct 2, 2025

But when it did find correct template, it failed on one graph:

2025-10-02 04:51:12,258 INFO run: Completed graph 04-line
2025-10-02 04:51:12,258 INFO run: Generating graph 08-template
Traceback (most recent call last):
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 1020, in <module>
    main()
    ~~~~^^
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 1016, in main
    graph.run()
    ~~~~~~~~~^^
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 331, in run
    method()
    ~~~~~~^^
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 832, in graph_08_template
    fig = self.bar_plot(
          ~~~~~~~~~~~~~^
        template_tests, title_query="template", title_prefix=False
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )[0]
    ^
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 452, in bar_plot
    min_mean = min(normal_values[i], preload_values[i])
                                     ~~~~~~~~~~~~~~^^^
IndexError: list index out of range

@ben-grande
Copy link
Contributor Author

But when it did find correct template, it failed on one graph:

This is because this test failed: https://openqa.qubes-os.org/tests/154722#step/TC_00_DispVMPerf_debian-13-xfce/26

So it is missing a preload for the debian template, then it can't load that graph correctly. What is the expected behavior here? I am doing changes to make it fail the graph but raise it late, to allow for other graphs such as 09_method to be loaded.

@ben-grande ben-grande force-pushed the preload-reader branch 2 times, most recently from f6dcef3 to a646f4a Compare October 2, 2025 09:33
@ben-grande
Copy link
Contributor Author

The exception is not great right now because it will only report one exception even if more graphs fail... will fix it.

% ./tests/dispvm_perf_reader.py --log-level=INFO -n -o /tmp/test-nv56 -g 04-line,08-template,09-method -- /tmp/json
2025-10-02 11:33:29,460 INFO main: Loading data
2025-10-02 11:33:29,465 INFO main: Loaded data
2025-10-02 11:33:29,465 INFO __init__: Initializing
2025-10-02 11:33:29,465 INFO __init__: Default template not specified, using newest fedora
2025-10-02 11:33:29,466 INFO __init__: Newest fedora is 'fedora-42-xfce'
2025-10-02 11:33:29,466 INFO __init__: Initialized
2025-10-02 11:33:29,466 INFO run: Generating graph 04-line
2025-10-02 11:33:29,712 INFO end: Saving figure graph_04_line_0_exec
2025-10-02 11:33:30,788 INFO end: Saving figure graph_04_line_1_clean
2025-10-02 11:33:31,799 INFO end: Saving figure graph_04_line_2_total
2025-10-02 11:33:32,667 INFO run: Completed graph 04-line
2025-10-02 11:33:32,667 INFO run: Generating graph 08-template
2025-10-02 11:33:32,882 CRITICAL run: Failed creating graph 08-template
2025-10-02 11:33:32,883 INFO run: Generating graph 09-method
2025-10-02 11:33:33,101 INFO end: Saving figure graph_09_method_mean_wconc_nogui_gui
2025-10-02 11:33:34,781 INFO end: Saving figure graph_09_method_total_wconc_nogui_gui
2025-10-02 11:33:36,602 CRITICAL run: Failed creating graph 09-method
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1026, in <module>
    main()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1022, in main
    graph.run()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 340, in run
    raise exception
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 332, in run
    method()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 894, in graph_09_method
    fig = self.bar_plot(
          ^^^^^^^^^^^^^^
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 458, in bar_plot
    min_mean = min(normal_values[i], preload_values[i])
                                     ~~~~~~~~~~~~~~^^^
IndexError: list index out of range

@marmarek
Copy link
Member

marmarek commented Oct 2, 2025

So it is missing a preload for the debian template, then it can't load that graph correctly. What is the expected behavior here? I am doing changes to make it fail the graph but raise it late, to allow for other graphs such as 09_method to be loaded.

Yes, try to make other graphs anyway. A better error message would be useful too, but I guess that may be tricky if only some parts of the data is missing...

@marmarek
Copy link
Member

marmarek commented Oct 2, 2025

BTW I like you made the reader script taking just the data file as input, not needing (or even importing) qubes api so it can be run outside of qubes dom0 too :)

@ben-grande ben-grande force-pushed the preload-reader branch 3 times, most recently from 65d90b9 to c6e10ea Compare October 2, 2025 12:29
@ben-grande
Copy link
Contributor Author

On a test that I removed a fedora test and used debian as the default template, the next graph was loaded.

% ./tests/dispvm_perf_reader.py --log-level=INFO -n -o /tmp/test-nv56 -t debian-13-xfce -g 08-template,09-method -- /tmp/json
2025-10-02 14:30:09,104 INFO main: Loading data
2025-10-02 14:30:09,110 INFO main: Loaded data
2025-10-02 14:30:09,110 INFO __init__: Initializing
2025-10-02 14:30:09,110 INFO __init__: Initialized
2025-10-02 14:30:09,111 INFO run: Generating graph 08-template
2025-10-02 14:30:09,366 CRITICAL run: Failed creating graph 08-template
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 353, in run
    method()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 870, in graph_08_template
    fig = self.bar_plot(
          ^^^^^^^^^^^^^^
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 445, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: dict_keys(['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api']), dict_keys(['fedora-42-xfce_dom0-dispvm-preload-gui-api'])
2025-10-02 14:30:09,368 INFO run: Generating graph 09-method
2025-10-02 14:30:09,557 INFO end: Saving figure debian-13-xfce_graph_09_method_mean_wconc_nogui_gui
2025-10-02 14:30:10,876 INFO end: Saving figure debian-13-xfce_graph_09_method_total_wconc_nogui_gui
2025-10-02 14:30:12,672 INFO end: Saving figure debian-13-xfce_graph_09_method_mean_nogui_gui
2025-10-02 14:30:13,826 INFO end: Saving figure debian-13-xfce_graph_09_method_total_nogui_gui
2025-10-02 14:30:15,002 INFO end: Saving figure debian-13-xfce_graph_09_method_mean_noconc_conc
2025-10-02 14:30:16,237 INFO end: Saving figure debian-13-xfce_graph_09_method_total_noconc_conc
2025-10-02 14:30:18,006 INFO end: Saving figure debian-13-xfce_graph_09_method_mean_wgui_noconc_conc
2025-10-02 14:30:19,202 INFO end: Saving figure debian-13-xfce_graph_09_method_total_wgui_noconc_conc
2025-10-02 14:30:20,223 INFO run: Completed graph 09-method
2025-10-02 14:30:20,223 INFO run: Finished generating graphs
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1058, in <module>
    main()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1054, in main
    graph.run()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 363, in run
    raise Exception(
Exception: Exception on graph(s): 08-template

@marmarek
Copy link
Member

marmarek commented Oct 2, 2025

This is a bit unfortunate:

qubes.tests.integ.dispvm_perf/TC_00_DispVMPerf_fedora-42-xfce/test_900_reader
Render performance graphs. ... CRITICAL:qubes.tests.integ.dispvm_perf.TC_00_DispVMPerf_fedora-42-xfce.test_900_reader:starting
2025-10-02 20:45:42,517 INFO main: Loading data
2025-10-02 20:45:42,519 INFO main: Loaded data
2025-10-02 20:45:42,520 INFO __init__: Initializing
2025-10-02 20:45:42,520 INFO __init__: Initialized
2025-10-02 20:45:42,520 INFO run: Generating graph 00-specs
qt.qpa.theme.dbus: Session DBus not running.
qt.qpa.theme.dbus: Application will not react to setting changes.
 Check your DBus installation.
2025-10-02 20:45:42,697 INFO end: Saving figure fedora-42-xfce_graph_00_specs
...
2025-10-02 20:45:45,522 CRITICAL run: Failed creating graph 08-template
Traceback (most recent call last):
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 353, in run
    method()
    ~~~~~~^^
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 870, in graph_08_template
    fig = self.bar_plot(
          ~~~~~~~~~~~~~^
        template_tests, title_query="template", title_prefix=False
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )[0]
    ^
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 445, in bar_plot
    assert_items_length_match(
    ~~~~~~~~~~~~~~~~~~~~~~~~~^
        normal_tests_method, preload_tests_method
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/qubes/tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
    ...<4 lines>...
    )
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: dict_keys(['debian-13-xfce_dom0-dispvm-api', 'debian-13-xfce_dom0-dispvm-gui-api']), dict_keys(['debian-13-xfce_dom0-dispvm-preload-api'])

So, one debian test failed, which caused errors on all reader test - as 08_template include data from all templates... But I don't have any better idea how to handle that.

@ben-grande
Copy link
Contributor Author

So, one debian test failed, which caused errors on all reader test - as 08_template include data from all templates... But I don't have any better idea how to handle that.

I think the graph should fail, but at least, save the figure:

% ./tests/dispvm_perf_reader.py --log-level=INFO -n -o /tmp/test-nv56 -t fedora-42-xfce -g 08-template -- /tmp/json
2025-10-03 07:37:46,251 INFO main: Loading data
2025-10-03 07:37:46,268 INFO main: Loaded data
2025-10-03 07:37:46,270 INFO __init__: Initializing
2025-10-03 07:37:46,272 INFO __init__: Initialized
2025-10-03 07:37:46,274 INFO run: Generating graph 08-template
2025-10-03 07:37:46,793 WARNING bar_plot: Delaying length mismatch
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 444, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:37:46,835 INFO end: Saving figure fedora-42-xfce_graph_08_template_mean
2025-10-03 07:37:48,357 CRITICAL run: Failed creating graph 08-template
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 353, in run
    method()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 893, in graph_08_template
    self.bar_plot(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 546, in bar_plot
    raise length_exception[0]
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 444, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:37:48,365 INFO run: Finished generating graphs
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1065, in <module>
    main()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1061, in main
    graph.run()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 363, in run
    raise Exception(
Exception: Exception on graph(s): 08-template

It requires reworking the code a bit.

@ben-grande
Copy link
Contributor Author

% ./tests/dispvm_perf_reader.py --log-level=INFO -n -o /tmp/test-nv56 -t fedora-42-xfce -g 08-template -- /tmp/json
2025-10-03 07:37:46,251 INFO main: Loading data
2025-10-03 07:37:46,268 INFO main: Loaded data
2025-10-03 07:37:46,270 INFO __init__: Initializing
2025-10-03 07:37:46,272 INFO __init__: Initialized
2025-10-03 07:37:46,274 INFO run: Generating graph 08-template
2025-10-03 07:37:46,793 WARNING bar_plot: Delaying length mismatch
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 444, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:37:46,835 INFO end: Saving figure fedora-42-xfce_graph_08_template_mean
2025-10-03 07:37:48,357 CRITICAL run: Failed creating graph 08-template
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 353, in run
    method()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 893, in graph_08_template
    self.bar_plot(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 546, in bar_plot
    raise length_exception[0]
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 444, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:37:48,365 INFO run: Finished generating graphs
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1065, in <module>
    main()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1061, in main
    graph.run()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 363, in run
    raise Exception(
Exception: Exception on graph(s): 08-template
zsh: exit 1     ./tests/dispvm_perf_reader.py --log-level=INFO -n -o /tmp/test-nv56 -t  -g  -
[user@dev ~/src/contrib/qubes-core-admin(preload-reader)]
% ./tests/dispvm_perf_reader.py --log-level=INFO -n -o /tmp/test-nv56 -t fedora-42-xfce -- /tmp/json
2025-10-03 07:44:34,382 INFO main: Loading data
2025-10-03 07:44:34,392 INFO main: Loaded data
2025-10-03 07:44:34,394 INFO __init__: Initializing
2025-10-03 07:44:34,397 INFO __init__: Initialized
2025-10-03 07:44:34,404 INFO run: Generating graph 00-specs
2025-10-03 07:44:34,605 INFO end: Saving figure fedora-42-xfce_graph_00_specs
2025-10-03 07:44:34,706 INFO run: Completed graph 00-specs
2025-10-03 07:44:34,708 INFO run: Generating graph 01-bar
2025-10-03 07:44:34,786 WARNING bar_plot: Delaying length mismatch
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 445, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:44:34,795 INFO end: Saving figure fedora-42-xfce_graph_01_bar_mean
2025-10-03 07:44:35,162 CRITICAL run: Failed creating graph 01-bar
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 353, in run
    method()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 623, in graph_01_bar
    self.bar_plot([self.dispvm_api_tests], supxlabel=caption)
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 551, in bar_plot
    raise length_exception[0]
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 445, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:44:35,174 INFO run: Generating graph 02-stage-stack
2025-10-03 07:44:35,344 CRITICAL run: Failed creating graph 02-stage-stack
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 353, in run
    method()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 660, in graph_02_stage_stack
    assert_items_length_match(tests, preload_tests)
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:44:35,347 INFO run: Generating graph 03-stage-dist
2025-10-03 07:44:35,475 INFO end: Saving figure fedora-42-xfce_graph_03_stage_dist_0_exec
2025-10-03 07:44:36,618 INFO end: Saving figure fedora-42-xfce_graph_03_stage_dist_1_clean
2025-10-03 07:44:37,601 INFO end: Saving figure fedora-42-xfce_graph_03_stage_dist_2_total
2025-10-03 07:44:38,449 INFO run: Completed graph 03-stage-dist
2025-10-03 07:44:38,449 INFO run: Generating graph 04-line
2025-10-03 07:44:38,621 INFO end: Saving figure fedora-42-xfce_graph_04_line_0_exec
2025-10-03 07:44:39,853 INFO end: Saving figure fedora-42-xfce_graph_04_line_1_clean
2025-10-03 07:44:41,157 INFO end: Saving figure fedora-42-xfce_graph_04_line_2_total
2025-10-03 07:44:43,048 INFO run: Completed graph 04-line
2025-10-03 07:44:43,048 INFO run: Generating graph 08-template
2025-10-03 07:44:43,222 WARNING bar_plot: Delaying length mismatch
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 445, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:44:43,242 INFO end: Saving figure fedora-42-xfce_graph_08_template_mean
2025-10-03 07:44:45,146 CRITICAL run: Failed creating graph 08-template
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 353, in run
    method()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 897, in graph_08_template
    self.bar_plot(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 551, in bar_plot
    raise length_exception[0]
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 445, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:44:45,147 INFO run: Generating graph 09-method
2025-10-03 07:44:45,367 INFO end: Saving figure fedora-42-xfce_graph_09_method_wconc_nogui_gui_mean
2025-10-03 07:44:46,983 INFO end: Saving figure fedora-42-xfce_graph_09_method_wconc_nogui_gui_total
2025-10-03 07:44:48,616 WARNING bar_plot: Delaying length mismatch
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 445, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:44:48,654 INFO end: Saving figure fedora-42-xfce_graph_09_method_nogui_gui_mean
2025-10-03 07:44:49,715 CRITICAL run: Failed creating graph 09-method
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 353, in run
    method()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 950, in graph_09_method
    self.bar_plot(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 551, in bar_plot
    raise length_exception[0]
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 445, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:44:49,716 INFO run: Finished generating graphs
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1067, in <module>
    main()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1063, in main
    graph.run()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 363, in run
    raise Exception(
Exception: Exception on graph(s): 01-bar,02-stage-stack,08-template,09-method
zsh: exit 1     ./tests/dispvm_perf_reader.py --log-level=INFO -n -o /tmp/test-nv56 -t  --
% ./tests/dispvm_perf_reader.py --log-level=INFO -n -o /tmp/test-nv56 -t debian-13-xfce -- /tmp/json
2025-10-03 07:44:57,703 INFO main: Loading data
2025-10-03 07:44:57,710 INFO main: Loaded data
2025-10-03 07:44:57,710 INFO __init__: Initializing
2025-10-03 07:44:57,712 INFO __init__: Initialized
2025-10-03 07:44:57,712 INFO run: Generating graph 00-specs
2025-10-03 07:44:57,890 INFO end: Saving figure debian-13-xfce_graph_00_specs
2025-10-03 07:44:58,009 INFO run: Completed graph 00-specs
2025-10-03 07:44:58,009 INFO run: Generating graph 01-bar
2025-10-03 07:44:58,119 INFO end: Saving figure debian-13-xfce_graph_01_bar_mean
2025-10-03 07:44:58,718 INFO run: Completed graph 01-bar
2025-10-03 07:44:58,720 INFO run: Generating graph 02-stage-stack
2025-10-03 07:44:58,856 INFO end: Saving figure debian-13-xfce_graph_02_stage_stack_0
2025-10-03 07:44:59,632 INFO end: Saving figure debian-13-xfce_graph_02_stage_stack_1
2025-10-03 07:45:00,647 INFO run: Completed graph 02-stage-stack
2025-10-03 07:45:00,647 INFO run: Generating graph 03-stage-dist
2025-10-03 07:45:00,804 INFO end: Saving figure debian-13-xfce_graph_03_stage_dist_0_exec
2025-10-03 07:45:01,620 INFO end: Saving figure debian-13-xfce_graph_03_stage_dist_1_clean
2025-10-03 07:45:02,345 INFO end: Saving figure debian-13-xfce_graph_03_stage_dist_2_total
2025-10-03 07:45:02,932 INFO run: Completed graph 03-stage-dist
2025-10-03 07:45:02,932 INFO run: Generating graph 04-line
2025-10-03 07:45:03,041 INFO end: Saving figure debian-13-xfce_graph_04_line_0_exec
2025-10-03 07:45:04,171 INFO end: Saving figure debian-13-xfce_graph_04_line_1_clean
2025-10-03 07:45:05,385 INFO end: Saving figure debian-13-xfce_graph_04_line_2_total
2025-10-03 07:45:06,300 INFO run: Completed graph 04-line
2025-10-03 07:45:06,300 INFO run: Generating graph 08-template
2025-10-03 07:45:06,644 WARNING bar_plot: Delaying length mismatch
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 445, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:45:06,666 INFO end: Saving figure debian-13-xfce_graph_08_template_mean
2025-10-03 07:45:07,700 CRITICAL run: Failed creating graph 08-template
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 353, in run
    method()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 897, in graph_08_template
    self.bar_plot(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 551, in bar_plot
    raise length_exception[0]
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 445, in bar_plot
    assert_items_length_match(
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 175, in assert_items_length_match
    raise AssertionError(
AssertionError: Data (2) and compared data (1) have different lengths. Maybe a test failed? Keys: ['fedora-42-xfce_dom0-dispvm-api', 'fedora-42-xfce_dom0-dispvm-gui-api'], ['fedora-42-xfce_dom0-dispvm-preload-gui-api']
2025-10-03 07:45:07,702 INFO run: Generating graph 09-method
2025-10-03 07:45:07,982 INFO end: Saving figure debian-13-xfce_graph_09_method_wconc_nogui_gui_mean
2025-10-03 07:45:09,193 INFO end: Saving figure debian-13-xfce_graph_09_method_wconc_nogui_gui_total
2025-10-03 07:45:10,707 INFO end: Saving figure debian-13-xfce_graph_09_method_nogui_gui_mean
2025-10-03 07:45:12,711 INFO end: Saving figure debian-13-xfce_graph_09_method_nogui_gui_total
2025-10-03 07:45:14,415 INFO end: Saving figure debian-13-xfce_graph_09_method_noconc_conc_mean
2025-10-03 07:45:15,892 INFO end: Saving figure debian-13-xfce_graph_09_method_noconc_conc_total
2025-10-03 07:45:17,482 INFO end: Saving figure debian-13-xfce_graph_09_method_wgui_noconc_conc_mean
2025-10-03 07:45:19,414 INFO end: Saving figure debian-13-xfce_graph_09_method_wgui_noconc_conc_total
2025-10-03 07:45:20,747 INFO run: Completed graph 09-method
2025-10-03 07:45:20,748 INFO run: Finished generating graphs
Traceback (most recent call last):
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1067, in <module>
    main()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 1063, in main
    graph.run()
  File "/home/user/src/contrib/qubes-core-admin/./tests/dispvm_perf_reader.py", line 363, in run
    raise Exception(
Exception: Exception on graph(s): 08-template
zsh: exit 1     ./tests/dispvm_perf_reader.py --log-level=INFO -n -o /tmp/test-nv56 -t  --

@marmarek marmarek merged commit 76b23c9 into QubesOS:main Oct 4, 2025
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants