From: Jan Kiszka <jan.kiszka@domain.hid>
To: Philippe Gerum <rpm@xenomai.org>
Cc: xenomai-core <xenomai@xenomai.org>
Subject: Re: [Xenomai-core] [BUG] trunk: screwed Linux irq state
Date: Mon, 12 Feb 2007 12:49:05 +0100 [thread overview]
Message-ID: <45D05431.10409@domain.hid> (raw)
In-Reply-To: <45CFBE7B.3050906@domain.hid>
[-- Attachment #1: Type: text/plain, Size: 3640 bytes --]
Jan Kiszka wrote:
> 2.6.19 didn't magically start to work as well. Instead I have a back
> trace now, see attachment.
>
> I included a full set of 16k points, but the thrilling things are around
> -73 to -25: Some Linux process with IRQs on gets preempted by an RT-IRQ
> (RTnet NIC). That triggers an RT kernel thread to run for a while (RTnet
> stack manager, prio 98). But when returning to Linux again, its IRQs
> remain masked now. The reason must be that weird exception at -62. Don't
> know where it comes from and why is there no report about THAT issue in
> the kernel logs.
The cause of this page fault will get tracked down later today, but the
way it is handled already causes some doubts to me. To make discussion
easier, here is the relevant excerpt from the trace:
> : +func -73+ 1.426 link_path_walk+0x14 (__link_path_walk+0xca0)
> :| +func -72 0.605 __ipipe_handle_irq+0x14 (common_interrupt+0x18)
> :| +func -71 0.472 __ipipe_ack_irq+0x8 (__ipipe_handle_irq+0xaf)
> :| +func -70 0.224 __ipipe_ack_level_irq+0x12 (__ipipe_ack_irq+0x19)
> :| +func -70+ 4.424 mask_and_ack_8259A+0x14 (__ipipe_ack_level_irq+0x22)
> :| +func -66 0.475 __ipipe_dispatch_wired+0x14 (__ipipe_handle_irq+0x62)
> :| # func -65 0.974 xnintr_irq_handler+0xe (__ipipe_dispatch_wired+0x95)
> :| # func -64+ 1.892 rtl8139_interrupt+0x11 [rt_8139too] (xnintr_irq_handler+0x3b)
> :| # func -62 0.382 __ipipe_handle_exception+0xe (error_code+0x3e)
> :| # func -62 0.222 __ipipe_test_root+0x8 (__ipipe_handle_exception+0x1a)
> :| # func -62 0.377 __ipipe_stall_root+0x8 (__ipipe_handle_exception+0x15b)
> :| #*func -62 0.173 trace_hardirqs_off+0xc (__ipipe_handle_exception+0x165)
> :| #*func -61 0.211 __ipipe_test_root+0x8 (trace_hardirqs_off+0x2d)
> :| #*func -61+ 1.965 do_page_fault+0xe (__ipipe_handle_exception+0x6d)
> : #*func -59 0.180 trace_hardirqs_on+0x11 (__ipipe_handle_exception+0xd9)
> : #*func -59 0.163 __ipipe_test_root+0x8 (trace_hardirqs_on+0x5e)
> : #*func -59 0.396 mark_held_locks+0xe (trace_hardirqs_on+0x8b)
> : #*func -58 0.212 mark_held_locks+0xe (trace_hardirqs_on+0xc9)
> : #*func -58 0.461 __ipipe_restore_root+0x8 (__ipipe_handle_exception+0xe1)
> : #*func -58 0.253 __ipipe_unstall_root+0x8 (__ipipe_restore_root+0x18)
> : # func -57 0.224 __ipipe_stall_root+0x8 (ret_from_exception+0x5)
> : #*func -57 0.366 trace_hardirqs_off+0xc (ret_from_exception+0xe)
> : #*func -57 0.327 __ipipe_test_root+0x8 (trace_hardirqs_off+0x2d)
> :| #*func -57+ 2.089 __ipipe_unstall_iret_root+0x8 (restore_nocheck_notrace+0x0)
> :| #*func -54+ 1.444 alloc_rtskb+0xa [rtnet] (rtl8139_interrupt+0x182 [rt_8139too])
> :| #*func -53+ 1.172 rt_eth_type_trans+0xe [rtnet] (rtl8139_interrupt+0x1d6 [rt_8139too])
The fault gets forwarded to Linux because ipipe_trap_notify doesn't
choke: we are neither running over a task with PF_EVNOTIFY set nor over
a kernel thread yet (IPIPE_NOSTACK_FLAG). Still, we are already in
primary domain, so I wonder if this forwarding is intentional. At least
it seems to break some things later on...
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
next prev parent reply other threads:[~2007-02-12 11:49 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-11 22:13 [Xenomai-core] [BUG] trunk: screwed Linux irq state Jan Kiszka
2007-02-11 22:26 ` Gilles Chanteperdrix
2007-02-11 22:31 ` Gilles Chanteperdrix
2007-02-11 22:42 ` Philippe Gerum
2007-02-11 23:07 ` Gilles Chanteperdrix
2007-02-11 23:49 ` Philippe Gerum
2007-02-12 0:20 ` Gilles Chanteperdrix
2007-02-12 0:28 ` Jan Kiszka
2007-02-12 1:10 ` Jan Kiszka
2007-02-12 11:49 ` Jan Kiszka [this message]
2007-02-12 13:16 ` Gilles Chanteperdrix
2007-02-12 13:46 ` Philippe Gerum
2007-02-12 13:49 ` Jan Kiszka
2007-02-12 14:10 ` Philippe Gerum
2007-02-12 14:39 ` Gilles Chanteperdrix
2007-02-12 15:10 ` Philippe Gerum
2007-02-12 19:02 ` Gilles Chanteperdrix
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45D05431.10409@domain.hid \
--to=jan.kiszka@domain.hid \
--cc=rpm@xenomai.org \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.