[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] LSI SAS2008 Option Rom Failure



On Wed, Aug 1, 2012 at 4:13 AM, Stefano Stabellini
<stefano.stabellini@xxxxxxxxxxxxx> wrote:
> On Tue, 31 Jul 2012, David Erickson wrote:
>> On Tue, Jul 31, 2012 at 4:39 AM, Stefano Stabellini
>> <stefano.stabellini@xxxxxxxxxxxxx> 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

Attachment: xen-hotplug.log
Description: Binary data

Attachment: qemu-dm-ubuntu.log
Description: Binary data

Attachment: ubuntu_guest_boot.log
Description: Binary data

Attachment: ubuntu_guest_xl_dmesg.log
Description: Binary data

Attachment: qemu-dm-solaris.log
Description: Binary data

Attachment: solaris_guest_boot.log
Description: Binary data

Attachment: solaris_guest_xl_dmesg.log
Description: Binary data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.