yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #71932
[Bug 1746393] Re: 'cpu_thread_policy' impacts on emulator threads
Reviewed: https://review.openstack.org/538700
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=113724859a8f1dc3f004636e8c016d060409a1f6
Submitter: Zuul
Branch: master
commit 113724859a8f1dc3f004636e8c016d060409a1f6
Author: Tetsuro Nakamura <nakamura.tetsuro@xxxxxxxxxxxxx>
Date: Sun Jan 28 16:39:33 2018 +0900
Not use thread alloc policy for emulator thread
When CPUEmulatorThreadsPolicy and CPUThreadAllocationPolicy were both
set to isolate, pcpus for emulator threads were also allocated
according to the thread isolation policy. (i.e. only chosen from a
siblings_set where full threads are available.)
For optimization purposes, this patch allows emulator threads and the
VM's I/O threads to be collocated on the same sibling sets of pCPUs
even when both I/O thread and emulator thread are set to "isolate".
Note that this patch adds a new function of _get_reserved(), where
cpus are reserved for I/O thread and emulator thread, pulling the part
out from _get_pinning().
Change-Id: I23a5142398900873364bb07d8e91595d02a7a13d
Closes-Bug: #1746393
** Changed in: nova
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1746393
Title:
'cpu_thread_policy' impacts on emulator threads
Status in OpenStack Compute (nova):
Fix Released
Bug description:
In bug#1744965(https://bugs.launchpad.net/nova/+bug/1744965), it is reported that when emulator_threads_policy=isolate and cpu_threads_policy=prefer(default) is not optimal.
For example, when the host is configured as below and a VM requests 2 vCPUs with emulator_threads_policy=isolate, the ideal result is getting the vCPUs from (CPU#0, CPU#2) and reserving CPU#1 for emulator_threads. But the actual result is no valid host, which means there are not enough resources available.
* host configuration
(Note CPU #3 is missing because it is excluded by 'vcpu_pin_set' in nova.conf)
----------
socket 0
core 0
thread 0 (CPU #0)
thread 1 (CPU #2)
core 1
thread 0 (CPU #1)
----------
This bug report of #1746393 reports that the same thing can be said about emulator_threads_policy=isolate and *cpu_threads_policy=isolate* case.
For example, when the host is configured as above and a VM requests 1 vCPU with cpu_threads_policy=isolate, the ideal result is getting the vCPU from CPU#0 (with CPU#2 for isolation purpose) and reserving CPU#1 for emulator_threads. But the actual result is no valid host, which means there are not enough resources available.
This should be fixed in a different way from bug#1744965, because
the code path for getting and reserving host's pCPUs differs between
cpu_threads_policy=isolate case and cpu_threads_policy=prefer case.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1746393/+subscriptions
References