Skip to content

Conversation

@ArrayBolt3
Copy link
Contributor

Pretty much as straightforward as it gets. Tested by installing in dom0 on Qubes R4.3, then rebooting, then creating a new qube based on the whonix-workstation-17 template. gui-events-max-delay feature was set to 100 as expected and keyboard input into apps within the qube had noticeable jitter as desired.

Fixes QubesOS/qubes-issues#9771

@ArrayBolt3
Copy link
Contributor Author

Discussed the approach taken here with Patrick, we'd like for this change to be effective for existing Whonix VMs as well. If this isn't merged before I get to it (probably later today), I'll likely force-push a new commit that achieves this.

@ArrayBolt3 ArrayBolt3 force-pushed the arraybolt3/event-buffering branch from 78c195f to 8dd5fdc Compare March 25, 2025 01:16
@ArrayBolt3
Copy link
Contributor Author

Fixed, now works for existing Whonix-Workstation VMs as well.

@qubesos-bot
Copy link

qubesos-bot commented Mar 26, 2025

OpenQA test summary

Complete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025040403-4.3&flavor=pull-requests

Test run included the following:

New failures, excluding unstable

Compared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025031804-4.3&flavor=update

  • system_tests_whonix

    • whonixcheck: unnamed test (unknown)

    • whonixcheck: wait_serial (wait serial expected)
      # wait_serial expected: qr/TBvsr-\d+-/...

    • whonixcheck: Failed (test died + timed out)
      # Test died: command 'qvm-run -ap whonix-gateway-17 'LC_ALL=C whon...

  • system_tests_splitgpg

  • system_tests_guivm_gui_interactive

    • simple_gui_apps: unnamed test (unknown)

    • simple_gui_apps: Failed (test died)
      # Test died: no candidate needle with tag(s) 'desktop' matched...

    • simple_gui_apps: unnamed test (unknown)

  • system_tests_qrexec

  • system_tests_kde_gui_interactive

    • gui_keyboard_layout: wait_serial (wait serial expected)
      # wait_serial expected: "echo -e '[Layout]\nLayoutList=us,de' | sud...

    • gui_keyboard_layout: Failed (test died)
      # Test died: command 'test "$(cd ~user;ls e1*)" = "$(qvm-run -p wor...

  • system_tests_audio

  • system_tests_qwt_win10@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/LDWI1-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...

  • system_tests_qwt_win10_seamless@hw13

    • windows_clipboard_and_filecopy: unnamed test (unknown)
    • windows_clipboard_and_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'windows-Explorer-empt...
  • system_tests_qwt_win11@hw13

    • windows_clipboard_and_filecopy: unnamed test (unknown)
    • windows_clipboard_and_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'windows-Notepad' matc...
  • system_tests_basic_vm_qrexec_gui_ext4

    • TC_20_NonAudio_whonix-gateway-17-pool: test_010_run_xterm (error)
      raise TimeoutError from exc_val... TimeoutError
  • system_tests_gui_tools@hw7

    • qui_widgets_notifications: wait_serial (wait serial expected)
      # wait_serial expected: qr/IZhbA-\d+-/...

    • qui_widgets_notifications: Failed (test died + timed out)
      # Test died: command 'qvm-run work true' timed out at /usr/lib/os-a...

  • system_tests_extra

Failed tests

45 failures
  • system_tests_whonix

    • whonixcheck: fail (unknown)
      Whonixcheck for anon-whonix failed...

    • whonixcheck: unnamed test (unknown)

    • whonixcheck: wait_serial (wait serial expected)
      # wait_serial expected: qr/TBvsr-\d+-/...

    • whonixcheck: Failed (test died + timed out)
      # Test died: command 'qvm-run -ap whonix-gateway-17 'LC_ALL=C whon...

  • system_tests_splitgpg

  • system_tests_guivm_gui_interactive

    • simple_gui_apps: unnamed test (unknown)

    • simple_gui_apps: Failed (test died)
      # Test died: no candidate needle with tag(s) 'desktop' matched...

    • simple_gui_apps: unnamed test (unknown)

  • system_tests_qrexec

  • system_tests_kde_gui_interactive

    • gui_keyboard_layout: wait_serial (wait serial expected)
      # wait_serial expected: "echo -e '[Layout]\nLayoutList=us,de' | sud...

    • gui_keyboard_layout: Failed (test died)
      # Test died: command 'test "$(cd ~user;ls e1*)" = "$(qvm-run -p wor...

  • system_tests_audio

  • system_tests_qwt_win10@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/LDWI1-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...

  • system_tests_qwt_win10_seamless@hw13

    • windows_clipboard_and_filecopy: unnamed test (unknown)
    • windows_clipboard_and_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'windows-Explorer-empt...
  • system_tests_qwt_win11@hw13

    • windows_clipboard_and_filecopy: unnamed test (unknown)
    • windows_clipboard_and_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'windows-Notepad' matc...
  • system_tests_basic_vm_qrexec_gui_ext4

    • TC_20_NonAudio_whonix-gateway-17-pool: test_010_run_xterm (error)
      raise TimeoutError from exc_val... TimeoutError
  • system_tests_gui_tools@hw7

    • qui_widgets_notifications: wait_serial (wait serial expected)
      # wait_serial expected: qr/IZhbA-\d+-/...

    • qui_widgets_notifications: Failed (test died + timed out)
      # Test died: command 'qvm-run work true' timed out at /usr/lib/os-a...

  • system_tests_extra

Fixed failures

Compared to: https://openqa.qubes-os.org/tests/132953#dependencies

12 fixed
  • system_tests_whonix

  • system_tests_basic_vm_qrexec_gui

  • system_tests_qrexec

  • system_tests_kde_gui_interactive

    • clipboard_and_web: unnamed test (unknown)

    • clipboard_and_web: Failed (test died)
      # Test died: no candidate needle with tag(s) 'qubes-website' matche...

    • clipboard_and_web: wait_serial (wait serial expected)
      # wait_serial expected: "lspci; echo 2E8vz-\$?-"...

  • system_tests_guivm_vnc_gui_interactive

    • gui_filecopy: unnamed test (unknown)
    • gui_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'files-work' matched...
  • system_tests_whonix@hw7

    • whonixcheck: fail (unknown)
      Whonixcheck for sys-whonix failed...

    • whonixcheck: unnamed test (unknown)

  • system_tests_suspend

    • suspend: unnamed test (unknown)
    • suspend: Failed (test died)
      # Test died: no candidate needle with tag(s) 'SUSPEND-FAILED' match...

Unstable tests

Performance Tests

Performance degradation:

11 performance degradations
  • debian-12-xfce_exec: 8.44 :small_red_triangle_up: ( previous job: 7.12, degradation: 118.55%)
  • whonix-workstation-17_socket-root: 8.97 :small_red_triangle_up: ( previous job: 8.13, degradation: 110.28%)
  • dom0_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 7790.00 :small_red_triangle_up: ( previous job: 10795.00, degradation: 72.16%)
  • dom0_varlibqubes_seq1m_q1t1_write 3:write_bandwidth_kb: 163856.00 :small_red_triangle_up: ( previous job: 184752.00, degradation: 88.69%)
  • dom0_varlibqubes_rnd4k_q32t1_read 3:read_bandwidth_kb: 44576.00 :small_red_triangle_up: ( previous job: 62195.00, degradation: 71.67%)
  • fedora-41-xfce_root_seq1m_q1t1_write 3:write_bandwidth_kb: 41229.00 :small_red_triangle_up: ( previous job: 87940.00, degradation: 46.88%)
  • fedora-41-xfce_private_seq1m_q8t1_read 3:read_bandwidth_kb: 310689.00 :small_red_triangle_up: ( previous job: 373957.00, degradation: 83.08%)
  • fedora-41-xfce_volatile_seq1m_q8t1_write 3:write_bandwidth_kb: 157414.00 :small_red_triangle_up: ( previous job: 179949.00, degradation: 87.48%)
  • fedora-41-xfce_volatile_seq1m_q1t1_read 3:read_bandwidth_kb: 246956.00 :small_red_triangle_up: ( previous job: 324737.00, degradation: 76.05%)
  • fedora-41-xfce_volatile_rnd4k_q32t1_write 3:write_bandwidth_kb: 2954.00 :small_red_triangle_up: ( previous job: 5672.00, degradation: 52.08%)
  • fedora-41-xfce_volatile_rnd4k_q1t1_write 3:write_bandwidth_kb: 781.00 :small_red_triangle_up: ( previous job: 1953.00, degradation: 39.99%)

Remaining performance tests:

61 tests
  • debian-12-xfce_exec-root: 29.43 :small_red_triangle_up: ( previous job: 28.65, degradation: 102.70%)
  • debian-12-xfce_socket: 8.98 :small_red_triangle_up: ( previous job: 8.60, degradation: 104.35%)
  • debian-12-xfce_socket-root: 8.82 :small_red_triangle_up: ( previous job: 8.52, degradation: 103.45%)
  • debian-12-xfce_exec-data-simplex: 71.73 :small_red_triangle_up: ( previous job: 71.62, degradation: 100.15%)
  • debian-12-xfce_exec-data-duplex: 62.94 🟢 ( previous job: 70.34, improvement: 89.48%)
  • debian-12-xfce_exec-data-duplex-root: 90.35 :small_red_triangle_up: ( previous job: 82.72, degradation: 109.23%)
  • debian-12-xfce_socket-data-duplex: 167.85 :small_red_triangle_up: ( previous job: 156.96, degradation: 106.94%)
  • fedora-41-xfce_exec: 9.25 🟢 ( previous job: 9.27, improvement: 99.85%)
  • fedora-41-xfce_exec-root: 61.53 :small_red_triangle_up: ( previous job: 61.51, degradation: 100.04%)
  • fedora-41-xfce_socket: 8.35 🟢 ( previous job: 8.63, improvement: 96.72%)
  • fedora-41-xfce_socket-root: 8.78 :small_red_triangle_up: ( previous job: 8.71, degradation: 100.86%)
  • fedora-41-xfce_exec-data-simplex: 66.77 🟢 ( previous job: 75.53, improvement: 88.40%)
  • fedora-41-xfce_exec-data-duplex: 73.91 :small_red_triangle_up: ( previous job: 71.56, degradation: 103.29%)
  • fedora-41-xfce_exec-data-duplex-root: 97.29 🟢 ( previous job: 109.13, improvement: 89.15%)
  • fedora-41-xfce_socket-data-duplex: 150.99 :small_red_triangle_up: ( previous job: 150.61, degradation: 100.25%)
  • whonix-gateway-17_exec: 6.41 🟢 ( previous job: 6.82, improvement: 94.03%)
  • whonix-gateway-17_exec-root: 42.52 :small_red_triangle_up: ( previous job: 40.43, degradation: 105.17%)
  • whonix-gateway-17_socket: 7.91 :small_red_triangle_up: ( previous job: 7.24, degradation: 109.30%)
  • whonix-gateway-17_socket-root: 8.19 :small_red_triangle_up: ( previous job: 7.65, degradation: 107.08%)
  • whonix-gateway-17_exec-data-simplex: 74.71 🟢 ( previous job: 78.32, improvement: 95.39%)
  • whonix-gateway-17_exec-data-duplex: 72.66 🟢 ( previous job: 76.65, improvement: 94.79%)
  • whonix-gateway-17_exec-data-duplex-root: 79.32 🟢 ( previous job: 88.52, improvement: 89.60%)
  • whonix-gateway-17_socket-data-duplex: 174.78 :small_red_triangle_up: ( previous job: 171.76, degradation: 101.76%)
  • whonix-workstation-17_exec: 7.40 🟢 ( previous job: 7.67, improvement: 96.46%)
  • whonix-workstation-17_exec-root: 56.38 🟢 ( previous job: 58.26, improvement: 96.76%)
  • whonix-workstation-17_socket: 8.30 :small_red_triangle_up: ( previous job: 8.19, degradation: 101.24%)
  • whonix-workstation-17_exec-data-simplex: 74.11 🟢 ( previous job: 74.99, improvement: 98.82%)
  • whonix-workstation-17_exec-data-duplex: 72.46 🟢 ( previous job: 72.71, improvement: 99.66%)
  • whonix-workstation-17_exec-data-duplex-root: 88.02 🟢 ( previous job: 99.82, improvement: 88.18%)
  • whonix-workstation-17_socket-data-duplex: 164.79 🟢 ( previous job: 169.50, improvement: 97.22%)
  • dom0_root_seq1m_q8t1_read 3:read_bandwidth_kb: 471694.00 :green_circle: ( previous job: 446963.00, improvement: 105.53%)
  • dom0_root_seq1m_q8t1_write 3:write_bandwidth_kb: 160046.00 :green_circle: ( previous job: 129298.00, improvement: 123.78%)
  • dom0_root_seq1m_q1t1_read 3:read_bandwidth_kb: 267221.00 :small_red_triangle_up: ( previous job: 294295.00, degradation: 90.80%)
  • dom0_root_seq1m_q1t1_write 3:write_bandwidth_kb: 157176.00 :green_circle: ( previous job: 95454.00, improvement: 164.66%)
  • dom0_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 104664.00 :green_circle: ( previous job: 79803.00, improvement: 131.15%)
  • dom0_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 6216.00 :green_circle: ( previous job: 6149.00, improvement: 101.09%)
  • dom0_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 5160.00 :green_circle: ( previous job: 4826.00, improvement: 106.92%)
  • dom0_varlibqubes_seq1m_q8t1_read 3:read_bandwidth_kb: 513253.00 :green_circle: ( previous job: 382273.00, improvement: 134.26%)
  • dom0_varlibqubes_seq1m_q8t1_write 3:write_bandwidth_kb: 257825.00 :green_circle: ( previous job: 250795.00, improvement: 102.80%)
  • dom0_varlibqubes_seq1m_q1t1_read 3:read_bandwidth_kb: 440948.00 :green_circle: ( previous job: 437636.00, improvement: 100.76%)
  • dom0_varlibqubes_rnd4k_q32t1_write 3:write_bandwidth_kb: 8136.00 :green_circle: ( previous job: 6479.00, improvement: 125.57%)
  • dom0_varlibqubes_rnd4k_q1t1_read 3:read_bandwidth_kb: 7614.00 :small_red_triangle_up: ( previous job: 7669.00, degradation: 99.28%)
  • dom0_varlibqubes_rnd4k_q1t1_write 3:write_bandwidth_kb: 4706.00 :small_red_triangle_up: ( previous job: 4903.00, degradation: 95.98%)
  • fedora-41-xfce_root_seq1m_q8t1_read 3:read_bandwidth_kb: 372231.00 :green_circle: ( previous job: 368309.00, improvement: 101.06%)
  • fedora-41-xfce_root_seq1m_q8t1_write 3:write_bandwidth_kb: 262735.00 :green_circle: ( previous job: 162081.00, improvement: 162.10%)
  • fedora-41-xfce_root_seq1m_q1t1_read 3:read_bandwidth_kb: 303847.00 :small_red_triangle_up: ( previous job: 318716.00, degradation: 95.33%)
  • fedora-41-xfce_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 88679.00 :green_circle: ( previous job: 82694.00, improvement: 107.24%)
  • fedora-41-xfce_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 3671.00 :green_circle: ( previous job: 3599.00, improvement: 102.00%)
  • fedora-41-xfce_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 8439.00 :small_red_triangle_up: ( previous job: 8485.00, degradation: 99.46%)
  • fedora-41-xfce_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 1104.00 :green_circle: ( previous job: 542.00, improvement: 203.69%)
  • fedora-41-xfce_private_seq1m_q8t1_write 3:write_bandwidth_kb: 199116.00 :green_circle: ( previous job: 170062.00, improvement: 117.08%)
  • fedora-41-xfce_private_seq1m_q1t1_read 3:read_bandwidth_kb: 348479.00 :green_circle: ( previous job: 334687.00, improvement: 104.12%)
  • fedora-41-xfce_private_seq1m_q1t1_write 3:write_bandwidth_kb: 61395.00 :small_red_triangle_up: ( previous job: 61534.00, degradation: 99.77%)
  • fedora-41-xfce_private_rnd4k_q32t1_read 3:read_bandwidth_kb: 84358.00 :green_circle: ( previous job: 80283.00, improvement: 105.08%)
  • fedora-41-xfce_private_rnd4k_q32t1_write 3:write_bandwidth_kb: 3991.00 :green_circle: ( previous job: 2215.00, improvement: 180.18%)
  • fedora-41-xfce_private_rnd4k_q1t1_read 3:read_bandwidth_kb: 8128.00 :green_circle: ( previous job: 7540.00, improvement: 107.80%)
  • fedora-41-xfce_private_rnd4k_q1t1_write 3:write_bandwidth_kb: 2156.00 :green_circle: ( previous job: 1130.00, improvement: 190.80%)
  • fedora-41-xfce_volatile_seq1m_q8t1_read 3:read_bandwidth_kb: 357875.00 :small_red_triangle_up: ( previous job: 369868.00, degradation: 96.76%)
  • fedora-41-xfce_volatile_seq1m_q1t1_write 3:write_bandwidth_kb: 67285.00 :green_circle: ( previous job: 17567.00, improvement: 383.02%)
  • fedora-41-xfce_volatile_rnd4k_q32t1_read 3:read_bandwidth_kb: 82479.00 :green_circle: ( previous job: 79021.00, improvement: 104.38%)
  • fedora-41-xfce_volatile_rnd4k_q1t1_read 3:read_bandwidth_kb: 8078.00 :green_circle: ( previous job: 7867.00, improvement: 102.68%)

@marmarek
Copy link
Member

PipelineRetry

@marmarek
Copy link
Member

PipelineRetry

@marmarek
Copy link
Member

I think you want to handle also domain-add event, otherwise new qubes will get the event buffering enabled only after qubesd restart (usually system restart).

@ArrayBolt3
Copy link
Contributor Author

@marmarek Oof, didn't realize that. Thanks for pointing that out, will fix.

@ArrayBolt3 ArrayBolt3 force-pushed the arraybolt3/event-buffering branch from 8dd5fdc to 24e5c7a Compare April 2, 2025 23:50
@ArrayBolt3
Copy link
Contributor Author

Fixed now.

@marmarek marmarek merged commit 24e5c7a into QubesOS:main Apr 6, 2025
2 of 3 checks passed
@ArrayBolt3 ArrayBolt3 deleted the arraybolt3/event-buffering branch June 10, 2025 00:20
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.

Enable X11 event buffering in Whonix by default

3 participants