Bernhard Pfund wrote:
Jan Kiszka wrote:
Please post the oops. Also include the Adeos patch version you are using
for this.

Jan


Hi Jan

Eventually I found the call that is responsible for the mess. It's
basically not in the rt_e1000 driver when loaded, but the ioctl sent by
rtifconfig (ifonfig of RTnet) when trying to activate the NIC. I enabled
i-pipe debugging in the kernel and got the following. I also posted the
trace to the RTAI list, but maybe you've seen something similar before?

That's good that you forwarded it as this is an Adeos issue, not an RTAI thing. Added the related list.


Bernhard

Adeos is RTAI's hal-linux-2.6.26-x86-2.0-09.patch

OK.


I-pipe: Domain RTAI registered.
RTAI[hal]: <magma> mounted over IPIPE-NOTHREADS 2.0-09.
RTAI[hal]: compiled with gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7).
RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs VECTORED),
ISOL_CPUS_MASK: e).
PIPELINE layers:
f8936600 9ac15d93 RTAI 200
c0737540 0 Linux 100
RTAI[malloc]: global heap size = 4194304 bytes, <BSD>.
RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>,
kstacks pool size = 1048576 bytes.
RTAI[sched]: hard timer type/freq = APIC/16666663(Hz); default timing:
periodic; linear timed lists.
RTAI[sched]: Linux timer freq = 1000 (Hz), CPU freq = 2400046000 hz.
RTAI[sched]: timer setup = 999 ns, resched latency = 0 ns.
RTAI[usi]: enabled.
RTAI[rtai_msgq]: loaded.
RTAI[mq]: loaded.
RTDM started.

*** RTnet 0.9.11 - built on Aug 13 2008 22:31:19 ***

RTnet: initialising real-time networking
Intel(R) PRO/1000 Network Driver - version 7.1.9
Copyright (c) 1999-2006 Intel Corporation.
ACPI: PCI Interrupt Link [APC8] enabled at IRQ 16
ACPI: PCI Interrupt 0000:03:00.0[A] -> Link [APC8] -> GSI 16 (level,
low) -> IRQ 16
PCI: Setting latency timer of device 0000:03:00.0 to 64
e1000: 0000:03:00.0: e1000_probe: (PCI Express:2.5Gb/s:Width x1)
00:1b:21:1e:56:64
RTnet: registered rteth0
e1000: rteth0: e1000_probe: Intel(R) PRO/1000 Network Connection
I-pipe: Detected illicit call from domain 'RTAI'
        into a service reserved for domain 'Linux' and below.
Pid: 0, comm: swapper Not tainted 2.6.26.2-FuCS #3
 [<c0156866>] ipipe_check_context+0xd6/0xf0
 [<c03e202e>] <6>e1000: rteth0: e1000_watchdog: NIC Link is Up 1000 Mbps
Full Duplex
_spin_lock_irqsave+0x1e/0x80
 [<c024a7a6>] pci_bus_read_config_word+0x36/0x80
 [<c024c29e>] __pci_bus_find_cap_start+0x1e/0x50
 [<c024c7f4>] pci_find_capability+0x24/0x50
 [<c0254132>] msi_set_enable+0x22/0x80
 [<c01176f3>] ? mcount+0x1f/0x23
 [<c025444f>] msi_set_mask_bits+0xcf/0xe0
 [<c01176f3>] ? mcount+0x1f/0x23
 [<c02546f7>] unmask_msi_irq+0x17/0x30
 [<c01542da>] default_enable+0x1a/0x30
 [<f892f1ee>] rt_enable_irq+0xe/0x10 [rtai_hal]
 [<f8dabd99>] ? xnintr_irq_handler+0x149/0x1f0 [rtai_rtdm]
 [<f893164b>] rtai_hirq_dispatcher+0xfb/0x430 [rtai_hal]
 [<c01021c5>] default_idle+0x45/0x60
 [<c0102180>] default_idle+0x0/0x60
 [<c0103cc7>] common_interrupt+0x2f/0x54
 [<c0102180>] default_idle+0x0/0x60
 [<c01500d8>] cgroup_file_write+0x118/0x140
 [<c01021c5>] default_idle+0x45/0x60
 [<c0101b76>] cpu_idle+0x86/0x140
 [<c03dd7bd>] start_secondary+0x16d/0x210
 [<c03d3a48>] initialize_secondary+0x8/0x20
 =======================
I-pipe tracer log (100 points):
 |  +*func                    0 ipipe_trace_panic_freeze+0x9
(ipipe_check_context+0x94)
 |  +*func                    0 find_next_bit+0xa (__next_cpu+0x1a)
 |  +*func                    0 __next_cpu+0x9 (ipipe_check_context+0x88)
 |  +*func                    0 find_next_bit+0xa (__next_cpu+0x1a)
 |  +*func                    0 __next_cpu+0x9 (ipipe_check_context+0x88)
 |  +*func                    0 find_next_bit+0xa (__next_cpu+0x1a)
 |  +*func                    0 __next_cpu+0x9 (ipipe_check_context+0x88)
 |  +*func                    0 find_next_bit+0xa (__next_cpu+0x1a)
 |  +*func                    0 __next_cpu+0x9 (ipipe_check_context+0x88)
 |  +*func                    0 find_first_bit+0xa (__first_cpu+0x12)
 |  +*func                   -1 __first_cpu+0x8 (ipipe_check_context+0x66)
 |  +*func                   -1 ipipe_check_context+0x14
