[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [Xen-changelog] [xen-unstable] xend: pass-through: device state in xenstore may be null
On Wed, Jul 29, 2009 at 10:57:40AM +0800, Cui, Dexuan wrote: > Hi Tom and Simon, > The patch looks like a workaround to me. > Could you please explain under what condition the state may be null? > > On my host I don't meet with the issue, but I did hear the same issue on > some host and I would look into it when the host is available for me. Hi Dexuan, I agree that this looks a lot like a work-around. I was initially very reluctant to apply it. And I would still be very happy if someone could find a better solution. My analysis of the problem is as follows: What I now think is happening is that for some reason on your system when _createDevices() initialises the devices in xenstore using _createDevice() then end up with no state entry. Whereas on my system then end up with state 3=Initialised. It seems to me that actually the behaviour of your system is correct and my system is bogus. I really don't know why that is the case - are you using the stock xenstore implementation in C, or the Ocaml version? In any case, it seems to be that your original work-around was more or less correct. I'll just tweak it a bit to handle the case where cleanupDevices() is shuffling entries because one or more have been deleted and repost it. Ref: http://lists.xensource.com/archives/html/xen-devel/2009-07/msg01082.html > > Thanks, > -- Dexuan > > -----Original Message----- > From: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx > [mailto:xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Xen > patchbot-unstable > Sent: 2009?7?29? 0:11 > To: xen-changelog@xxxxxxxxxxxxxxxxxxx > Subject: [Xen-changelog] [xen-unstable] xend: pass-through: device state in > xenstore may be null > > # HG changeset patch > # User Keir Fraser <keir.fraser@xxxxxxxxxx> > # Date 1248795146 -3600 > # Node ID 0c7a560822d9d9516dfc83cef6fceec944fd97a8 > # Parent 6120f7a92d82ccb1747feffa1a72eb704e642fb0 > xend: pass-through: device state in xenstore may be null > > Signed-off-by: Tom Rotenberg <tom.rotenberg@xxxxxxxxx> > --- > tools/python/xen/xend/server/pciif.py | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletion(-) > > diff -r 6120f7a92d82 -r 0c7a560822d9 tools/python/xen/xend/server/pciif.py > --- a/tools/python/xen/xend/server/pciif.py Tue Jul 28 16:28:21 2009 +0100 > +++ b/tools/python/xen/xend/server/pciif.py Tue Jul 28 16:32:26 2009 +0100 > @@ -489,7 +489,11 @@ class PciController(DevController): > num_devs = int(self.readBackend(devid, 'num_devs')) > new_num_devs = 0 > for i in range(num_devs): > - state = int(self.readBackend(devid, 'state-%i' % i)) > + try: > + state = int(self.readBackend(devid, 'state-%i' % i)) > + except: > + state = xenbusState['Unknown'] > + > if state == xenbusState['Closing']: > # Detach I/O resources. > pci_dev = parse_pci_name(self.readBackend(devid, 'dev-%i' % > i)) > > _______________________________________________ > Xen-changelog mailing list > Xen-changelog@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-changelog _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |