Bug 1327004

Summary: libvirt should error check if emulator threads are configured to run on set of isolated physical CPU's where vCPU's are already pinned
Product: Red Hat Enterprise Linux 7 Reporter: pagupta
Component: libvirtAssignee: Martin Kletzander <mkletzan>
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.2CC: chhu, dyuan, jishao, lhuang, rbalakri
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-21 11:16:31 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description pagupta 2016-04-14 03:43:18 UTC
Description of problem:

If management console configures "emulatorpin" libvirt option to same isolated physical CPU's on which vCPU's are already pinned, guest won't boot. Libvirt can validate this setting and if required can configure emulator threads to run on different physical CPU's.

This behaviour is visible in realtime KVM where vCPU's having realtime priority are run in dedicated isolated physical CPU's. Other non-realtime threads won't get chance to run resulting in non-execution of emulator threads, hence Guest won't boot up. 


Version-Release number of selected component (if applicable):
libvirt-1.2.17-13.el7_2.4.x86_64
qemu-kvm-rhev-2.3.0-31.el7_2.7.x86_64
kernel-rt-kvm-3.10.0-306.0.1.rt56.179.el7.x86_64

How reproducible:


Steps to Reproduce:
1. Isolate physical cores to run vCPU threads.
2. pin vCPU threads to these isolated cores with RT priority.
3. Configure emulator threads also run on same cores

Actual results:
Guest does not boot.

Expected results:
1] Throw error in logs for configuration validation.

2] Configure guest emulator thread to run on any of the non-isolated core and throw a warning, so that atleast guest boots.

Additional info:

Comment 2 Martin Kletzander 2016-04-19 06:18:26 UTC
Well, even though it does not boot, the configuration is valid from libvirt's point of view.  This is the problem in management layers above libvirt, particularly whoever is setting up the isolated cores.

Comment 3 pagupta 2016-04-19 08:41:06 UTC
Martin,

I already opened a BZ with Nova for this:1298079
I wanted suggestion if validation in 'libvirt' side for this can help irrespective of management layer.

Thanks,
Pankaj

Comment 4 Martin Kletzander 2016-06-21 11:16:31 UTC
(In reply to pagupta from comment #3)
I don't see how else we could "help" management layers to see this error, especially if it originates from them.  Since this configuration might be indistinguishable from a valid one from libvirt's POV, I'm closing it as NOTABUG.  Feel free to add more information in case I missed something.