(_spin_lock_irqsave+0x1e)
 |  +*func                   -1 _spin_lock_irqsave+0x12
(pci_bus_read_config_word+0x36)
 |  +*func                   -1 pci_bus_read_config_word+0x14
(__pci_bus_find_cap_start+0x1e)
 |  +*func                   -1 __pci_bus_find_cap_start+0xc
(pci_find_capability+0x24)
 |  +*func                   -1 pci_find_capability+0x11
(msi_set_enable+0x22)
 |  +*func                   -1 msi_set_enable+0x14 (msi_set_mask_bits+0xcf)
 |  +*func                   -1 msi_set_mask_bits+0xe (unmask_msi_irq+0x17)
 |  +*func                   -1 unmask_msi_irq+0x9 (default_enable+0x1a)

I think to remember a similar issue biting the preempt-rt patch, and that resulted in some activity to cache that capability information. /me needs to dig into the archives, will let you know if I find something (tomorrow, likely).

 |  +*func                   -2 default_enable+0x9 (rt_enable_irq+0xe
[rtai_hal])
 |  +*func                   -2 alloc_rtskb+0x14 [rtnet]
(e1000_alloc_rx_buffers+0x147 [rt_e1000])
 |  +*func                   -2 e1000_alloc_rx_buffers+0xe [rt_e1000]
(e1000_intr+0x37d [rt_e1000])
 |  +*func                   -5 e1000_intr+0x11 [rt_e1000]
(xnintr_irq_handler+0x9e [rtai_rtdm])
 |  +*func                   -5 xnintr_irq_handler+0xe [rtai_rtdm]
(rtai_hirq_dispatcher+0xfb [rtai_hal])
 |  +*func                   -5 ack_ioapic_irq+0x8
(__ipipe_ack_edge_irq+0xe)
 |  +*func                   -6 __ipipe_ack_edge_irq+0x8
(__ipipe_ack_irq+0x19)
 |  +*func                   -6 __ipipe_ack_irq+0x8
(rtai_hirq_dispatcher+0x66 [rtai_hal])
 |   +begin   0xffffff23     -6 common_interrupt+0x29 (default_idle+0x45)
     +end     0x8000000e   -600 default_idle+0x43 (cpu_idle+0x86)
     +func                 -600 default_idle+0x8 (cpu_idle+0x86)
 |   +end     0x80000001   -600 ipipe_suspend_domain+0xd7 (cpu_idle+0x84)
 |   #begin   0x80000001   -600 ipipe_suspend_domain+0xee (cpu_idle+0x84)
     #func                 -600 ipipe_suspend_domain+0xe (cpu_idle+0x84)
     +func                 -601 ipipe_check_context+0x14 (cpu_idle+0x5b)
     +func                 -601 ipipe_check_context+0x14
(_spin_unlock_irqrestore+0x23)
 |   +end     0x80000000   -601 __ipipe_unstall_root+0x4a
(__ipipe_restore_root+0x27)
 |   #begin   0x80000000   -601 __ipipe_unstall_root+0x5b
(__ipipe_restore_root+0x27)
     #func                 -601 __ipipe_unstall_root+0x8
(__ipipe_restore_root+0x27)
     #func                 -601 __ipipe_restore_root+0x8
(_spin_unlock_irqrestore+0x3d)
     #func                 -601 _spin_unlock_irqrestore+0x8
(rcu_check_callbacks+0x5c)
     #func                 -601 __rcu_advance_callbacks+0x8
(rcu_check_callbacks+0x35)
     #func                 -601 ipipe_check_context+0x14
(_spin_lock_irqsave+0x49)
     +func                 -602 ipipe_check_context+0x14
(_spin_lock_irqsave+0x1e)
     +func                 -602 _spin_lock_irqsave+0x12
(rcu_check_callbacks+0x2c)
     +func                 -602 rcu_check_mb+0x8 (rcu_check_callbacks+0x1b)
     +func                 -602 rcu_check_callbacks+0xa (cpu_idle+0xb2)
     +func                 -602 rcu_pending+0x8 (cpu_idle+0xa5)
 |   +end     0x8000000d   -602 __ipipe_unstall_iret_root+0x36
(restore_nocheck_notrace+0x0)
 |   #func                 -602 __ipipe_unstall_iret_root+0x9
(restore_nocheck_notrace+0x0)
 |   #end     0xffffff15   -602 ipipe_ipiX+0x3e (default_idle+0x45)
 |   +end     0x8000000d   -603 __ipipe_unstall_iret_root+0x36
(restore_nocheck_notrace+0x0)
 |   #func                 -603 __ipipe_unstall_iret_root+0x9
