-
-
Notifications
You must be signed in to change notification settings - Fork 108
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
qmemman use memory hotplug #506
Conversation
Codecov Report
@@ Coverage Diff @@
## master #506 +/- ##
==========================================
+ Coverage 67.14% 68.31% +1.17%
==========================================
Files 55 56 +1
Lines 11131 11157 +26
==========================================
+ Hits 7474 7622 +148
+ Misses 3657 3535 -122
Flags with carried forward coverage won't be shown. Click here to find out more.
|
66e715a
to
58e345b
Compare
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.
Grammer nit
516b3e6
to
6b3584e
Compare
OpenQA test summaryComplete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.2&build=2023101004-4.2&flavor=pull-requests New failures, excluding unstableCompared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.2&build=2023071104-4.2&flavor=update
Failed tests35 failures
Fixed failuresCompared to: https://openqa.qubes-os.org/tests/77326#dependencies 23 fixed
Unstable tests
|
beed5ae
to
59ced43
Compare
This may require some more work on the kernel side. VM started with initial 400MB (the default) cannot reach 4GB, it stops around 2924MB. |
79fa802
to
39e1b8c
Compare
39e1b8c
to
350ccd5
Compare
Should be fixed with QubesOS/qubes-core-libvirt#47 |
1280872
to
b47cc52
Compare
b47cc52
to
4f180b2
Compare
If VM supports memory hotplug, start it with maxmem=memory and then use memory hotplug to (potentially) increase its memory. The hotplug maxmem needs to be communicated to libvirt->libxl via <maxMemory> element, so Xen will reserve appropriate amount of memory for internal accounting (this currently is a patch in qubes package, not available upstream yet). Qmemman almost had all the needed parts - especially mem_set function already adjusts maxmem too. The missing part was letting it know actual maxmem - do that via xenstore (as qmemman uses xenstore heavily already). The use of memory hotplug can be enabled (or disabled) explicitly via 'memory-hotplug' feature, or detected based on 'memory-hotplug-supported' file in dom0-provided kernel dir, or 'supported-feature.memory-hotplug' for VM-provided kernel. Fixes QubesOS/qubes-issues#7956
This helps avoiding cyclic imports - some places (especially qubes.vm.qubesvm) needs only some of the parts).
There is no sense operating on fractional bytes here. In practice, it should be rounded to whole pages or even more, but that require few more changes.
Always return a list.
At least some tests are prerequisite for touching balancing algorithm.
4f180b2
to
38bb87f
Compare
When memory hotplug is used, Xen allocates metadata for the future hotplugged memory at the VM start time. Make sure there is enough free memory for that.
If VM supports memory hotplug, start it with maxmem=memory and then use
memory hotplug to (potentially) increase its memory. Qmemman almost had all
the needed parts - especially mem_set function already adjusts maxmem too.
The missing part was letting it know actual maxmem - do that via xenstore
(as qmemman uses xenstore heavily already).
The use of memory hotplug can be enabled (or disabled) explicitly via
'memory-hotplug' feature, or detected based on
'memory-hotplug-supported' file in dom0-provided kernel dir, or
'supported-feature.memory-hotplug' for VM-provided kernel.
Fixes QubesOS/qubes-issues#7956