[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 6/9] libxl_disk: Cut libxl_cdrom_insert into steps ..
Anthony PERARD writes ("[PATCH 6/9] libxl_disk: Cut libxl_cdrom_insert into steps .."): > This patch cut libxl_cdrom_insert into different step/function but there > are still called synchronously. A later patch will call them > asynchronously when QMP is involved. > > The json_lock has been replaced by the qmp_lock for protection against > concurrent changes to the cdrom. The json_lock is now only used when > reading/modifying the domain userdata. Your documentation for the qmp lock, taken roughly from my idea, is that the qmp lock covers modifying things via qmp. But I think here you use it for updates via xenstore ? I think this is OK because what matters is that any one thing is always covered by the same lock - and here the cdrom is is a "thing". But I think this means the commentary is wrong ? > - /* Note: CTX lock is already held at this point so lock hierarchy > - * is maintained. > - */ > - lock = libxl__lock_domain_userdata(gc, domid); > - if (!lock) { > + cis->qmp_lock = libxl__lock_domain_qmp(gc, domid); I think this is in fact precisely backwards. The lock hierarchy is *violated* here. The qmp lock is supposed to be outside the ctx lock. There will have to be an entrypoint for taking the qmp lock which takes a gc and which makes a callback later. AFAICT apart from these two aspects the rest of this code reorganisation is good. Thanks, Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |