Bug 696772

Summary: [RFE] Multithread libvirt operations
Product: Red Hat Enterprise Linux 6 Reporter: J.H.M. Dassen (Ray) <rdassen>
Component: libvirtAssignee: Eric Blake <eblake>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: medium    
Version: 6.1CC: dallan, eblake, rbinkhor
Target Milestone: rcKeywords: FutureFeature, Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
: 696774 (view as bug list) Environment:
Last Closed: 2011-04-15 15:29:29 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 696774    

Description J.H.M. Dassen (Ray) 2011-04-14 19:43:22 UTC
2. What is the nature and description of the request?

Currently libvirtd seems to be single threaded, so if libvirtd is migrating a
vm between hosts - any other commands seem to be queued. For minor commands,
'list' for example, this is almost imperceptible, however migrations etc cause
long stalls. Also only one thing can happen at a time, migrations etc must be
serialized.

   3. Why does the customer need this?

This will allow us to do bulk migrations in much shorter times, it will also
allow multiple requests to be serviced simultaneously. This is becoming more
important as our density is now over 200 vms and we are looking to reach beyond
300-400 with 512gig ram servers.

   4. How would the customer like to achieve this? 

Its easy enough to replicate, just ..
- start terminal1, start terminal2
- terminal1: virsh -c qemu+ssh://host.local/system
- terminal2: virsh -c qemu+ssh://host.local/system
- terminal1: migrate ... (etc)
- terminal2: list

   5. For each functional requirement listed in question 4, specify how Red Hat
and the customer can test to confirm the requirement is successfully
implemented.

[Not specified]

   6. Is there already an existing RFE upstream or in Red Hat bugzilla?

No
http://wiki.libvirt.org/page/TodoDaemonMultithreading

   7. How quickly does this need resolved?

RHEL 5.7

   8. Does this request meet the RHEL Inclusion criteria?

Yes

   9. List the affected packages :

libvirt

  10. Would the customer be able to assist in testing this functionality if
implemented?

Yes

Comment 2 Eric Blake 2011-04-15 15:28:37 UTC
(In reply to comment #0)
>    4. How would the customer like to achieve this? 
> 
> Its easy enough to replicate, just ..
> - start terminal1, start terminal2
> - terminal1: virsh -c qemu+ssh://host.local/system
> - terminal2: virsh -c qemu+ssh://host.local/system
> - terminal1: migrate ... (etc)
> - terminal2: list

This has worked since upstream libvirt 0.7.3 (Nov 2009).

>    6. Is there already an existing RFE upstream or in Red Hat bugzilla?
> 
> No
> http://wiki.libvirt.org/page/TodoDaemonMultithreading

That wiki page was written in Aug 2008, more than a year before it was implemented, and no one has bothered to take it down yet.  I'll take care of that after closing this bug.

> 
>    7. How quickly does this need resolved?
> 
> RHEL 5.7

RHEL 5.5 was the last RHEL release that used a libvirt build that pre-dated the upstream addition of concurrent qemu operations.