[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] Crash during boot in Debian lenny default dom0 kernel (2.6.26-2-xen-686)
Hmm, this issue is caused because of changeset 18323, which extend the physdev_map_pirq strucutre. IIRC, this is mainly for SR-IOV support, that Xen can't get the MMIO BAR from the virtual device. However, dig into futher, I suspect if we need to change the definition of 'struct physdev_op'. Currently there is no maxium length limit, should it have something like the "pad" in struct xen_platform_op? One possibility is, if one new type physdev operation added, which extend the length of struct physdev_op, it may cause issue (like copy_from_guest in do_physdev_op failed randomly). But I have no idea of how to add the padd without breaking compatibility. --jyh @@ -136,10 +136,13 @@ struct physdev_map_pirq { /* IN or OUT */ int pirq; /* IN */ - struct { - int bus, devfn, entry_nr; - int msi; /* 0 - MSIX 1 - MSI */ - } msi_info; + int bus; + /* IN */ + int devfn; + /* IN */ + int entry_nr; + /* IN */ + uint64_t table_base; >-----Original Message----- >From: dunlapg@xxxxxxxxx [mailto:dunlapg@xxxxxxxxx] On Behalf Of George >Dunlap >Sent: Thursday, February 25, 2010 8:14 PM >To: Jan Beulich >Cc: Jiang, Yunhong; Sander Eikelenboom; xen-devel@xxxxxxxxxxxxxxxxxxx; Jeremy >Fitzhardinge >Subject: Re: [Xen-devel] Crash during boot in Debian lenny default dom0 kernel >(2.6.26-2-xen-686) > >(Jeremy: Discussing the default Lenny dom0 package, 2.6.26-2-xen--686 >crashing during boot if MSIs are available.) > >Sure enough, the structure it's using looks like this: > >struct physdev_map_pirq { > domid_t domid; > /* IN */ > int type; > /* IN */ > int index; > /* IN or OUT */ > int pirq; > /* IN */ > struct { > int bus, devfn, entry_nr; > int msi; /* 0 - MSIX 1 - MSI */ > } msi_info; >}; > >The code in question came from a patch called >suse-20080808143035.patch; reading the numbers as the timestamp "2008 >August 8" would seem to match up with the 3.3 dev lifecycle. > >Any suggestions for a simple fix I can try to push upstream? > > -George > >On Thu, Feb 25, 2010 at 11:46 AM, George Dunlap ><George.Dunlap@xxxxxxxxxxxxx> wrote: >> I'm looking at the debian source package for this kernel to see if I >> can sort out where it got the header from. >> >> Given that this is already in a major distribution, is there any way >> we can fail gracefully if someone's running this kernel? I'm not >> familiar enough with the MSI to know if this is possible, or what a >> good set of "sanity checks" would be for failing the hypercall. >> >> -George >> >> On Thu, Feb 25, 2010 at 10:56 AM, Jan Beulich <JBeulich@xxxxxxxxxx> wrote: >>>>>> George Dunlap <George.Dunlap@xxxxxxxxxxxxx> 25.02.10 11:48 >>> >>>>Is it possible that there's actually a bug in the compat code, and >>>>that table_base actually *was* set to (uint32_t)1? If a reasonable >>>>number for table_base is "1", giving it 64 bits in the structure would >>>>seem a bit like overkill... >>> >>> "1" definitely is not a reasonable value here. And it's also not the >>> compat code I'm sure - it is the kernel using a bad structure definition. >>> >>> Jan >>> >>> >>> _______________________________________________ >>> Xen-devel mailing list >>> Xen-devel@xxxxxxxxxxxxxxxxxxx >>> http://lists.xensource.com/xen-devel >>> >> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |