-
-
Notifications
You must be signed in to change notification settings - Fork 116
Set less memory to preload before pausing #702
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #702 +/- ##
==========================================
- Coverage 70.82% 70.53% -0.30%
==========================================
Files 61 61
Lines 13473 13546 +73
==========================================
+ Hits 9542 9554 +12
- Misses 3931 3992 +61
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
qubes/tools/qmemmand.py
Outdated
resp = "FAIL" | ||
domid, memory = str(data_args[0]), int(data_args[1]) | ||
# TODO: ben: create the function to set memory to a domain. | ||
if system_state.mem_set(domid, memory): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what was the issue with using system_state.mem_set
? Using under if
looks weird, as it always returns None, but otherwise looks correct?
What you might need to add is waiting for the domain to actually balloon down to the requested size - possibly with a simple loop that calls refresh_mem_actual
and checks mem_actual, with some timeout.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't test with mem_set()
because I saw that do_balloon
was calling it with a loop, so mem_set()
was there to give me hint of what to look next, I didn't test with only it.
I reused do_balloon()
in order to avoid code duplication, but a lot of functions there use the class object self.dom_dict
and that might cause some interference. I will try a new function with a simple loop, do_balloon()
might indeed be overkill for a single domain changing values. I thought the xenfree value was necessary to be sure the memory was returned to Xen as well as reusing the waiting time and transfer speed to check again.
8d86200
to
c514c51
Compare
The simplified loop helped. It is working! Preloaded 10 qubes at once and every qube has low memory assigned to it. Trying to start a "heavy" application such as Firefox doesn't crash. The use of a dictionary is to allow for multiple qubes to be setup at once: "0:0 1:0 2:0 3:0", but I haven't find a use case for that yet as preloads may be on different stages of preloading. If you think it complicates, I will remove it. |
c514c51
to
1032e83
Compare
PipelineRetry |
OpenQA test summaryComplete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025071903-4.3&flavor=pull-requests Test run included the following:
New failures, excluding unstableCompared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025061004-4.3&flavor=update
Failed tests10 failures
Fixed failuresCompared to: https://openqa.qubes-os.org/tests/142375#dependencies 10 fixed
Unstable testsPerformance TestsPerformance degradation:9 performance degradations
Remaining performance tests:63 tests
|
This needs a rebase now |
1032e83
to
0d0d716
Compare
For: QubesOS/qubes-issues#1512
For: QubesOS/qubes-issues#9917