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

Re: [Xen-devel] MMIO ioremap() error with PCI passthrough



On 1/7/08 17:42, "Andy Burns" <lists.xensource.com@xxxxxxxxxxxxxx> wrote:

>  From my extra printk() debugging the driver now requests 1K, and within
> __direct_remap_pfn_range() the size has been rounded up to 4K,
> presumably this *is* correct as the mfn seems to has been rounded down?

Yes, you can only map memory at page granularity, so this is the smallest
mapping that contains the required resource. This is valid.

> I checked in 2.6.26 git to see if the saa7134 driver had been altered so
> the size had been reduced in more recent kernels, but it has not.  I'll
> check with the V4L developers whether it should be hardcoded to 1K
> instead of 4K, or whether it needs to be sized dynamically for different
> cards.

Good idea. This kind of thing can be an honest mistake which would normally
never cause a problem running natively.

> However about 40 seconds after loading the module, I get the following
> error :-(

Does the card work at all up to this point (first 40s)? Any sign of life
after the message prints?

This would indicate either that Xen/pciback has got irq routing wrong for
this line (so the wrong interrupts are being delivered to the driver) or
that for some other reason the driver has decided that there was no work to
be done in response to the interrupt. Could the irq line for this device be
a shared line? You could try disabling the spurious irq logic in
kernel/irq/spurious.c, and then see if the device works and also what the
irq rate looks like in /proc/interrupts.

 -- Keir

> irq 17: nobody cared (try booting with the "irqpoll" option)
> 
> Call Trace:
>   <IRQ>  [<ffffffff802af539>] __report_bad_irq+0x30/0x7d
>   [<ffffffff802af770>] note_interrupt+0x1ea/0x22b
>   [<ffffffff802aec76>] __do_IRQ+0xbd/0x103
>   [<ffffffff8028d06f>] _local_bh_enable+0x61/0xc5
>   [<ffffffff8026db3a>] do_IRQ+0xe7/0xf5
>   [<ffffffff8039f151>] evtchn_do_upcall+0x86/0xe0
>   [<ffffffff802608ce>] do_hypervisor_callback+0x1e/0x2c
>   <EOI>  [<ffffffff802063aa>] hypercall_page+0x3aa/0x1000
>   [<ffffffff802063aa>] hypercall_page+0x3aa/0x1000
>   [<ffffffff8026f12b>] raw_safe_halt+0x84/0xa8
>   [<ffffffff8026c675>] xen_idle+0x38/0x4a
>   [<ffffffff8024a9bb>] cpu_idle+0x97/0xba
>   [<ffffffff805f6b09>] start_kernel+0x21f/0x224
>   [<ffffffff805f61e5>] _sinittext+0x1e5/0x1eb
> 
> handlers:
> [<ffffffff88142ff6>] (saa7134_irq+0x0/0x284 [saa7134])
> Disabling IRQ #17
> 
> mythbe kernel: Disabling IRQ #17
> 
> I tried adding irqpoll to the relevent stanza in /etc/grub.conf but the
> error still occurs.
> 
> Is this likely that the interrupt handler for the card isn't being wired
> up by pcifront, or perhaps a stray interrupt generated by the card?



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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