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 <[email protected]>
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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to