From: Simon Horman <horms@verge.net.au>
To: "Cui, Dexuan" <dexuan.cui@intel.com>
Cc: Tom Rotenberg <tom.rotenberg@gmail.com>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [Xen-changelog] [xen-unstable] xend: pass-through: device state in xenstore may be null
Date: Wed, 29 Jul 2009 14:06:26 +1000 [thread overview]
Message-ID: <20090729040623.GA32147@verge.net.au> (raw)
In-Reply-To: <EADF0A36011179459010BDF5142A457501CB84C66E@pdsmsx502.ccr.corp.intel.com>
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@lists.xensource.com [mailto:xen-changelog-bounces@lists.xensource.com] On Behalf Of Xen patchbot-unstable
> Sent: 2009?7?29? 0:11
> To: xen-changelog@lists.xensource.com
> Subject: [Xen-changelog] [xen-unstable] xend: pass-through: device state in xenstore may be null
>
> # HG changeset patch
> # User Keir Fraser <keir.fraser@citrix.com>
> # 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@gmail.com>
> ---
> 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@lists.xensource.com
> http://lists.xensource.com/xen-changelog
next prev parent reply other threads:[~2009-07-29 4:06 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200907281610.n6SGAcxZ010950@xenbits.xensource.com>
2009-07-29 2:57 ` [Xen-changelog] [xen-unstable] xend: pass-through: device state in xenstore may be null Cui, Dexuan
2009-07-29 4:06 ` Simon Horman [this message]
2009-07-29 4:19 ` Cui, Dexuan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090729040623.GA32147@verge.net.au \
--to=horms@verge.net.au \
--cc=dexuan.cui@intel.com \
--cc=tom.rotenberg@gmail.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.