perf(qubes-hcl-report): cache the yaml output until the next reboot - #877
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #877 +/- ##
=======================================
Coverage 70.70% 70.70%
=======================================
Files 61 61
Lines 14315 14315
=======================================
Hits 10121 10121
Misses 4194 4194
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
OpenQA test summaryComplete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2026082703-devel&flavor=pull-requests Test run included the following:
Upload failures
New failures, excluding unstableCompared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2026050504-devel&flavor=update
Failed tests10 failures
Fixed failuresCompared to: https://openqa.qubes-os.org/tests/176874#dependencies 31 fixed
Unstable testsDetails
Performance TestsPerformance degradation:17 performance degradations
Remaining performance tests:94 tests
|
| then | ||
| if [[ "$(cat "$CACHE_BOOT_ID_FILE" 2>/dev/null)" = "$BOOT_ID" ]] && | ||
| [[ -s "$CACHE_FILE" ]] | ||
| # tested before reading, so that having no cache yet does not report an |
There was a problem hiding this comment.
I added this comment because it was not (immediately) clear for me.
Collecting the data shells out to lspci, dmidecode, xl info and xl dmesg. Callers that only want the yaml output pay for that on every run, for example Qubes Global Config and
tests/dispvm_perf.py.Everything in the yaml output is fixed for the lifetime of a boot, so it is now cached under the user's cache directory keyed on
/proc/sys/kernel/random/boot_id.Only
--yaml-onlyis cached. The support files bundle rawlspci -nnvkoutput, which does change within a boot, eg when a PCI device is attached to a qube and bound to pciback. A report collected with an incompletexl dmesgring buffer is not cached either, since its virtualization fields come out empty.--no-cachecollects the data again.QubesOS/qubes-issues#11081