libvirt: add hugepages support for Power
Power architectures (arch.PPC64LE and arch.PPC64) support huge pages and transparent huge pages. This patch just enables it on nova libvirt driver. A reno note was also added to track this new feature. This change also enables the test_does_want_hugepages unit test to run on the architectures that support huge pages. Closes-bug: #1617081 Change-Id: I22bc57a0b244667c716a54ca37c175f26a87a1e9
This commit is contained in:
parent
a5cc0be5c6
commit
abc24acfa1
@ -2909,6 +2909,12 @@ class LibvirtConnTestCase(test.NoDBTestCase):
|
|||||||
return_value=True)
|
return_value=True)
|
||||||
@mock.patch.object(host.Host, "get_capabilities")
|
@mock.patch.object(host.Host, "get_capabilities")
|
||||||
def test_does_want_hugepages(self, mock_caps, mock_hp, mock_numa):
|
def test_does_want_hugepages(self, mock_caps, mock_hp, mock_numa):
|
||||||
|
for each_arch in [arch.I686, arch.X86_64, arch.PPC64LE, arch.PPC64]:
|
||||||
|
self._test_does_want_hugepages(
|
||||||
|
mock_caps, mock_hp, mock_numa, each_arch)
|
||||||
|
|
||||||
|
def _test_does_want_hugepages(self, mock_caps, mock_hp, mock_numa,
|
||||||
|
architecture):
|
||||||
self.flags(reserved_huge_pages=[
|
self.flags(reserved_huge_pages=[
|
||||||
{'node': 0, 'size': 2048, 'count': 128},
|
{'node': 0, 'size': 2048, 'count': 128},
|
||||||
{'node': 1, 'size': 2048, 'count': 1},
|
{'node': 1, 'size': 2048, 'count': 1},
|
||||||
@ -2926,7 +2932,7 @@ class LibvirtConnTestCase(test.NoDBTestCase):
|
|||||||
caps = vconfig.LibvirtConfigCaps()
|
caps = vconfig.LibvirtConfigCaps()
|
||||||
caps.host = vconfig.LibvirtConfigCapsHost()
|
caps.host = vconfig.LibvirtConfigCapsHost()
|
||||||
caps.host.cpu = vconfig.LibvirtConfigCPU()
|
caps.host.cpu = vconfig.LibvirtConfigCPU()
|
||||||
caps.host.cpu.arch = "x86_64"
|
caps.host.cpu.arch = architecture
|
||||||
caps.host.topology = self._fake_caps_numa_topology()
|
caps.host.topology = self._fake_caps_numa_topology()
|
||||||
|
|
||||||
mock_caps.return_value = caps
|
mock_caps.return_value = caps
|
||||||
|
@ -5113,7 +5113,7 @@ class LibvirtDriver(driver.ComputeDriver):
|
|||||||
def _has_hugepage_support(self):
|
def _has_hugepage_support(self):
|
||||||
# This means that the host can support multiple values for the size
|
# This means that the host can support multiple values for the size
|
||||||
# field in LibvirtConfigGuestMemoryBackingPage
|
# field in LibvirtConfigGuestMemoryBackingPage
|
||||||
supported_archs = [arch.I686, arch.X86_64]
|
supported_archs = [arch.I686, arch.X86_64, arch.PPC64LE, arch.PPC64]
|
||||||
caps = self._host.get_capabilities()
|
caps = self._host.get_capabilities()
|
||||||
return ((caps.host.cpu.arch in supported_archs) and
|
return ((caps.host.cpu.arch in supported_archs) and
|
||||||
self._host.has_min_version(MIN_LIBVIRT_HUGEPAGE_VERSION,
|
self._host.has_min_version(MIN_LIBVIRT_HUGEPAGE_VERSION,
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Added hugepage support for POWER architectures.
|
Loading…
Reference in New Issue
Block a user