Created attachment 1381592 [details] email-thread-with-Ferdjaoui Description of problem: When hyper threading is enabled, the way emulator_threads_policy allocates the extra cpu resource for emulator is not optimal. The instance I use for testing is a 6-vcpu VM; before enable this emulator_threads_policy, I reserve 6 cpu (actually 6 threads since we enable hyper threading) in nova config, vcpu_pin_set=8,10,12,32,34,36 Now when we enable emulator_threads_policy, in stead of adding one more thread to this vcpu pin list in the nova config, I end up adding two more sibling threads (on the same core) vcpu_pin_set=8,10,12,16,32,34,36,40 So I ended up using 2 more threads, but only of them is used for emulator and the other thread is wasted.
My first question upon reading this was why don't you just reserve 7 CPUs instead of 8? vcpu_pin_set=8,10,12,16,32,34,36 However, upon reading the attached email, it seems that this is broken and returns the following message: No valid host was found. There are not enough hosts available. So configuring vcpu_pin_set to include cores and their sibling works, but not including at least one sibling breaks. Is this correct?
(In reply to Stephen Finucane from comment #1) > My first question upon reading this was why don't you just reserve 7 CPUs > instead of 8? > > vcpu_pin_set=8,10,12,16,32,34,36 > > However, upon reading the attached email, it seems that this is broken and > returns the following message: > > No valid host was found. There are not enough hosts available. > > So configuring vcpu_pin_set to include cores and their sibling works, but > not including at least one sibling breaks. Is this correct? Yes. reserving 7 CPUs didn't work for me.
There's a patch upstream for this now. It's rather lengthy, but I hope to get it merged sharpish all the same.
All of these patches have been merged now.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2019:0045