Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Xen: Devel

LSI SAS2008 Option Rom Failure

 

 

First page Previous page 1 2 Next page Last page  View All Xen devel RSS feed   Index | Next | Previous | View Threaded


Ian.Campbell at citrix

Jul 31, 2012, 2:04 AM

Post #26 of 48 (169 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Tue, 2012-07-31 at 08:35 +0100, David Erickson wrote:
> Just got back in town, following up on the prior discussion. I
> successfully compiled the latest code (25688 and qemu upstream
> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
> problems during initialization of the card in the guest, in particular
> the unsupported delivery mode 3 which seems to cause interrupt related
> problems during init.

The log has "(XEN) vmsi.c:108:d32767 Unsupported delivery mode 3"

mode 3 in this context appears to be dest__reserved_1, which corresponds
to the IOAPIC datasheet I'm looking at[0], which shows that DELMOD=3 is
reserved.

The specification update[1] doesn't seem to add anything in this regard.

So either I've missed another update, we are mis-emulating something
resulting in an invalid mode or Linux/the LSI ROM are using an
unspecified IOAPIC mode. Perhaps Jan or Andrew have some idea which it
is.

[0] http://www.intel.com/design/chipsets/datashts/290566.htm
[1] http://www.intel.com/design/chipsets/specupdt/290710.htm

> I've again attached the qemu-dm-log, and xl
> dmesg log files, and additionally screenshots of the guest dmesg and
> also for comparison starting the same livecd natively on the box.
>
> As a second question, I am not getting a NIC inside the guest for
> network access when using QEMU upstream, I see vif's added to my host
> machine:
>
> vif1.0 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
> UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:32
> RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
>
> vif1.0-emu Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
> inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
> UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:500
> RX bytes:0 (0.0 B) TX bytes:1272 (1.2 KB)
>
> But nothing corresponding inside the guest. My guest's config file has:
> vif = ['bridge=xenbr0, type=ioemu']

Do you have the necessary driver inside the guest? IIRC the default
emulated NIC is the rtl8139.

It looks like you've asked for EMU only so I'm not sure why you have got
a vif interface, that might be a bug.

You should also check that your domU kernel is not unplugging the
emulated NIC -- there should be log messages to that effect if it is. I
don't recall which guest kernel you have but you could try
"xen_emul_unplug=never" on the command line.

>
> Any help appreciated on both questions.
>
> Thanks,
> David
>
>
> On Thu, Jul 19, 2012 at 8:27 AM, David Erickson <halcyon1981 [at] gmail> wrote:
> > That may be the problem, to make sure my environment matched ivo's for
> > compiling I was using rev 25567 which is prior to that commit. We're
> > headed out of town right now but I will try the tip when I get back
> > and see if it solves that problem. I'll also try sending a NIC
> > through per Ian's suggestion. Also another quick question, it seems
> > that upstream changed the way that NICs are assigned at create time, I
> > was seeing VIF's (ala XenServer style) created in my ifconfig but
> > seemingly not properly attached to my VM, or at least it wasn't
> > DHCP'ing correctly. Is there different syntax or something I need to
> > change network wise when using qemu upstream?
> >
> > Thanks all for the help!
> > David
> >
> > On Thu, Jul 19, 2012 at 5:00 AM, Stefano Stabellini
> > <stefano.stabellini [at] eu> wrote:
> >> On Thu, 19 Jul 2012, Ian Campbell wrote:
> >>> Yes, starting with Ubuntu is a good idea.
> >>>
> >>> The last line of the dmesg is:
> >>> (XEN) vmsi.c:108:d32767 Unsupported delivery mode 3
> >>> which sounds interesting, might be something Stefano knows about?
> >>
> >> What is your Xen version?
> >> Make sure you have the commit:
> >>
> >> Author: Stefano Stabellini <stefano.stabellini [at] eu>
> >> Date: Tue Jul 3 13:39:01 2012 +0100
> >>
> >> xen: event channel remapping for emulated MSIs
> >>
> >> Linux PV on HVM guests remap all the MSIs onto event channels,
> >> including MSIs corresponding to QEMU's emulated devices. This patch
> >> makes sure that we handle correctly the case of emulated MSI that have
> >> been remapped, sending a pirq to the guest instead.
> >>
> >> Signed-off-by: Stefano Stabellini <stefano.stabellini [at] eu>
> >> Tested-by: Deep Debroy <ddebroy [at] gmail>
> >> Committed-by: Keir Fraser <keir [at] xen>



_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


JBeulich at suse

Jul 31, 2012, 2:35 AM

Post #27 of 48 (164 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

>>> On 31.07.12 at 11:04, Ian Campbell <Ian.Campbell [at] citrix> wrote:
> On Tue, 2012-07-31 at 08:35 +0100, David Erickson wrote:
>> Just got back in town, following up on the prior discussion. I
>> successfully compiled the latest code (25688 and qemu upstream
>> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
>> problems during initialization of the card in the guest, in particular
>> the unsupported delivery mode 3 which seems to cause interrupt related
>> problems during init.
>
> The log has "(XEN) vmsi.c:108:d32767 Unsupported delivery mode 3"
>
> mode 3 in this context appears to be dest__reserved_1, which corresponds
> to the IOAPIC datasheet I'm looking at[0], which shows that DELMOD=3 is
> reserved.
>
> The specification update[1] doesn't seem to add anything in this regard.
>
> So either I've missed another update, we are mis-emulating something
> resulting in an invalid mode or Linux/the LSI ROM are using an
> unspecified IOAPIC mode. Perhaps Jan or Andrew have some idea which it
> is.

At a first glance I would assume this to be the same problem
that was recently fixed for running with qemu-traditional by
Stefano. See http://xenbits.xen.org/gitweb/?p=staging/qemu-xen-unstable.git;a=commit;h=ce6d9b1b2f9c6a5ca2500e03d0ef8b453bc4bf53
(and the earlier thread leading there; didn't check whether this
applies to upstream qemu at all). Later he also provided a full
patch, but I don't even see this in our traditional tree, yet -
Ian(J)?

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


Ian.Campbell at citrix

Jul 31, 2012, 2:41 AM

Post #28 of 48 (173 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Tue, 2012-07-31 at 10:35 +0100, Jan Beulich wrote:
> >>> On 31.07.12 at 11:04, Ian Campbell <Ian.Campbell [at] citrix> wrote:
> > On Tue, 2012-07-31 at 08:35 +0100, David Erickson wrote:
> >> Just got back in town, following up on the prior discussion. I
> >> successfully compiled the latest code (25688 and qemu upstream
> >> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
> >> problems during initialization of the card in the guest, in particular
> >> the unsupported delivery mode 3 which seems to cause interrupt related
> >> problems during init.
> >
> > The log has "(XEN) vmsi.c:108:d32767 Unsupported delivery mode 3"
> >
> > mode 3 in this context appears to be dest__reserved_1, which corresponds
> > to the IOAPIC datasheet I'm looking at[0], which shows that DELMOD=3 is
> > reserved.
> >
> > The specification update[1] doesn't seem to add anything in this regard.
> >
> > So either I've missed another update, we are mis-emulating something
> > resulting in an invalid mode or Linux/the LSI ROM are using an
> > unspecified IOAPIC mode. Perhaps Jan or Andrew have some idea which it
> > is.
>
> At a first glance I would assume this to be the same problem
> that was recently fixed for running with qemu-traditional by
> Stefano. See http://xenbits.xen.org/gitweb/?p=staging/qemu-xen-unstable.git;a=commit;h=ce6d9b1b2f9c6a5ca2500e03d0ef8b453bc4bf53
> (and the earlier thread leading there; didn't check whether this
> applies to upstream qemu at all). Later he also provided a full
> patch, but I don't even see this in our traditional tree, yet -
> Ian(J)?

Isn't the link above our traditional tree?

Anyhow, it's a plausible theory.

David, as a workaround I think you can add "pci_msitranslate=0" to the
guest configuration file.

Ian.
>
> Jan
>



_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


JBeulich at suse

Jul 31, 2012, 2:47 AM

Post #29 of 48 (165 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

>>> On 31.07.12 at 11:41, Ian Campbell <Ian.Campbell [at] citrix> wrote:
> On Tue, 2012-07-31 at 10:35 +0100, Jan Beulich wrote:
>> >>> On 31.07.12 at 11:04, Ian Campbell <Ian.Campbell [at] citrix> wrote:
>> > On Tue, 2012-07-31 at 08:35 +0100, David Erickson wrote:
>> >> Just got back in town, following up on the prior discussion. I
>> >> successfully compiled the latest code (25688 and qemu upstream
>> >> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
>> >> problems during initialization of the card in the guest, in particular
>> >> the unsupported delivery mode 3 which seems to cause interrupt related
>> >> problems during init.
>> >
>> > The log has "(XEN) vmsi.c:108:d32767 Unsupported delivery mode 3"
>> >
>> > mode 3 in this context appears to be dest__reserved_1, which corresponds
>> > to the IOAPIC datasheet I'm looking at[0], which shows that DELMOD=3 is
>> > reserved.
>> >
>> > The specification update[1] doesn't seem to add anything in this regard.
>> >
>> > So either I've missed another update, we are mis-emulating something
>> > resulting in an invalid mode or Linux/the LSI ROM are using an
>> > unspecified IOAPIC mode. Perhaps Jan or Andrew have some idea which it
>> > is.
>>
>> At a first glance I would assume this to be the same problem
>> that was recently fixed for running with qemu-traditional by
>> Stefano. See
> http://xenbits.xen.org/gitweb/?p=staging/qemu-xen-unstable.git;a=commit;h=ce6
> d9b1b2f9c6a5ca2500e03d0ef8b453bc4bf53
>> (and the earlier thread leading there; didn't check whether this
>> applies to upstream qemu at all). Later he also provided a full
>> patch, but I don't even see this in our traditional tree, yet -
>> Ian(J)?
>
> Isn't the link above our traditional tree?

Yes, as I wrote. The implication was that this and/or the more
complete fix may need porting to the upstream one.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


anthony.perard at citrix

Jul 31, 2012, 3:08 AM

Post #30 of 48 (172 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Tue, Jul 31, 2012 at 10:47 AM, Jan Beulich <JBeulich [at] suse> wrote:
>
> Yes, as I wrote. The implication was that this and/or the more
> complete fix may need porting to the upstream one.

I did not upstream the code for the MSI translation to QEMU upstream.
So nothing to fix :).

--
Anthony PERARD

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


stefano.stabellini at eu

Jul 31, 2012, 3:16 AM

Post #31 of 48 (165 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Tue, 31 Jul 2012, Jan Beulich wrote:
> >>> On 31.07.12 at 11:04, Ian Campbell <Ian.Campbell [at] citrix> wrote:
> > On Tue, 2012-07-31 at 08:35 +0100, David Erickson wrote:
> >> Just got back in town, following up on the prior discussion. I
> >> successfully compiled the latest code (25688 and qemu upstream
> >> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
> >> problems during initialization of the card in the guest, in particular
> >> the unsupported delivery mode 3 which seems to cause interrupt related
> >> problems during init.
> >
> > The log has "(XEN) vmsi.c:108:d32767 Unsupported delivery mode 3"
> >
> > mode 3 in this context appears to be dest__reserved_1, which corresponds
> > to the IOAPIC datasheet I'm looking at[0], which shows that DELMOD=3 is
> > reserved.
> >
> > The specification update[1] doesn't seem to add anything in this regard.
> >
> > So either I've missed another update, we are mis-emulating something
> > resulting in an invalid mode or Linux/the LSI ROM are using an
> > unspecified IOAPIC mode. Perhaps Jan or Andrew have some idea which it
> > is.
>
> At a first glance I would assume this to be the same problem
> that was recently fixed for running with qemu-traditional by
> Stefano. See http://xenbits.xen.org/gitweb/?p=staging/qemu-xen-unstable.git;a=commit;h=ce6d9b1b2f9c6a5ca2500e03d0ef8b453bc4bf53
> (and the earlier thread leading there; didn't check whether this
> applies to upstream qemu at all). Later he also provided a full
> patch, but I don't even see this in our traditional tree, yet -
> Ian(J)?

This is the patch and doesn't seem to be in qemu-xen-traditional:

http://marc.info/?l=xen-devel&m=134096922121958

However qemu-xen-upstream doesn't have msi_translate at all, so it
cannot be the issue.

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


stefano.stabellini at eu

Jul 31, 2012, 4:39 AM

Post #32 of 48 (167 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Tue, 31 Jul 2012, David Erickson wrote:
> Just got back in town, following up on the prior discussion. I
> successfully compiled the latest code (25688 and qemu upstream
> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
> problems during initialization of the card in the guest, in particular
> the unsupported delivery mode 3 which seems to cause interrupt related
> problems during init. I've again attached the qemu-dm-log, and xl
> dmesg log files, and additionally screenshots of the guest dmesg and
> also for comparison starting the same livecd natively on the box.

"unsupported delivery mode 3" means that the Linux guest is trying to
remap the MSI onto an event channel but Xen is still trying to deliver
the MSI using the emulated code path anyway.

Adding

#define XEN_PT_LOGGING_ENABLED 1

at the top of hw/xen_pt.h and posting the additional QEMU logs could
be helpful.

The full Xen logs might also be useful. I would add some more tracing to
the hypervisor too:

diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c
index b5975d1..08f4ab7 100644
--- a/xen/drivers/passthrough/io.c
+++ b/xen/drivers/passthrough/io.c
@@ -474,6 +474,11 @@ static void hvm_pci_msi_assert(
{
struct pirq *pirq = dpci_pirq(pirq_dpci);

+ printk("DEBUG %s pirq=%d hvm_domain_use_pirq=%d emuirq=%d\n", __func__,
+ pirq->pirq,
+ hvm_domain_use_pirq(d, pirq),
+ pirq->arch.hvm.emuirq);
+
if ( hvm_domain_use_pirq(d, pirq) )
send_guest_pirq(d, pirq);
else

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


halcyon1981 at gmail

Jul 31, 2012, 8:28 AM

Post #33 of 48 (166 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

>>
>> As a second question, I am not getting a NIC inside the guest for
>> network access when using QEMU upstream, I see vif's added to my host
>> machine:
>>
>> vif1.0 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
>> UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
>> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>> TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>> collisions:0 txqueuelen:32
>> RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
>>
>> vif1.0-emu Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
>> inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
>> UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
>> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>> TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
>> collisions:0 txqueuelen:500
>> RX bytes:0 (0.0 B) TX bytes:1272 (1.2 KB)
>>
>> But nothing corresponding inside the guest. My guest's config file has:
>> vif = ['bridge=xenbr0, type=ioemu']
>
> Do you have the necessary driver inside the guest? IIRC the default
> emulated NIC is the rtl8139.
>
> It looks like you've asked for EMU only so I'm not sure why you have got
> a vif interface, that might be a bug.
>
> You should also check that your domU kernel is not unplugging the
> emulated NIC -- there should be log messages to that effect if it is. I
> don't recall which guest kernel you have but you could try
> "xen_emul_unplug=never" on the command line.

I believe I should have the driver, the test guest I am using is just
an Ubuntu 11.10 desktop live cd. Which command line would I put
"xen_emul_unplug=never"? the guest's kernel boot line? Also I was
somewhat surprised to see xen messages in the guest's kernel dmesg
given that it is running HVM, unless it has somehow detected it is
running on top of Xen. If there is an alternative vif line I should
use I'm happy to change it.

Thanks-
David

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


halcyon1981 at gmail

Jul 31, 2012, 8:32 AM

Post #34 of 48 (168 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Tue, Jul 31, 2012 at 2:41 AM, Ian Campbell <Ian.Campbell [at] citrix> wrote:
> On Tue, 2012-07-31 at 10:35 +0100, Jan Beulich wrote:
>> >>> On 31.07.12 at 11:04, Ian Campbell <Ian.Campbell [at] citrix> wrote:
>> > On Tue, 2012-07-31 at 08:35 +0100, David Erickson wrote:
>> >> Just got back in town, following up on the prior discussion. I
>> >> successfully compiled the latest code (25688 and qemu upstream
>> >> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
>> >> problems during initialization of the card in the guest, in particular
>> >> the unsupported delivery mode 3 which seems to cause interrupt related
>> >> problems during init.
>> >
>> > The log has "(XEN) vmsi.c:108:d32767 Unsupported delivery mode 3"
>> >
>> > mode 3 in this context appears to be dest__reserved_1, which corresponds
>> > to the IOAPIC datasheet I'm looking at[0], which shows that DELMOD=3 is
>> > reserved.
>> >
>> > The specification update[1] doesn't seem to add anything in this regard.
>> >
>> > So either I've missed another update, we are mis-emulating something
>> > resulting in an invalid mode or Linux/the LSI ROM are using an
>> > unspecified IOAPIC mode. Perhaps Jan or Andrew have some idea which it
>> > is.
>>
>> At a first glance I would assume this to be the same problem
>> that was recently fixed for running with qemu-traditional by
>> Stefano. See http://xenbits.xen.org/gitweb/?p=staging/qemu-xen-unstable.git;a=commit;h=ce6d9b1b2f9c6a5ca2500e03d0ef8b453bc4bf53
>> (and the earlier thread leading there; didn't check whether this
>> applies to upstream qemu at all). Later he also provided a full
>> patch, but I don't even see this in our traditional tree, yet -
>> Ian(J)?
>
> Isn't the link above our traditional tree?
>
> Anyhow, it's a plausible theory.
>
> David, as a workaround I think you can add "pci_msitranslate=0" to the
> guest configuration file.
>

Gave this a go, same problem, will try the further logging suggested below next.

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


Ian.Campbell at citrix

Jul 31, 2012, 8:35 AM

Post #35 of 48 (163 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Tue, 2012-07-31 at 16:28 +0100, David Erickson wrote:
> >>
> >> As a second question, I am not getting a NIC inside the guest for
> >> network access when using QEMU upstream, I see vif's added to my host
> >> machine:
> >>
> >> vif1.0 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
> >> UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
> >> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> >> TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> >> collisions:0 txqueuelen:32
> >> RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
> >>
> >> vif1.0-emu Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
> >> inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
> >> UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
> >> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> >> TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
> >> collisions:0 txqueuelen:500
> >> RX bytes:0 (0.0 B) TX bytes:1272 (1.2 KB)
> >>
> >> But nothing corresponding inside the guest. My guest's config file has:
> >> vif = ['bridge=xenbr0, type=ioemu']
> >
> > Do you have the necessary driver inside the guest? IIRC the default
> > emulated NIC is the rtl8139.
> >
> > It looks like you've asked for EMU only so I'm not sure why you have got
> > a vif interface, that might be a bug.
> >
> > You should also check that your domU kernel is not unplugging the
> > emulated NIC -- there should be log messages to that effect if it is. I
> > don't recall which guest kernel you have but you could try
> > "xen_emul_unplug=never" on the command line.
>
> I believe I should have the driver, the test guest I am using is just
> an Ubuntu 11.10 desktop live cd. Which command line would I put
> "xen_emul_unplug=never"? the guest's kernel boot line?

Yes.

> Also I was
> somewhat surprised to see xen messages in the guest's kernel dmesg
> given that it is running HVM, unless it has somehow detected it is
> running on top of Xen.

Modern kernels have a feature called "PVHVM" which allows for PV
features, such as device drivers, even for HVM guests. I don't know if
11.10 has that turned on / functional or not.

> If there is an alternative vif line I should
> use I'm happy to change it.

You could try dropping the type=ioemu.

Ian



_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


halcyon1981 at gmail

Jul 31, 2012, 9:05 AM

Post #36 of 48 (164 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Tue, Jul 31, 2012 at 4:39 AM, Stefano Stabellini
<stefano.stabellini [at] eu> wrote:
> On Tue, 31 Jul 2012, David Erickson wrote:
>> Just got back in town, following up on the prior discussion. I
>> successfully compiled the latest code (25688 and qemu upstream
>> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
>> problems during initialization of the card in the guest, in particular
>> the unsupported delivery mode 3 which seems to cause interrupt related
>> problems during init. I've again attached the qemu-dm-log, and xl
>> dmesg log files, and additionally screenshots of the guest dmesg and
>> also for comparison starting the same livecd natively on the box.
>
> "unsupported delivery mode 3" means that the Linux guest is trying to
> remap the MSI onto an event channel but Xen is still trying to deliver
> the MSI using the emulated code path anyway.
>
> Adding
>
> #define XEN_PT_LOGGING_ENABLED 1
>
> at the top of hw/xen_pt.h and posting the additional QEMU logs could
> be helpful.
>
> The full Xen logs might also be useful. I would add some more tracing to
> the hypervisor too:
>
> diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c
> index b5975d1..08f4ab7 100644
> --- a/xen/drivers/passthrough/io.c
> +++ b/xen/drivers/passthrough/io.c
> @@ -474,6 +474,11 @@ static void hvm_pci_msi_assert(
> {
> struct pirq *pirq = dpci_pirq(pirq_dpci);
>
> + printk("DEBUG %s pirq=%d hvm_domain_use_pirq=%d emuirq=%d\n", __func__,
> + pirq->pirq,
> + hvm_domain_use_pirq(d, pirq),
> + pirq->arch.hvm.emuirq);
> +
> if ( hvm_domain_use_pirq(d, pirq) )
> send_guest_pirq(d, pirq);
> else

Hi Stefano-
I made the modifications (it looks like that DEFINE hasn't been used
in awhile, caused a few compilation issues, I had to prefix most of
the logged variables with s->hostaddr.), and am attaching the
qemu-dm-ubuntu.log and dmesg from xl. You referred to full Xen logs,
where do I find those at?

Thanks,
David
Attachments: xl_dmesg.log (15.6 KB)
  qemu-dm-ubuntu.log (1.58 KB)


halcyon1981 at gmail

Jul 31, 2012, 9:12 AM

Post #37 of 48 (168 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Tue, Jul 31, 2012 at 8:35 AM, Ian Campbell <Ian.Campbell [at] citrix> wrote:
> On Tue, 2012-07-31 at 16:28 +0100, David Erickson wrote:
>> >>
>> >> As a second question, I am not getting a NIC inside the guest for
>> >> network access when using QEMU upstream, I see vif's added to my host
>> >> machine:
>> >>
>> >> vif1.0 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
>> >> UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
>> >> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>> >> TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>> >> collisions:0 txqueuelen:32
>> >> RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
>> >>
>> >> vif1.0-emu Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
>> >> inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
>> >> UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
>> >> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>> >> TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
>> >> collisions:0 txqueuelen:500
>> >> RX bytes:0 (0.0 B) TX bytes:1272 (1.2 KB)
>> >>
>> >> But nothing corresponding inside the guest. My guest's config file has:
>> >> vif = ['bridge=xenbr0, type=ioemu']
>> >
>> > Do you have the necessary driver inside the guest? IIRC the default
>> > emulated NIC is the rtl8139.
>> >
>> > It looks like you've asked for EMU only so I'm not sure why you have got
>> > a vif interface, that might be a bug.
>> >
>> > You should also check that your domU kernel is not unplugging the
>> > emulated NIC -- there should be log messages to that effect if it is. I
>> > don't recall which guest kernel you have but you could try
>> > "xen_emul_unplug=never" on the command line.
>>
>> I believe I should have the driver, the test guest I am using is just
>> an Ubuntu 11.10 desktop live cd. Which command line would I put
>> "xen_emul_unplug=never"? the guest's kernel boot line?
>
> Yes.
>
>> Also I was
>> somewhat surprised to see xen messages in the guest's kernel dmesg
>> given that it is running HVM, unless it has somehow detected it is
>> running on top of Xen.
>
> Modern kernels have a feature called "PVHVM" which allows for PV
> features, such as device drivers, even for HVM guests. I don't know if
> 11.10 has that turned on / functional or not.

I took a closer look at the guests's dmesg output and indeed it says
"Booting paravirtualized kernel on Xen HVM"

>
>> If there is an alternative vif line I should
>> use I'm happy to change it.
>
> You could try dropping the type=ioemu.

Gave this a try, still am seeing the vif interfaces on the host,
nothing in the guest. Also I combed through the dmesg on the guest
and didn't see anything about any network interfaces, and nothing
about being plugged/unplugged either. There is the following line in
my xen-hotplug.log, if it is relevant:

@xen:/var/log/xen$ sudo cat xen-hotplug.log
RTNETLINK answers: Operation not supported

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


stefano.stabellini at eu

Aug 1, 2012, 4:13 AM

Post #38 of 48 (172 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Tue, 31 Jul 2012, David Erickson wrote:
> On Tue, Jul 31, 2012 at 4:39 AM, Stefano Stabellini
> <stefano.stabellini [at] eu> wrote:
> > On Tue, 31 Jul 2012, David Erickson wrote:
> >> Just got back in town, following up on the prior discussion. I
> >> successfully compiled the latest code (25688 and qemu upstream
> >> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
> >> problems during initialization of the card in the guest, in particular
> >> the unsupported delivery mode 3 which seems to cause interrupt related
> >> problems during init. I've again attached the qemu-dm-log, and xl
> >> dmesg log files, and additionally screenshots of the guest dmesg and
> >> also for comparison starting the same livecd natively on the box.
> >
> > "unsupported delivery mode 3" means that the Linux guest is trying to
> > remap the MSI onto an event channel but Xen is still trying to deliver
> > the MSI using the emulated code path anyway.
> >
> > Adding
> >
> > #define XEN_PT_LOGGING_ENABLED 1
> >
> > at the top of hw/xen_pt.h and posting the additional QEMU logs could
> > be helpful.
> >
> > The full Xen logs might also be useful. I would add some more tracing to
> > the hypervisor too:
> >
> > diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c
> > index b5975d1..08f4ab7 100644
> > --- a/xen/drivers/passthrough/io.c
> > +++ b/xen/drivers/passthrough/io.c
> > @@ -474,6 +474,11 @@ static void hvm_pci_msi_assert(
> > {
> > struct pirq *pirq = dpci_pirq(pirq_dpci);
> >
> > + printk("DEBUG %s pirq=%d hvm_domain_use_pirq=%d emuirq=%d\n", __func__,
> > + pirq->pirq,
> > + hvm_domain_use_pirq(d, pirq),
> > + pirq->arch.hvm.emuirq);
> > +
> > if ( hvm_domain_use_pirq(d, pirq) )
> > send_guest_pirq(d, pirq);
> > else
>
> Hi Stefano-
> I made the modifications (it looks like that DEFINE hasn't been used
> in awhile, caused a few compilation issues, I had to prefix most of
> the logged variables with s->hostaddr.), and am attaching the
> qemu-dm-ubuntu.log and dmesg from xl. You referred to full Xen logs,
> where do I find those at?

Thanks for the logs!
You can get the full Xen logs from the serial console but you can also
grab the last few lines with "xl dmesg", like you did and it seems to be
enough in this case.


The initial MSI remapping has been done:

[00:05.0] msi_msix_setup: requested pirq 4 for MSI-X (vec: 0, entry: 0)
[00:05.0] msi_msix_update: Updating MSI-X with pirq 4 gvec 0 gflags 0x3037 (entry: 0)

But the guest is not issuing the EVTCHNOP_bind_pirq hypercall that is
necessary to be able to receive event notifications (emuirq=-1 in the
Xen logs).

Now we need to figure out why: we still need more logs, this time on the
guest side.
What is the kernel version that you are using in the guest?
Could you please add "debug loglevel=9" to the guest kernel command line
and then post the guest dmesg again?
It would be great if you could use the emulated serial to get the logs
rather than a picture. You can do that by adding serial='pty' to the VM
config file and console=ttyS0 to the guest command line.
This additional Xen change could also tell us if the EVTCHNOP_bind_pirq
has been done:


diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index 53777f8..d65a97a 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -405,6 +405,8 @@ static long evtchn_bind_pirq(evtchn_bind_pirq_t *bind)
#ifdef CONFIG_X86
if ( is_hvm_domain(d) && domain_pirq_to_irq(d, pirq) > 0 )
map_domain_emuirq_pirq(d, pirq, IRQ_PT);
+ printk("DEBUG %s %d pirq=%d irq=%d emuirq=%d\n", __func__, __LINE__,
+ pirq, domain_pirq_to_irq(d, pirq), domain_pirq_to_emuirq(d, pirq));
#endif

out:

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


halcyon1981 at gmail

Aug 1, 2012, 10:52 AM

Post #39 of 48 (161 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Wed, Aug 1, 2012 at 4:13 AM, Stefano Stabellini
<stefano.stabellini [at] eu> wrote:
> On Tue, 31 Jul 2012, David Erickson wrote:
>> On Tue, Jul 31, 2012 at 4:39 AM, Stefano Stabellini
>> <stefano.stabellini [at] eu> wrote:
>> > On Tue, 31 Jul 2012, David Erickson wrote:
>> >> Just got back in town, following up on the prior discussion. I
>> >> successfully compiled the latest code (25688 and qemu upstream
>> >> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
>> >> problems during initialization of the card in the guest, in particular
>> >> the unsupported delivery mode 3 which seems to cause interrupt related
>> >> problems during init. I've again attached the qemu-dm-log, and xl
>> >> dmesg log files, and additionally screenshots of the guest dmesg and
>> >> also for comparison starting the same livecd natively on the box.
>> >
>> > "unsupported delivery mode 3" means that the Linux guest is trying to
>> > remap the MSI onto an event channel but Xen is still trying to deliver
>> > the MSI using the emulated code path anyway.
>> >
>> > Adding
>> >
>> > #define XEN_PT_LOGGING_ENABLED 1
>> >
>> > at the top of hw/xen_pt.h and posting the additional QEMU logs could
>> > be helpful.
>> >
>> > The full Xen logs might also be useful. I would add some more tracing to
>> > the hypervisor too:
>> >
>> > diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c
>> > index b5975d1..08f4ab7 100644
>> > --- a/xen/drivers/passthrough/io.c
>> > +++ b/xen/drivers/passthrough/io.c
>> > @@ -474,6 +474,11 @@ static void hvm_pci_msi_assert(
>> > {
>> > struct pirq *pirq = dpci_pirq(pirq_dpci);
>> >
>> > + printk("DEBUG %s pirq=%d hvm_domain_use_pirq=%d emuirq=%d\n", __func__,
>> > + pirq->pirq,
>> > + hvm_domain_use_pirq(d, pirq),
>> > + pirq->arch.hvm.emuirq);
>> > +
>> > if ( hvm_domain_use_pirq(d, pirq) )
>> > send_guest_pirq(d, pirq);
>> > else
>>
>> Hi Stefano-
>> I made the modifications (it looks like that DEFINE hasn't been used
>> in awhile, caused a few compilation issues, I had to prefix most of
>> the logged variables with s->hostaddr.), and am attaching the
>> qemu-dm-ubuntu.log and dmesg from xl. You referred to full Xen logs,
>> where do I find those at?
>
> Thanks for the logs!
> You can get the full Xen logs from the serial console but you can also
> grab the last few lines with "xl dmesg", like you did and it seems to be
> enough in this case.
>
>
> The initial MSI remapping has been done:
>
> [00:05.0] msi_msix_setup: requested pirq 4 for MSI-X (vec: 0, entry: 0)
> [00:05.0] msi_msix_update: Updating MSI-X with pirq 4 gvec 0 gflags 0x3037 (entry: 0)
>
> But the guest is not issuing the EVTCHNOP_bind_pirq hypercall that is
> necessary to be able to receive event notifications (emuirq=-1 in the
> Xen logs).
>
> Now we need to figure out why: we still need more logs, this time on the
> guest side.
> What is the kernel version that you are using in the guest?
> Could you please add "debug loglevel=9" to the guest kernel command line
> and then post the guest dmesg again?
> It would be great if you could use the emulated serial to get the logs
> rather than a picture. You can do that by adding serial='pty' to the VM
> config file and console=ttyS0 to the guest command line.
> This additional Xen change could also tell us if the EVTCHNOP_bind_pirq
> has been done:
>
>
> diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
> index 53777f8..d65a97a 100644
> --- a/xen/common/event_channel.c
> +++ b/xen/common/event_channel.c
> @@ -405,6 +405,8 @@ static long evtchn_bind_pirq(evtchn_bind_pirq_t *bind)
> #ifdef CONFIG_X86
> if ( is_hvm_domain(d) && domain_pirq_to_irq(d, pirq) > 0 )
> map_domain_emuirq_pirq(d, pirq, IRQ_PT);
> + printk("DEBUG %s %d pirq=%d irq=%d emuirq=%d\n", __func__, __LINE__,
> + pirq, domain_pirq_to_irq(d, pirq), domain_pirq_to_emuirq(d, pirq));
> #endif
>
> out:

The guest is an Ubuntu 11.10 livecd, kernel version 3.0.0-12-generic.
I've also attached all the logs, thanks for the tip on the serial
console, very useful.

Additionally I've attached logs for booting a solaris livecd (my
ultimate goal is to use this HBA card in Solaris), with the serial
console tip I was able to capture its kernel boot as well.

Lastly I still also have the issue where no NIC is being presented
enabled in the guests, my assumption is this is because of the error
in xen-hotplug.log: "RTNETLINK answers: Operation not supported", is
there some way to debug this? I checked my dom0's dmesg and this is
what I get when I boot the Ubuntu livecd VM:

[ 2506.619039] device vif8.0 entered promiscuous mode
[ 2506.624304] ADDRCONF(NETDEV_UP): vif8.0: link is not ready
[ 2506.777865] device vif8.0-emu entered promiscuous mode
[ 2506.783073] xenbr0: port 3(vif8.0-emu) entering forwarding state
[ 2506.783079] xenbr0: port 3(vif8.0-emu) entering forwarding state
[ 2506.895379] pciback 0000:02:00.0: restoring config space at offset
0xf (was 0x100, writing 0x10a)
[ 2506.895393] pciback 0000:02:00.0: restoring config space at offset
0xc (was 0x0, writing 0xf7a00000)
[ 2506.895410] pciback 0000:02:00.0: restoring config space at offset
0x7 (was 0x4, writing 0xf7a80004)
[ 2506.895420] pciback 0000:02:00.0: restoring config space at offset
0x5 (was 0x4, writing 0xf7ac0004)
[ 2506.895428] pciback 0000:02:00.0: restoring config space at offset
0x4 (was 0x1, writing 0xd001)
[ 2506.895435] pciback 0000:02:00.0: restoring config space at offset
0x3 (was 0x0, writing 0x10)
[ 2507.056216] xen-pciback: vpci: 0000:02:00.0: assign to virtual slot 0
[ 2507.056398] pciback 0000:02:00.0: device has been assigned to
another domain! Over-writting the ownership, but beware.
[ 2517.191338] vif8.0-emu: no IPv6 routers present
[ 2521.799320] xenbr0: port 3(vif8.0-emu) entering forwarding state

and here is my ifconfig while ubuntu is booted (without VMs it doesn't
have the vifs):
eth0 Link encap:Ethernet HWaddr 00:e0:81:cb:db:74
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:71977 errors:0 dropped:0 overruns:0 frame:0
TX packets:126629 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5472933 (5.4 MB) TX bytes:57934759 (57.9 MB)
Interrupt:16 Memory:f7900000-f7920000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4002 errors:0 dropped:0 overruns:0 frame:0
TX packets:4002 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:26667388 (26.6 MB) TX bytes:26667388 (26.6 MB)

vif8.0 Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:32
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

vif8.0-emu Link encap:Ethernet HWaddr fe:ff:ff:ff:ff:ff
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:172 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 B) TX bytes:26220 (26.2 KB)

xenbr0 Link encap:Ethernet HWaddr 00:e0:81:cb:db:74
inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::2e0:81ff:fecb:db74/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:71245 errors:0 dropped:0 overruns:0 frame:0
TX packets:98995 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3595409 (3.5 MB) TX bytes:55909320 (55.9 MB)

And the line from my ubuntu.conf:
vif = ['bridge=xenbr0']

Thanks-
David
Attachments: xen-hotplug.log (43 B)
  qemu-dm-ubuntu.log (1.61 KB)
  ubuntu_guest_boot.log (39.2 KB)
  ubuntu_guest_xl_dmesg.log (36.9 KB)
  qemu-dm-solaris.log (1.18 KB)
  solaris_guest_boot.log (3.20 KB)
  solaris_guest_xl_dmesg.log (41.4 KB)


Ian.Campbell at citrix

Aug 2, 2012, 12:45 AM

Post #40 of 48 (160 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Wed, 2012-08-01 at 18:52 +0100, David Erickson wrote:
> my assumption is this is because of the error
> in xen-hotplug.log: "RTNETLINK answers: Operation not supported",

That's a benign warning AFAIK.

> and here is my ifconfig while ubuntu is booted (without VMs it doesn't
> have the vifs):

This all looks fine. I think you need to be investigating the network
configuration inside the guest. Does the eth* device exist, is it
configured etc

In your Ubuntu boot log I see:
[ 0.000000] Hypervisor detected: Xen HVM
[ 0.000000] Xen version 4.2.
[ 0.000000] Xen Platform PCI: I/O protocol version 1
[ 0.000000] Netfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated NICs.
[ 0.000000] Blkfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated disks.

which means you will need the xen-netfront driver to be loaded, I don't
see any logs to that effect. What does lsmod say? What about "ifconfig
-a". Does the driver even exist on the live cd under /lib/modules
somewhere?

It's a bit odd that you still have vifX.Y-emu in dom0 given that the
emulated device is supposed to have been unplugged. I wonder if that is
a (separate) bug with emu device unplug. Which qemu was this again?

If you added xen_emul_unplug=never to your guest command line then you
would avoid this unplug and you should have an emulated NIC available
instead.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


halcyon1981 at gmail

Aug 2, 2012, 9:24 AM

Post #41 of 48 (165 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Thu, Aug 2, 2012 at 12:45 AM, Ian Campbell <Ian.Campbell [at] citrix> wrote:
> On Wed, 2012-08-01 at 18:52 +0100, David Erickson wrote:
>> my assumption is this is because of the error
>> in xen-hotplug.log: "RTNETLINK answers: Operation not supported",
>
> That's a benign warning AFAIK.
>
>> and here is my ifconfig while ubuntu is booted (without VMs it doesn't
>> have the vifs):
>
> This all looks fine. I think you need to be investigating the network
> configuration inside the guest. Does the eth* device exist, is it
> configured etc
>
> In your Ubuntu boot log I see:
> [ 0.000000] Hypervisor detected: Xen HVM
> [ 0.000000] Xen version 4.2.
> [ 0.000000] Xen Platform PCI: I/O protocol version 1
> [ 0.000000] Netfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated NICs.
> [ 0.000000] Blkfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated disks.
>
> which means you will need the xen-netfront driver to be loaded, I don't
> see any logs to that effect. What does lsmod say? What about "ifconfig
> -a". Does the driver even exist on the live cd under /lib/modules
> somewhere?


Hi Ian-
I've attached a log with the list of modules matching front,
xen-netfront.ko is definitely there, but lsmod doesn't show it loaded.
And ifconfig shows nothing other than the loopback interface.

> It's a bit odd that you still have vifX.Y-emu in dom0 given that the
> emulated device is supposed to have been unplugged. I wonder if that is
> a (separate) bug with emu device unplug. Which qemu was this again?

Upstream, commit 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a from 7/30

> If you added xen_emul_unplug=never to your guest command line then you
> would avoid this unplug and you should have an emulated NIC available
> instead.

Verified this did work.

Thanks,
David
Attachments: ubuntu_guest_boot.log (1.57 KB)
  find.log (0.44 KB)


Ian.Campbell at citrix

Aug 2, 2012, 9:45 AM

Post #42 of 48 (163 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Thu, 2012-08-02 at 17:24 +0100, David Erickson wrote:
> On Thu, Aug 2, 2012 at 12:45 AM, Ian Campbell <Ian.Campbell [at] citrix> wrote:
> I've attached a log with the list of modules matching front,
> xen-netfront.ko is definitely there, but lsmod doesn't show it loaded.#

So did you try manually loading it?

[...]
> > If you added xen_emul_unplug=never to your guest command line then you
> > would avoid this unplug and you should have an emulated NIC available
> > instead.
>
> Verified this did work.

Great.

>
> Thanks,
> David



_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


halcyon1981 at gmail

Aug 2, 2012, 10:10 AM

Post #43 of 48 (168 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Thu, Aug 2, 2012 at 9:45 AM, Ian Campbell <Ian.Campbell [at] citrix> wrote:
> On Thu, 2012-08-02 at 17:24 +0100, David Erickson wrote:
>> On Thu, Aug 2, 2012 at 12:45 AM, Ian Campbell <Ian.Campbell [at] citrix> wrote:
>> I've attached a log with the list of modules matching front,
>> xen-netfront.ko is definitely there, but lsmod doesn't show it loaded.#
>
> So did you try manually loading it?

I did, I got:
insmod: error inserting
'/lib/modules/3.0.0-12-generic/kernel/drivers/net/xen-netfront.ko': -1
Unknown symbol in module

Presumably it depends on other not-loaded kernel modules, do you know which?

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


halcyon1981 at gmail

Aug 2, 2012, 10:12 AM

Post #44 of 48 (160 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Thu, Aug 2, 2012 at 10:10 AM, David Erickson <halcyon1981 [at] gmail> wrote:
> On Thu, Aug 2, 2012 at 9:45 AM, Ian Campbell <Ian.Campbell [at] citrix> wrote:
>> On Thu, 2012-08-02 at 17:24 +0100, David Erickson wrote:
>>> On Thu, Aug 2, 2012 at 12:45 AM, Ian Campbell <Ian.Campbell [at] citrix> wrote:
>>> I've attached a log with the list of modules matching front,
>>> xen-netfront.ko is definitely there, but lsmod doesn't show it loaded.#
>>
>> So did you try manually loading it?
>
> I did, I got:
> insmod: error inserting
> '/lib/modules/3.0.0-12-generic/kernel/drivers/net/xen-netfront.ko': -1
> Unknown symbol in module
>
> Presumably it depends on other not-loaded kernel modules, do you know which?

As a followup I ran the following:

ubuntu [at] ubunt:~$ sudo modprobe xen-netfront
ubuntu [at] ubunt:~$ [ 238.408574] vbd vbd-5632: 19 xenbus_dev_probe on
device/vbd/5632
[ 238.433304] vbd vbd-5632: failed to write error node for
device/vbd/5632 (19 xenbus_dev_probe on device/vbd/5632)

ubuntu [at] ubunt:~$ sudo lsmod
Module Size Used by
xen_blkfront 26261 0
xen_netfront 26671 0
xenbus_probe_frontend 13232 2 xen_blkfront,xen_netfront,[permanent]
bnep 18436 2
rfcomm 47946 0
bluetooth 166112 10 bnep,rfcomm
dm_crypt 23199 0
lp 17799 0
ppdev 17113 0
parport_pc 36962 1
parport 46562 3 lp,ppdev,parport_pc
psmouse 73882 0
serio_raw 13166 0
i2c_piix4 13301 0
xen_platform_pci 12885 0 [permanent]
binfmt_misc 17540 1
squashfs 36799 1
overlayfs 28267 1
nls_utf8 12557 1
isofs 40253 1
dm_raid45 78155 0
xor 12894 1 dm_raid45
dm_mirror 22203 0
dm_region_hash 20918 1 dm_mirror
dm_log 18564 3 dm_raid45,dm_mirror,dm_region_hash
btrfs 648895 0
zlib_deflate 27139 1 btrfs
libcrc32c 12644 1 btrfs
floppy 70365 0
mpt2sas 152860 0
scsi_transport_sas 40558 1 mpt2sas
raid_class 13622 1 mpt2sas
ubuntu [at] ubunt:~$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:16:3e:68:15:49
inet addr:192.168.1.126 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::216:3eff:fe68:1549/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:54 errors:0 dropped:0 overruns:0 frame:0
TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5952 (5.9 KB) TX bytes:9522 (9.5 KB)
Interrupt:75

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:96 errors:0 dropped:0 overruns:0 frame:0
TX packets:96 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7392 (7.3 KB) TX bytes:7392 (7.3 KB)

So it looks like it loaded (with some errors, are those problems?),
but still not sure why it didn't auto load on boot.

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


halcyon1981 at gmail

Aug 2, 2012, 10:38 AM

Post #45 of 48 (160 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Wed, Aug 1, 2012 at 10:52 AM, David Erickson <halcyon1981 [at] gmail> wrote:
> On Wed, Aug 1, 2012 at 4:13 AM, Stefano Stabellini
> <stefano.stabellini [at] eu> wrote:
>> On Tue, 31 Jul 2012, David Erickson wrote:
>>> On Tue, Jul 31, 2012 at 4:39 AM, Stefano Stabellini
>>> <stefano.stabellini [at] eu> wrote:
>>> > On Tue, 31 Jul 2012, David Erickson wrote:
>>> >> Just got back in town, following up on the prior discussion. I
>>> >> successfully compiled the latest code (25688 and qemu upstream
>>> >> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
>>> >> problems during initialization of the card in the guest, in particular
>>> >> the unsupported delivery mode 3 which seems to cause interrupt related
>>> >> problems during init. I've again attached the qemu-dm-log, and xl
>>> >> dmesg log files, and additionally screenshots of the guest dmesg and
>>> >> also for comparison starting the same livecd natively on the box.
>>> >
>>> > "unsupported delivery mode 3" means that the Linux guest is trying to
>>> > remap the MSI onto an event channel but Xen is still trying to deliver
>>> > the MSI using the emulated code path anyway.
>>> >
>>> > Adding
>>> >
>>> > #define XEN_PT_LOGGING_ENABLED 1
>>> >
>>> > at the top of hw/xen_pt.h and posting the additional QEMU logs could
>>> > be helpful.
>>> >
>>> > The full Xen logs might also be useful. I would add some more tracing to
>>> > the hypervisor too:
>>> >
>>> > diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c
>>> > index b5975d1..08f4ab7 100644
>>> > --- a/xen/drivers/passthrough/io.c
>>> > +++ b/xen/drivers/passthrough/io.c
>>> > @@ -474,6 +474,11 @@ static void hvm_pci_msi_assert(
>>> > {
>>> > struct pirq *pirq = dpci_pirq(pirq_dpci);
>>> >
>>> > + printk("DEBUG %s pirq=%d hvm_domain_use_pirq=%d emuirq=%d\n", __func__,
>>> > + pirq->pirq,
>>> > + hvm_domain_use_pirq(d, pirq),
>>> > + pirq->arch.hvm.emuirq);
>>> > +
>>> > if ( hvm_domain_use_pirq(d, pirq) )
>>> > send_guest_pirq(d, pirq);
>>> > else
>>>
>>> Hi Stefano-
>>> I made the modifications (it looks like that DEFINE hasn't been used
>>> in awhile, caused a few compilation issues, I had to prefix most of
>>> the logged variables with s->hostaddr.), and am attaching the
>>> qemu-dm-ubuntu.log and dmesg from xl. You referred to full Xen logs,
>>> where do I find those at?
>>
>> Thanks for the logs!
>> You can get the full Xen logs from the serial console but you can also
>> grab the last few lines with "xl dmesg", like you did and it seems to be
>> enough in this case.
>>
>>
>> The initial MSI remapping has been done:
>>
>> [00:05.0] msi_msix_setup: requested pirq 4 for MSI-X (vec: 0, entry: 0)
>> [00:05.0] msi_msix_update: Updating MSI-X with pirq 4 gvec 0 gflags 0x3037 (entry: 0)
>>
>> But the guest is not issuing the EVTCHNOP_bind_pirq hypercall that is
>> necessary to be able to receive event notifications (emuirq=-1 in the
>> Xen logs).
>>
>> Now we need to figure out why: we still need more logs, this time on the
>> guest side.
>> What is the kernel version that you are using in the guest?
>> Could you please add "debug loglevel=9" to the guest kernel command line
>> and then post the guest dmesg again?
>> It would be great if you could use the emulated serial to get the logs
>> rather than a picture. You can do that by adding serial='pty' to the VM
>> config file and console=ttyS0 to the guest command line.
>> This additional Xen change could also tell us if the EVTCHNOP_bind_pirq
>> has been done:
>>
>>
>> diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
>> index 53777f8..d65a97a 100644
>> --- a/xen/common/event_channel.c
>> +++ b/xen/common/event_channel.c
>> @@ -405,6 +405,8 @@ static long evtchn_bind_pirq(evtchn_bind_pirq_t *bind)
>> #ifdef CONFIG_X86
>> if ( is_hvm_domain(d) && domain_pirq_to_irq(d, pirq) > 0 )
>> map_domain_emuirq_pirq(d, pirq, IRQ_PT);
>> + printk("DEBUG %s %d pirq=%d irq=%d emuirq=%d\n", __func__, __LINE__,
>> + pirq, domain_pirq_to_irq(d, pirq), domain_pirq_to_emuirq(d, pirq));
>> #endif
>>
>> out:
>
> The guest is an Ubuntu 11.10 livecd, kernel version 3.0.0-12-generic.
> I've also attached all the logs, thanks for the tip on the serial
> console, very useful.
>
> Additionally I've attached logs for booting a solaris livecd (my
> ultimate goal is to use this HBA card in Solaris), with the serial
> console tip I was able to capture its kernel boot as well.

I'm attaching another log from Solaris' kernel debugger, I'm not sure
how helpful it is but I found it interesting that it didn't detect an
Intel IOMMU/ACPI table and unloaded it, then tried AMD - and I'm new
to Solaris but comparing this log to one without PCI Passthrough, the
npe module never gets loaded without PCI passthrough, so I assume it
failed while setting up the AMD IOMMU module then loaded the npe
module to report the error.

-D
Attachments: solaris_kernel_panic.log (6.47 KB)


Ian.Campbell at citrix

Aug 2, 2012, 11:39 AM

Post #46 of 48 (168 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Thu, 2012-08-02 at 18:12 +0100, David Erickson wrote:

> ubuntu [at] ubunt:~$ sudo modprobe xen-netfront
> ubuntu [at] ubunt:~$ [ 238.408574] vbd vbd-5632: 19 xenbus_dev_probe on
> device/vbd/5632
> [ 238.433304] vbd vbd-5632: failed to write error node for
> device/vbd/5632 (19 xenbus_dev_probe on device/vbd/5632)
>
> ubuntu [at] ubunt:~$ sudo lsmod
> Module Size Used by
> xen_blkfront 26261 0
> xen_netfront 26671 0
> xenbus_probe_frontend 13232 2 xen_blkfront,xen_netfront,[permanent]
[...]
> ubuntu [at] ubunt:~$ ifconfig -a
> eth0 Link encap:Ethernet HWaddr 00:16:3e:68:15:49
[...]
> So it looks like it loaded

Great.

> (with some errors, are those problems?),

Strangely those were vbd (aka disk) errors.

> but still not sure why it didn't auto load on boot.

xenbus_probe_frontend is a module. It should either be built in or
Ubuntu's tools (primarily the one which builds initrds, but perhaps also
something in the live-cd suite) need to learn to load it manually at
the appropriate times. It's a tiny module so we would generally
recommend building it in.

You should file this as a bug against Ubuntu, I think. I'd have sworn
this had been reported to them before but perhaps it has regressed.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


halcyon1981 at gmail

Aug 3, 2012, 9:50 AM

Post #47 of 48 (160 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Thu, Aug 2, 2012 at 10:38 AM, David Erickson <halcyon1981 [at] gmail> wrote:
> On Wed, Aug 1, 2012 at 10:52 AM, David Erickson <halcyon1981 [at] gmail> wrote:
>> On Wed, Aug 1, 2012 at 4:13 AM, Stefano Stabellini
>> <stefano.stabellini [at] eu> wrote:
>>> On Tue, 31 Jul 2012, David Erickson wrote:
>>>> On Tue, Jul 31, 2012 at 4:39 AM, Stefano Stabellini
>>>> <stefano.stabellini [at] eu> wrote:
>>>> > On Tue, 31 Jul 2012, David Erickson wrote:
>>>> >> Just got back in town, following up on the prior discussion. I
>>>> >> successfully compiled the latest code (25688 and qemu upstream
>>>> >> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
>>>> >> problems during initialization of the card in the guest, in particular
>>>> >> the unsupported delivery mode 3 which seems to cause interrupt related
>>>> >> problems during init. I've again attached the qemu-dm-log, and xl
>>>> >> dmesg log files, and additionally screenshots of the guest dmesg and
>>>> >> also for comparison starting the same livecd natively on the box.
>>>> >
>>>> > "unsupported delivery mode 3" means that the Linux guest is trying to
>>>> > remap the MSI onto an event channel but Xen is still trying to deliver
>>>> > the MSI using the emulated code path anyway.
>>>> >
>>>> > Adding
>>>> >
>>>> > #define XEN_PT_LOGGING_ENABLED 1
>>>> >
>>>> > at the top of hw/xen_pt.h and posting the additional QEMU logs could
>>>> > be helpful.
>>>> >
>>>> > The full Xen logs might also be useful. I would add some more tracing to
>>>> > the hypervisor too:
>>>> >
>>>> > diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c
>>>> > index b5975d1..08f4ab7 100644
>>>> > --- a/xen/drivers/passthrough/io.c
>>>> > +++ b/xen/drivers/passthrough/io.c
>>>> > @@ -474,6 +474,11 @@ static void hvm_pci_msi_assert(
>>>> > {
>>>> > struct pirq *pirq = dpci_pirq(pirq_dpci);
>>>> >
>>>> > + printk("DEBUG %s pirq=%d hvm_domain_use_pirq=%d emuirq=%d\n", __func__,
>>>> > + pirq->pirq,
>>>> > + hvm_domain_use_pirq(d, pirq),
>>>> > + pirq->arch.hvm.emuirq);
>>>> > +
>>>> > if ( hvm_domain_use_pirq(d, pirq) )
>>>> > send_guest_pirq(d, pirq);
>>>> > else
>>>>
>>>> Hi Stefano-
>>>> I made the modifications (it looks like that DEFINE hasn't been used
>>>> in awhile, caused a few compilation issues, I had to prefix most of
>>>> the logged variables with s->hostaddr.), and am attaching the
>>>> qemu-dm-ubuntu.log and dmesg from xl. You referred to full Xen logs,
>>>> where do I find those at?
>>>
>>> Thanks for the logs!
>>> You can get the full Xen logs from the serial console but you can also
>>> grab the last few lines with "xl dmesg", like you did and it seems to be
>>> enough in this case.
>>>
>>>
>>> The initial MSI remapping has been done:
>>>
>>> [00:05.0] msi_msix_setup: requested pirq 4 for MSI-X (vec: 0, entry: 0)
>>> [00:05.0] msi_msix_update: Updating MSI-X with pirq 4 gvec 0 gflags 0x3037 (entry: 0)
>>>
>>> But the guest is not issuing the EVTCHNOP_bind_pirq hypercall that is
>>> necessary to be able to receive event notifications (emuirq=-1 in the
>>> Xen logs).
>>>
>>> Now we need to figure out why: we still need more logs, this time on the
>>> guest side.
>>> What is the kernel version that you are using in the guest?
>>> Could you please add "debug loglevel=9" to the guest kernel command line
>>> and then post the guest dmesg again?
>>> It would be great if you could use the emulated serial to get the logs
>>> rather than a picture. You can do that by adding serial='pty' to the VM
>>> config file and console=ttyS0 to the guest command line.
>>> This additional Xen change could also tell us if the EVTCHNOP_bind_pirq
>>> has been done:
>>>
>>>
>>> diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
>>> index 53777f8..d65a97a 100644
>>> --- a/xen/common/event_channel.c
>>> +++ b/xen/common/event_channel.c
>>> @@ -405,6 +405,8 @@ static long evtchn_bind_pirq(evtchn_bind_pirq_t *bind)
>>> #ifdef CONFIG_X86
>>> if ( is_hvm_domain(d) && domain_pirq_to_irq(d, pirq) > 0 )
>>> map_domain_emuirq_pirq(d, pirq, IRQ_PT);
>>> + printk("DEBUG %s %d pirq=%d irq=%d emuirq=%d\n", __func__, __LINE__,
>>> + pirq, domain_pirq_to_irq(d, pirq), domain_pirq_to_emuirq(d, pirq));
>>> #endif
>>>
>>> out:
>>
>> The guest is an Ubuntu 11.10 livecd, kernel version 3.0.0-12-generic.
>> I've also attached all the logs, thanks for the tip on the serial
>> console, very useful.
>>
>> Additionally I've attached logs for booting a solaris livecd (my
>> ultimate goal is to use this HBA card in Solaris), with the serial
>> console tip I was able to capture its kernel boot as well.
>
> I'm attaching another log from Solaris' kernel debugger, I'm not sure
> how helpful it is but I found it interesting that it didn't detect an
> Intel IOMMU/ACPI table and unloaded it, then tried AMD - and I'm new
> to Solaris but comparing this log to one without PCI Passthrough, the
> npe module never gets loaded without PCI passthrough, so I assume it
> failed while setting up the AMD IOMMU module then loaded the npe
> module to report the error.

Just following up, is there anything I can do to further help debug
and figure out what is causing the problem here? I'm assuming since
it isn't working properly in PV or HVM guests there may be multiple
bugs. Is there an easy way to run Ubuntu as HVM only (more friendly
than Solaris) to try and isolate if that is a separate bug from what
is being seen with the PV Ubuntu VM?

Thanks,
David

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel


stefano.stabellini at eu

Aug 6, 2012, 3:23 AM

Post #48 of 48 (168 views)
Permalink
Re: LSI SAS2008 Option Rom Failure [In reply to]

On Fri, 3 Aug 2012, David Erickson wrote:
> On Thu, Aug 2, 2012 at 10:38 AM, David Erickson <halcyon1981 [at] gmail> wrote:
> > On Wed, Aug 1, 2012 at 10:52 AM, David Erickson <halcyon1981 [at] gmail> wrote:
> >> On Wed, Aug 1, 2012 at 4:13 AM, Stefano Stabellini
> >> <stefano.stabellini [at] eu> wrote:
> >>> On Tue, 31 Jul 2012, David Erickson wrote:
> >>>> On Tue, Jul 31, 2012 at 4:39 AM, Stefano Stabellini
> >>>> <stefano.stabellini [at] eu> wrote:
> >>>> > On Tue, 31 Jul 2012, David Erickson wrote:
> >>>> >> Just got back in town, following up on the prior discussion. I
> >>>> >> successfully compiled the latest code (25688 and qemu upstream
> >>>> >> 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a), but am still having
> >>>> >> problems during initialization of the card in the guest, in particular
> >>>> >> the unsupported delivery mode 3 which seems to cause interrupt related
> >>>> >> problems during init. I've again attached the qemu-dm-log, and xl
> >>>> >> dmesg log files, and additionally screenshots of the guest dmesg and
> >>>> >> also for comparison starting the same livecd natively on the box.
> >>>> >
> >>>> > "unsupported delivery mode 3" means that the Linux guest is trying to
> >>>> > remap the MSI onto an event channel but Xen is still trying to deliver
> >>>> > the MSI using the emulated code path anyway.
> >>>> >
> >>>> > Adding
> >>>> >
> >>>> > #define XEN_PT_LOGGING_ENABLED 1
> >>>> >
> >>>> > at the top of hw/xen_pt.h and posting the additional QEMU logs could
> >>>> > be helpful.
> >>>> >
> >>>> > The full Xen logs might also be useful. I would add some more tracing to
> >>>> > the hypervisor too:
> >>>> >
> >>>> > diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c
> >>>> > index b5975d1..08f4ab7 100644
> >>>> > --- a/xen/drivers/passthrough/io.c
> >>>> > +++ b/xen/drivers/passthrough/io.c
> >>>> > @@ -474,6 +474,11 @@ static void hvm_pci_msi_assert(
> >>>> > {
> >>>> > struct pirq *pirq = dpci_pirq(pirq_dpci);
> >>>> >
> >>>> > + printk("DEBUG %s pirq=%d hvm_domain_use_pirq=%d emuirq=%d\n", __func__,
> >>>> > + pirq->pirq,
> >>>> > + hvm_domain_use_pirq(d, pirq),
> >>>> > + pirq->arch.hvm.emuirq);
> >>>> > +
> >>>> > if ( hvm_domain_use_pirq(d, pirq) )
> >>>> > send_guest_pirq(d, pirq);
> >>>> > else
> >>>>
> >>>> Hi Stefano-
> >>>> I made the modifications (it looks like that DEFINE hasn't been used
> >>>> in awhile, caused a few compilation issues, I had to prefix most of
> >>>> the logged variables with s->hostaddr.), and am attaching the
> >>>> qemu-dm-ubuntu.log and dmesg from xl. You referred to full Xen logs,
> >>>> where do I find those at?
> >>>
> >>> Thanks for the logs!
> >>> You can get the full Xen logs from the serial console but you can also
> >>> grab the last few lines with "xl dmesg", like you did and it seems to be
> >>> enough in this case.
> >>>
> >>>
> >>> The initial MSI remapping has been done:
> >>>
> >>> [00:05.0] msi_msix_setup: requested pirq 4 for MSI-X (vec: 0, entry: 0)
> >>> [00:05.0] msi_msix_update: Updating MSI-X with pirq 4 gvec 0 gflags 0x3037 (entry: 0)
> >>>
> >>> But the guest is not issuing the EVTCHNOP_bind_pirq hypercall that is
> >>> necessary to be able to receive event notifications (emuirq=-1 in the
> >>> Xen logs).
> >>>
> >>> Now we need to figure out why: we still need more logs, this time on the
> >>> guest side.
> >>> What is the kernel version that you are using in the guest?
> >>> Could you please add "debug loglevel=9" to the guest kernel command line
> >>> and then post the guest dmesg again?
> >>> It would be great if you could use the emulated serial to get the logs
> >>> rather than a picture. You can do that by adding serial='pty' to the VM
> >>> config file and console=ttyS0 to the guest command line.
> >>> This additional Xen change could also tell us if the EVTCHNOP_bind_pirq
> >>> has been done:
> >>>
> >>>
> >>> diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
> >>> index 53777f8..d65a97a 100644
> >>> --- a/xen/common/event_channel.c
> >>> +++ b/xen/common/event_channel.c
> >>> @@ -405,6 +405,8 @@ static long evtchn_bind_pirq(evtchn_bind_pirq_t *bind)
> >>> #ifdef CONFIG_X86
> >>> if ( is_hvm_domain(d) && domain_pirq_to_irq(d, pirq) > 0 )
> >>> map_domain_emuirq_pirq(d, pirq, IRQ_PT);
> >>> + printk("DEBUG %s %d pirq=%d irq=%d emuirq=%d\n", __func__, __LINE__,
> >>> + pirq, domain_pirq_to_irq(d, pirq), domain_pirq_to_emuirq(d, pirq));
> >>> #endif
> >>>
> >>> out:
> >>
> >> The guest is an Ubuntu 11.10 livecd, kernel version 3.0.0-12-generic.
> >> I've also attached all the logs, thanks for the tip on the serial
> >> console, very useful.
> >>
> >> Additionally I've attached logs for booting a solaris livecd (my
> >> ultimate goal is to use this HBA card in Solaris), with the serial
> >> console tip I was able to capture its kernel boot as well.
> >
> > I'm attaching another log from Solaris' kernel debugger, I'm not sure
> > how helpful it is but I found it interesting that it didn't detect an
> > Intel IOMMU/ACPI table and unloaded it, then tried AMD - and I'm new
> > to Solaris but comparing this log to one without PCI Passthrough, the
> > npe module never gets loaded without PCI passthrough, so I assume it
> > failed while setting up the AMD IOMMU module then loaded the npe
> > module to report the error.

unfortunately I don't know much about solaris so it doesn't help me very
much


> Just following up, is there anything I can do to further help debug
> and figure out what is causing the problem here? I'm assuming since
> it isn't working properly in PV or HVM guests there may be multiple
> bugs. Is there an easy way to run Ubuntu as HVM only (more friendly
> than Solaris) to try and isolate if that is a separate bug from what
> is being seen with the PV Ubuntu VM?

I didn't get any specific output on the PV MSI setup, probably because
it is only printed when CONFIG_DEBUG is setup.
Would you be able to rebuild your Ubuntu kernel with the appended patch?


diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index 6e96e65..039f29c 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -90,6 +90,7 @@ static int xen_hvm_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
struct msi_desc *msidesc;
struct msi_msg msg;

+ printk("DEBUG %s %d %s %s nvec=%d\n",__func__,__LINE__,dev_driver_string(&dev->dev), dev_name(&dev->dev),nvec);
list_for_each_entry(msidesc, &dev->msi_list, list) {
__read_msi_msg(msidesc, &msg);
pirq = MSI_ADDR_EXT_DEST_ID(msg.address_hi) |
@@ -102,7 +103,9 @@ static int xen_hvm_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
xen_msi_compose_msg(dev, pirq, &msg);
__write_msi_msg(msidesc, &msg);
dev_dbg(&dev->dev, "xen: msi bound to pirq=%d\n", pirq);
+ printk("DEBUG %s %d %s %s pirq=%d\n",__func__,__LINE__,dev_driver_string(&dev->dev), dev_name(&dev->dev),pirq);
} else {
+ printk("DEBUG %s %d %s %s pirq=%d already bound\n",__func__,__LINE__,dev_driver_string(&dev->dev), dev_name(&dev->dev),pirq);
dev_dbg(&dev->dev,
"xen: msi already bound to pirq=%d\n", pirq);
}
@@ -115,9 +118,11 @@ static int xen_hvm_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
dev_dbg(&dev->dev,
"xen: msi --> pirq=%d --> irq=%d\n", pirq, irq);
}
+ printk("DEBUG %s %d %s %s pirq=%d irq=%d\n",__func__,__LINE__,dev_driver_string(&dev->dev), dev_name(&dev->dev),pirq,irq);
return 0;

error:
+ printk("DEBUG %s %d %s %s error\n",__func__,__LINE__,dev_driver_string(&dev->dev), dev_name(&dev->dev));
dev_err(&dev->dev,
"Xen PCI frontend has not registered MSI/MSI-X support!\n");
return -ENODEV;

_______________________________________________
Xen-devel mailing list
Xen-devel [at] lists
http://lists.xen.org/xen-devel

First page Previous page 1 2 Next page Last page  View All Xen devel RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.