[libvirt] PATCH: 14/25: Xen thread safety

Daniel Veillard veillard at redhat.com
Fri Jan 16 13:42:51 UTC 2009


On Thu, Jan 15, 2009 at 05:29:12PM +0000, Richard W.M. Jones wrote:
> On Tue, Jan 13, 2009 at 05:44:21PM +0000, Daniel P. Berrange wrote:
> > This patch makes the various Xen drivers threadsafe by adding a
> > mutex lock on the xenUnifiedPrivatePtr object. The XenD driver
> > does not really need much locking, since it usually just calls
> > out to XenD. Likewise the Xen driver just makes hypercalls. Locks
> > are needed for libxenstore access, and the xm/inotify drivers
> > since they have shared state
> > 
> >  src/proxy_internal.c  |  173 ++++++++++++++++-----------------
> >  src/xen_inotify.c     |   25 +++-
> >  src/xen_internal.c    |   29 +++--
> >  src/xen_unified.c     |  176 +++++++++++++++++++++-------------
> >  src/xen_unified.h     |   36 +++++--
> >  src/xend_internal.c   |   37 ++++++-
> >  src/xm_internal.c     |  256 +++++++++++++++++++++++++++++++++-----------------
> >  src/xs_internal.c     |  130 +++++++++++++++++++------
> >  src/xs_internal.h     |    7 -
> >  tests/sexpr2xmltest.c |   19 +++
> >  10 files changed, 575 insertions(+), 313 deletions(-)
> > +  /* Many puppies died to bring you this code. */
> 
> This code makes my head spin ...  Looks reasonable, but to be honest I

  ditto

> would _only_ trust automated verification that the locks are being
> acquired and dropped correctly, and the structure elements are only
> being used while locks are acquired.  The CIL stuff is doing that?

  CIL didn't detected all locking bugs in the previous release :-)
  So far locking bugs seems to have been detected fairly fast, basically
the daemon becomes unresponsive and then hooking up a debugger helps
finding the stuff out. The problem is that I'm afraid the xen drivers
are less tested and have more complex code paths than for the other
hypervisors.
  Still I guess the best is to commit and test as widely as possible
is the best way to feel confident about the change,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list