(restore_nocheck_notrace+0x0)
     #func                 -605 __ipipe_do_critical_sync+0x9
(__ipipe_sync_stage+0x27b)
 |   #end     0x80000000   -606 __ipipe_sync_stage+0x21f
(rtai_hirq_dispatcher+0x3a1 [rtai_hal])
 |   +func                 -606 __ipipe_sync_stage+0xe
(rtai_hirq_dispatcher+0x3a1 [rtai_hal])
 |   #func                 -606 __ipipe_ack_apic+0x8
(rtai_hirq_dispatcher+0x257 [rtai_hal])
 |   +begin   0xffffff15   -606 ipipe_ipiX+0x2e (default_idle+0x45)
     +end     0x8000000e  -113749 default_idle+0x43 (cpu_idle+0x86)
     +func                -113749 default_idle+0x8 (cpu_idle+0x86)
 |   +end     0x80000001  -113749 ipipe_suspend_domain+0xd7 (cpu_idle+0x84)
 |   #begin   0x80000001  -113749 ipipe_suspend_domain+0xee (cpu_idle+0x84)
     #func                -113749 ipipe_suspend_domain+0xe (cpu_idle+0x84)
     +func                -113749 ipipe_check_context+0x14 (cpu_idle+0x5b)
     +func                -113749 rcu_pending+0x8 (cpu_idle+0xa5)
 |   +end     0x80000000  -113750 __ipipe_unstall_root+0x4a
(__ipipe_restore_root+0x27)
 |   #begin   0x80000000  -113750 __ipipe_unstall_root+0x5b
(__ipipe_restore_root+0x27)
     #func                -113750 __ipipe_unstall_root+0x8
(__ipipe_restore_root+0x27)
     #func                -113750 __ipipe_restore_root+0x8
(tick_nohz_stop_sched_tick+0x23b)
     #func                -113750 ipipe_check_context+0x14
(hrtimer_start+0xe1)
     #func                -113750 ipipe_check_context+0x14
(_spin_unlock_irqrestore+0x23)
     #func                -113750 __ipipe_restore_root+0x8
(_spin_unlock_irqrestore+0x19)
     #func                -113750 _spin_unlock_irqrestore+0x8
(hrtimer_start+0xd2)
     #func                -113750 ipipe_check_context+0x14
(hrtimer_start+0xba)
     #func                -113750 rb_insert_color+0xe (enqueue_hrtimer+0x7d)
     #func                -113751 lapic_next_event+0x8
(clockevents_program_event+0x9e)
     #func                -113751 clockevents_program_event+0x14
(tick_program_event+0x44)
     #func                -113751 set_normalized_timespec+0x8
(ktime_get_ts+0x43)
     #func                -113751 native_read_tsc+0x8 (read_tsc+0xe)
     #func                -113751 read_tsc+0x9 (getnstimeofday+0x48)
     #func                -113751 getnstimeofday+0xe (ktime_get_ts+0x22)
     #func                -113751 ktime_get_ts+0xa (ktime_get+0x1e)
     #func                -113751 ktime_get+0x14 (tick_program_event+0x29)
     #func                -113751 tick_program_event+0xe
(hrtimer_reprogram+0x86)
     #func                -113751 hrtimer_reprogram+0x14
(enqueue_hrtimer+0xaa)
     #func                -113751 enqueue_hrtimer+0xe (hrtimer_start+0xad)
     #func                -113752 rb_erase+0xe (__remove_hrtimer+0x57)
     #func                -113752 hrtimer_force_reprogram+0xa
(__remove_hrtimer+0x83)
     #func                -113752 rb_next+0x9 (__remove_hrtimer+0x5e)
     #func                -113752 __remove_hrtimer+0x16
(hrtimer_start+0x123)
     #func                -113752 ipipe_check_context+0x14
(_spin_lock_irqsave+0x49)
     #func                -113752 ipipe_check_context+0x14
(_spin_lock_irqsave+0x1e)
     #func                -113752 _spin_lock_irqsave+0x12
(lock_hrtimer_base+0x28)
     #func                -113752 lock_hrtimer_base+0x16
(hrtimer_start+0x1e)
     #func                -113752 hrtimer_start+0xe
(tick_nohz_stop_sched_tick+0x255)
     #func                -113753 hweight32+0x8
(select_nohz_load_balancer+0x58)
     #func                -113753 hweight32+0x8
(select_nohz_load_balancer+0x4a)
     #func                -113753 select_nohz_load_balancer+0xa
(tick_nohz_stop_sched_tick+0x287)
     #func                -113753 rcu_needs_cpu+0x8
(tick_nohz_stop_sched_tick+0x13c)
     #func                -113753 ipipe_check_context+0x14
(_spin_unlock_irqrestore+0x23)
     #func                -113753 __ipipe_restore_root+0x8
(_spin_unlock_irqrestore+0x19)

Jan

Attachment: signature.asc
Description: OpenPGP digital signature

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
RTnet-users mailing list
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to