xen-devel
Re: [Xen-devel] domU guest for xcp 0.1.1
Hi Ian.
pcifront_handler_aer is the callback function.
... err = bind_evtchn_to_irqhandler(pdev->evtchn, pcifront_handler_aer, 0, "pcifront", pdev); if (err < 0) {
xenbus_free_evtchn(pdev->xdev, pdev->evtchn); xenbus_dev_fatal(pdev->xdev, err, "Failed to bind evtchn to " "irqhandler.\n");
return err; } ...
In pcifront_handler_aer, schedule_pcifront_aer_op is called.
irqreturn_t pcifront_handler_aer(int irq, void *dev) { struct pcifront_device *pdev = dev;
schedule_pcifront_aer_op(pdev); return IRQ_HANDLED; }
So I am assuming it is called during normal path as well.
Yes my nic device is sharing interrupts(IRQ17) with usb and ide devices in dom0.
cat /proc/interrupts in domU shows interrupts are never received by the interface(probably confirmed that pcifront itself doesn't receive interrupts). I am only passing 0000:08:01.0 nic device to a domU. It shares IRQ 17 with usb/ide devices in dom0.
Thanks
On Thu, Mar 18, 2010 at 2:17 AM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
I thought AER stuff was only called on error conditions and isn't in the
normal pci passthrough paths so I don't think you would expect to see
any messages from schedule_pcifront_aer_op in normal operation.
I'm not sure about your actual problem (we're pushing the boundaries of
my immediate knowledge of pcifront/back here), it looks as if it might
relate to the interrupt being shared with other devices in domain 0?
What does /proc/interrupts say on both ends? Which devices are you
trying to passthrough, only 0000:08:01.0? Does 0000:08:01.0 share an
interrupt with your USB controller and/or ATA controller in domain 0?
Ian.
On Wed, 2010-03-17 at 18:44 +0000, Ritu kaur wrote:
> Pasi, Ian
>
> I debugged this further with the assumption that IRQ follows the path
> IDT->Hypervisor->pciback->pcifront->actual_device. I added printk
> message while binding to a event-chnl and event-chnl callback
> function in pcifront. I do see my printk message(while binding to
> event-chnl in domU) so I know kernel has correct module. After nic
> device is enabled via ifconfig in domU, I do not see messages (added
> in event-chnl callback function) from pcifront so I believe interrupt
> is not delivered to pcifront itself.
>
> static inline void schedule_pcifront_aer_op(struct pcifront_device
> *pdev)
> {
> if (test_bit(_XEN_PCIB_active, (unsigned long
> *)&pdev->sh_info->flags)
> && !test_and_set_bit(_PDEVB_op_active, &pdev->flags))
> {
> dev_dbg(&pdev->xdev->dev, "schedule aer frontend job
> \n");
> printk(KERN_DEBUG "schedule aer frontend job %d\n",
> pdev->irq); <<<<<<< never seen in dmesg in domU
> schedule_work(&pdev->op_work);
> }
> }
>
> dmesg on dom0 says "nobody cared...", forum has some old discussions
> around 2006 and hence didn't look into it in detail.
>
> Inputs will be very much appreciated.
>
> dmesg in dom0 and domU follows.
>
> Thanks
> /**********************dmesg on
> dom0***************************************/
> pciback 0000:08:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
> irq 17: nobody cared (try booting with the "irqpoll" option)
> Pid: 0, comm: swapper Tainted: G
> 2.6.27.42-0.1.1.xs0.1.1.737.1065xen #1
> [<c01544f7>] __report_bad_irq+0x27/0x90
> [<c015485c>] note_interrupt+0x2fc/0x330
> [<f01df92d>] ? usb_hcd_irq+0x4d/0xe0 [usbcore]
> [<c0153931>] ? handle_IRQ_event+0x31/0x90
> [<c01551e4>] handle_level_irq+0xe4/0x110
> [<c0107733>] do_IRQ+0x43/0x90
> [<c01413b9>] ? ktime_get+0x19/0x40
> [<c026cfcf>] evtchn_do_upcall+0xdf/0x1f0
> [<c0105565>] hypervisor_callback+0x41/0x49
> [<c010797b>] ? xen_safe_halt+0x8b/0xc0
> [<c010afde>] xen_idle+0x1e/0x50
> [<c0103728>] cpu_idle+0x58/0xa0
> [<c0338f4e>] rest_init+0x4e/0x60
> =======================
> handlers:
> [<f01df8e0>] (usb_hcd_irq+0x0/0xe0 [usbcore])
> Disabling IRQ #17
> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
> ata1.00: cmd ca/00:08:31:08:14/00:00:00:00:00/e0 tag 0 dma 4096 out
> res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
> ata1.00: status: { DRDY }
> ata1: soft resetting link
> ata1.00: qc timeout (cmd 0x27)
> ata1.00: failed to read native max address (err_mask=0x4)
> ata1.00: revalidation failed (errno=-5)
> ata1: soft resetting link
> ata1.00: qc timeout (cmd 0x27)
> ata1.00: failed to read native max address (err_mask=0x4)
> ata1.00: revalidation failed (errno=-5)
> ata1: soft resetting link
> ata1.00: qc timeout (cmd 0x27)
> ata1.00: failed to read native max address (err_mask=0x4)
> ata1.00: revalidation failed (errno=-5)
> ata1.00: disabled
> ata1.00: device reported invalid CHS sector 0
> ata1: soft resetting link
> ata1: EH complete
> sd 0:0:0:0: [sda] Result: hostbyte=DID_BAD_TARGET
> driverbyte=DRIVER_OK,SUGGEST_OK
> end_request: I/O error, dev sda, sector 1312817
> Buffer I/O error on device sda1, logical block 164102
> lost page write due to I/O error on sda1
>
>
> /**************************dmesg on
> domU*********************************************/
> [ 5.994657] EXT3 FS on xvda1, internal journal
> [ 8.431645] loop: module loaded
> [ 10.043554] NET: Registered protocol family 10
> [ 10.044013] lo: Disabled Privacy Extensions
> [ 11.859410] lp: driver loaded but no devices found
> [ 11.965333] ppdev: user-space parallel port driver
> [ 20.076012] eth0: no IPv6 routers present
> [ 170.192510] ncr 0000:00:00.0: enabling device (0000 -> 0002)
> [ 170.192551] ncr 0000:00:00.0: Xen PCI enabling IRQ: 17
> [ 170.192571] ncr: Found an ncr device (cfg revision 0)...
> [ 287.816020] ------------[ cut here ]------------
> [ 287.816031] WARNING: at net/sched/sch_generic.c:261 dev_watchdog
> +0xf8/0x188()
> [ 287.816037] NETDEV WATCHDOG: ncr (): transmit queue 0 timed out
> [ 287.816041] Modules linked in: ncr ppdev parport_pc lp parport
> acpi_cpufreq processor cpufreq_powersave cpufreq_stats
> cpufreq_ondemand freq_table cpufreq_userspace cpufreq_conservative
> ipv6 loop evdev pcspkr xen_netfront ext3 jbd mbcache xen_blkfront
> thermal_sys
> [ 287.816113] Pid: 0, comm: swapper Not tainted 2.6.32.9 #4
> [ 287.816118] Call Trace:
> [ 287.816127] [<c11f2db1>] ? dev_watchdog+0xf8/0x188
> [ 287.816135] [<c11f2db1>] ? dev_watchdog+0xf8/0x188
> [ 287.816143] [<c1037a1b>] ? warn_slowpath_common+0x5e/0x8a
> [ 287.816151] [<c1037a79>] ? warn_slowpath_fmt+0x26/0x2a
> [ 287.816159] [<c11f2db1>] ? dev_watchdog+0xf8/0x188
> [ 287.816168] [<c100665c>] ? check_events+0x8/0xc
> [ 287.816175] [<c1005ff4>] ? xen_force_evtchn_callback+0xc/0x10
> [ 287.816183] [<c100665c>] ? check_events+0x8/0xc
> [ 287.816191] [<c1006653>] ? xen_restore_fl_direct_end+0x0/0x1
> [ 287.816200] [<c124f4ea>] ? _spin_unlock_irqrestore+0xe/0x10
> [ 287.816209] [<c1042a74>] ? mod_timer+0x15f/0x168
> [ 287.816217] [<c11f2cb9>] ? dev_watchdog+0x0/0x188
> [ 287.816224] [<c104263c>] ? run_timer_softirq+0x195/0x217
> [ 287.816232] [<c103cb18>] ? __do_softirq+0xaa/0x151
> [ 287.816240] [<c103cbf0>] ? do_softirq+0x31/0x3c
> [ 287.816247] [<c103ccc6>] ? irq_exit+0x26/0x58
> [ 287.816256] [<c118f14b>] ? xen_evtchn_do_upcall+0x13f/0x151
> [ 287.816264] [<c1009087>] ? xen_do_upcall+0x7/0xc
> [ 287.816272] [<c10023a7>] ? hypercall_page+0x3a7/0x1001
> [ 287.816280] [<c1006075>] ? xen_safe_halt+0xf/0x1b
> [ 287.816287] [<c1004083>] ? xen_idle+0x23/0x30
> [ 287.816295] [<c100773c>] ? cpu_idle+0x46/0x62
> [ 287.816303] [<c136e7e0>] ? start_kernel+0x2c7/0x2ca
> [ 287.816310] [<c1370d33>] ? xen_start_kernel+0x5e6/0x5ee
> [ 287.816315] ---[ end trace 00c16cce2318c073 ]---
> [ 287.816320] ncr: Transmit timeout on ncr at 4294964250, latency 583
> [ 291.816017] ncr: Transmit timeout on ncr at 4294965250, latency
> 1000
> ...
>
> [ 412.673801] end_request: I/O error, dev xvda, sector 7608215
> [ 412.673826] end_request: I/O error, dev xvda, sector 7608223
> [ 412.673837] end_request: I/O error, dev xvda, sector 7608231
> [ 480.052035] INFO: task kjournald:565 blocked for more than 120
> seconds.
> [ 480.052047] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
> disables this message.
> [ 480.052057] kjournald D 121f1575 0 565 2 0x00000000
> [ 480.052069] cf864d80 00000246 c136b7c0 121f1575 c1c25040 c13ce460
> c13ce460 cf864f38
> [ 480.052091] c26fb460 00000000 5737fa96 00000045 c136b7c0 121f1e2a
> c1052d6d 6c3e6a53
> [ 480.052111] 00000000 121f1e2a 00000000 cf894690 cf864f38 cf864d80
> c26fb894 c26fb460
> [ 480.052131] Call Trace:
> [ 480.052143] [<c1052d6d>] ? ktime_get_ts+0xd7/0xdf
> [ 480.052154] [<c124e1eb>] ? io_schedule+0x5f/0x98
> [ 480.052162] [<c10d49a2>] ? sync_buffer+0x30/0x33
> [ 480.052169] [<c124e645>] ? __wait_on_bit+0x33/0x58
> [ 480.052176] [<c10d4972>] ? sync_buffer+0x0/0x33
> [ 480.052183] [<c124e720>] ? out_of_line_wait_on_bit+0xb6/0xbe
> [ 480.052190] [<c10d4972>] ? sync_buffer+0x0/0x33
> [ 480.052198] [<c104b97f>] ? wake_bit_function+0x0/0x3c
> [ 480.052205] [<c10d493f>] ? __wait_on_buffer+0x16/0x18
> [ 480.052223] [<d084622d>] ? journal_commit_transaction+0x85a/0xd6d
> [jbd]
> [ 480.052235] [<c10323bf>] ? finish_task_switch+0x3d/0x9c
> [ 480.052243] [<c100665c>] ? check_events+0x8/0xc
> [ 480.052250] [<c1006653>] ? xen_restore_fl_direct_end+0x0/0x1
> [ 480.052258] [<c124f4ea>] ? _spin_unlock_irqrestore+0xe/0x10
> [ 480.052267] [<c1042c5a>] ? try_to_del_timer_sync+0x79/0x80
> [ 480.052276] [<d0848b6f>] ? kjournald+0xbb/0x1e5 [jbd]
> [ 480.052283] [<c104b952>] ? autoremove_wake_function+0x0/0x2d
> [ 480.052292] [<d0848ab4>] ? kjournald+0x0/0x1e5 [jbd]
> [ 480.052299] [<c104b71e>] ? kthread+0x61/0x66
> [ 480.052305] [<c104b6bd>] ? kthread+0x0/0x66
> [ 480.052313] [<c1009037>] ? kernel_thread_helper+0x7/0x10
> [ 480.052320] INFO: task rsyslogd:1929 blocked for more than 120
> seconds.
> [ 480.052328] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
> disables this message.
> [ 480.052337] rsyslogd D 00001000 0 1929 1 0x00000000
> [ 480.052346] c1c20d40 00000286 d0877650 00001000 c1c25200 c13ce460
> c13ce460 c1c20ef8
> [ 480.052367] c26fb460 00000000 c1cd5600 c1cf02c0 cf4693ec cf576518
> c1005ff4 c26f0a5c
> [ 480.052387] cf99fd98 cf99fdac c100665c c26f025c c1c20ef8 c26f0a5c
> cf99fd98 cf99fdac
> [ 480.052407] Call Trace:
> [ 480.052418] [<d0877650>] ? __ext3_get_inode_loc+0xc7/0x275 [ext3]
> [ 480.052426] [<c1005ff4>] ? xen_force_evtchn_callback+0xc/0x10
> [ 480.052434] [<c100665c>] ? check_events+0x8/0xc
> [ 480.052442] [<d0845072>] ? do_get_write_access+0x1f8/0x3b5 [jbd]
> [ 480.052450] [<c104b97f>] ? wake_bit_function+0x0/0x3c
> [ 480.052459] [<d0845247>] ? journal_get_write_access+0x18/0x26
> [jbd]
> [ 480.052469] [<d0882caf>] ? __ext3_journal_get_write_access
> +0x13/0x32 [ext3]
> [ 480.052479] [<d0877baf>] ? ext3_reserve_inode_write+0x2d/0x5d
> [ext3]
> [ 480.052489] [<d0877bf0>] ? ext3_mark_inode_dirty+0x11/0x27 [ext3]
> [ 480.052499] [<d0877d05>] ? ext3_dirty_inode+0x50/0x63 [ext3]
> [ 480.052507] [<c10cf541>] ? __mark_inode_dirty+0x20/0x10c
> [ 480.052515] [<c10c7bc5>] ? file_update_time+0xbe/0xdf
> [ 480.052523] [<c109107b>] ? __generic_file_aio_write+0x2f7/0x452
> [ 480.052531] [<c1006653>] ? xen_restore_fl_direct_end+0x0/0x1
> [ 480.052539] [<c124f4ea>] ? _spin_unlock_irqrestore+0xe/0x10
> [ 480.052546] [<c104e617>] ? hrtimer_try_to_cancel+0x6e/0x83
> [ 480.052554] [<c104e625>] ? hrtimer_try_to_cancel+0x7c/0x83
> [ 480.052561] [<c1091227>] ? generic_file_aio_write+0x51/0x93
> [ 480.052571] [<c10b8680>] ? do_sync_write+0xc0/0x107
> [ 480.052578] [<c104b952>] ? autoremove_wake_function+0x0/0x2d
> [ 480.052586] [<c102dd9e>] ? pick_next_task_fair+0x95/0x9c
> [ 480.052593] [<c124e105>] ? schedule+0x5ea/0x671
> [ 480.052601] [<c1107ae8>] ? security_file_permission+0xc/0xd
> [ 480.052609] [<c10b85c0>] ? do_sync_write+0x0/0x107
> [ 480.052616] [<c10b900b>] ? vfs_write+0x84/0x12f
> [ 480.052623] [<c10b914e>] ? sys_write+0x3c/0x63
> [ 480.052630] [<c10084b4>] ? sysenter_do_call+0x12/0x28
>
>
>
>
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- Re: [Xen-devel] domU guest for xcp 0.1.1, (continued)
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ian Campbell
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ritu kaur
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ian Campbell
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ritu kaur
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ritu kaur
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ian Campbell
- Re: [Xen-devel] domU guest for xcp 0.1.1, Pasi Kärkkäinen
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ritu kaur
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ritu kaur
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ian Campbell
- Re: [Xen-devel] domU guest for xcp 0.1.1,
Ritu kaur <=
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ian Campbell
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ritu kaur
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ian Campbell
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ian Campbell
- Re: [Xen-devel] domU guest for xcp 0.1.1, Konrad Rzeszutek Wilk
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ritu kaur
- Re: [Xen-devel] domU guest for xcp 0.1.1, Konrad Rzeszutek Wilk
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ritu kaur
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ritu kaur
- Re: [Xen-devel] domU guest for xcp 0.1.1, Ritu kaur
|
|
|