This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Problem about RLock when starting VMs in parallel

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Problem about RLock when starting VMs in parallel
From: Rae <r.h.shute@xxxxxxx>
Date: Sun, 7 Nov 2010 23:42:48 +0800 (CST)
Delivery-date: Sun, 07 Nov 2010 07:43:44 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx


Here is a question about starting of subsequent VMs.

In the function of "start" from the class of XendDomain which is in the module of xen.xend.XendDomain, there's a pair of operations acquiring and releasing threading.RLock, which is like following:

    def domain_start(self, domid, start_paused = True):




The confine of the locked area is quite large, in fact it covers nearly all the function, which would cause most time in the serial scene when I actually call the start interface subsequently in hope that VMs would be parallel started.

The first question is:

I am wondering why here is so wide a lock for the thread, which would also block other operations :define, delete for instance.

When I tried to remove the lock, and started 10 VMs subsequently, following error occured:

libvir: Xen Daemon error : POST operation failed: xend_post: error from xen daemon: (xend.err "(3, 'No such process')"), exact error number is 500

The last sentence is printed by the debug information which is added by myself in order to catch the exact error number from http.py


Now here is the second question which is in fact derived from the first one:

Why these error messages? I can not find the original reason from the logs, neither syslog nor xend.log .


I would appreciate you so much if any help be given. Thanks a lot!

Xen-devel mailing list
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] Problem about RLock when starting VMs in parallel, Rae <=