Small pages memory are not take into account when not explicitly requested
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Confirmed
|
Medium
|
Unassigned |
Bug Description
Guests using small pages (as default) on compute node are not take into account when calculating available small pages memory [1] - Consequence when booting instance with an explicitly small pages request the compute of available resources is corrupted.
In order to fix the issue two solutions are able.
1/
Associate to every guest a NUMA topology and set the default page_size to MEMPAGES_SMALL when nothing has been requested by user. ** This also implies when using libvirt the default option of virt-type should be KVM **
A small couple of change are needed in hardware.py:
- make the method 'numa_get_
- make the method ' _numa_get_
2/
Disallow to request a memory page size small, means remove all of the code which handle that case since the information reported to the host are not correctly updated and let the default behavior handle that case.
[1] http://
tags: | added: numa |
Changed in nova: | |
status: | New → Confirmed |
Changed in nova: | |
assignee: | nobody → aishwarya (bkaishwarya) |
Changed in nova: | |
assignee: | aishwarya (bkaishwarya) → nobody |
Changed in nova: | |
assignee: | nobody → Jing Zhang (jing.zhang.nokia) |
Changed in nova: | |
assignee: | Jing Zhang (jing.zhang.nokia) → nobody |
status: | In Progress → Confirmed |
So some comments regarding 1/
* I am not sure if we want to make NUMA topology (even if single cell) exposed to every instance without a way to turn it off. There may be guest OS concerns around that for the libvirt case.
* The NUMA information makes no sense at this point for other drivers, some of which may never implement it.
Based on that it seems to me that a cleaner approach is to keep the NUMA qualities of instances optional
2/ Seems like a better approach to me - as for how to keep the smallest page size information in sync - two things come to mind: either don't report the smalles size at all, or make sure that resource tracker considers it and tracks it even for non-numa instances. I slightly prefer the first option