From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Jan Kiszka <jan.kiszka@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: Rép. : Re: [Xenomai-help] Switch mode with x86
Date: Mon, 04 Dec 2006 10:46:33 +0100 [thread overview]
Message-ID: <4573EE79.1090306@domain.hid> (raw)
In-Reply-To: <45733D1B.7010805@domain.hid>
Jan Kiszka wrote:
> Philippe Gerum wrote:
>
>>On Sun, 2006-12-03 at 20:32 +0100, Jan Kiszka wrote:
>>
>>>Nicolas BLANCHARD wrote:
>>>
>>>>>>>>"Nicolas BLANCHARD" <n.blanchard@domain.hid> 29.11 11:25 >>>
>>>>>
>>>>>Hello,
>>>>>
>>>>>I've tested wiith Xenomai 2.3-rc2 (adeos 1.5-02)
>>>>>and change the config :
>>>>> - CONFIG_M586
>>>>> - disable CONFIG_INPUT_PCSPKR
>>>>
>>>>(it was on module)
>>>>
>>>>> - disable prio boosting (check
>>>>
>>>>CONFIG_XENO_OPT_RPDISALBLE)
>>>>
>>>>>and it seems to work better, one hour without blocking, it's a record
>>>>>for me.
>>>>>
>>>>>So, i will investigate to find which modification improve my problem.
>>>>
>>>>After somes tests (kernel compil), it seems that prio boost is
>>>>responsable of my
>>>>problem. When it's disable (kernel option checked) my program run
>>>>correctly.
>>>
>>>Confirmed!
>>>
>>>root@domain.hid :/root# cat /proc/xenomai/sched
>>>CPU PID PRI PERIOD TIMEOUT STAT NAME
>>> 0 0 99 0 0 R ROOT
>>> 0 837 99 9999312 0 X TASK1
>>> 0 838 0 10999998 0 R TASK2
>>>
>>>So far "only" on real hardware (P-I 133) with CONFIG_M586 and (this is
>>>likely also very important) CONFIG_PREEMPT. I'm now about to check if I
>>>can migrate this problem into qemu and/or capture it with the I-pipe tracer.
>>>
>>
>>Please also try moving task2 to the SCHED_FIFO class to see if things
>>evolve.
>>
>
>
> Here is the Xenomai scheduling sequence that leads to the deadlock. I
> raised the frequency of TASK2 a bit, and this seems to accelerate the
> lock-up.
>
> ...
>
>>:| *+[ 844] TASK2 1 -5061+ 4.436 xnpod_resume_thread+0x48 (gatekeeper_thread+0xf7)
>>:| *+[ 827] sshd -1 -5055+ 4.015 xnpod_schedule_runnable+0x45 (gatekeeper_thread+0x12e)
>>:| # [ 827] sshd -1 -5015+ 6.646 xnpod_schedule+0x81 (xnpod_schedule_handler+0x17)
>>:| # [ 844] TASK2 1 -4981+ 3.721 xnpod_schedule+0x81 (xnpod_suspend_thread+0x1e4)
>>:| # [ 75] gatekee -1 -4971+ 6.451 xnpod_schedule+0x7a2 (xnpod_schedule_handler+0x17)
>
>
> So far everything is fine. Now the thrilling parts start:
>
>
>>:| # [ 844] TASK2 1 -2992+ 9.954 xnpod_resume_thread+0x48 (xnthread_periodic_handler+0x28)
>>:| # [ 75] gatekee -1 -2978! 13.759 xnpod_schedule+0x81 (xnintr_irq_handler+0xec)
>>:| # [ 844] TASK2 1 -2955+ 7.842 xnpod_schedule+0x7a2 (xnpod_suspend_thread+0x1e4)
>>:| # [ 843] TASK1 99 -2858+ 7.977 xnpod_resume_thread+0x48 (xnthread_periodic_handler+0x28)
>>:| # [ 844] TASK2 1 -2848+ 8.466 xnpod_schedule+0x81 (xnintr_irq_handler+0xec)
>>:| # [ 843] TASK1 99 -2831+ 4.421 xnpod_schedule+0x7a2 (xnpod_suspend_thread+0x1e4)
>>:| # [ 843] TASK1 99 -2789+ 4.315 xnpod_schedule_runnable+0x45 (xnshadow_relax+0xd9)
>>:| # [ 843] TASK1 99 -2777+ 6.932 xnpod_schedule+0x81 (xnpod_suspend_thread+0x1e4)
>>:| # [ 827] sshd 99 -2762+ 4.917 xnpod_schedule+0x7a2 (xnintr_irq_handler+0xec)
>
>
> The trace captured almost 200 further milliseconds, but no more
> switching takes place (full dump available on request).
>
> So we have
>
> TASK2 resume -> TASK2 relax -> TASK1 resume/TASK2 preempted ->
> TASK2 relax -> Lock-up
>
> Gilles, are we able to produce such a sequence with the switchtest?
Probably not, with switchtest, only the task that is currently switching
is running, all other tasks are suspended.
--
Gilles Chanteperdrix
next prev parent reply other threads:[~2006-12-04 9:46 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-29 12:19 Rép. : Re: [Xenomai-help] Switch mode with x86 Nicolas BLANCHARD
2006-12-03 19:32 ` Jan Kiszka
2006-12-03 19:59 ` Philippe Gerum
2006-12-03 20:10 ` Jan Kiszka
2006-12-03 21:09 ` Jan Kiszka
2006-12-03 23:30 ` Philippe Gerum
2006-12-04 8:13 ` Jan Kiszka
2006-12-04 21:06 ` Jan Kiszka
2006-12-05 22:17 ` Philippe Gerum
2006-12-06 8:37 ` Jan Kiszka
2006-12-06 9:06 ` Philippe Gerum
2006-12-05 22:18 ` Philippe Gerum
2006-12-04 9:46 ` Gilles Chanteperdrix [this message]
2006-12-03 21:02 ` Philippe Gerum
[not found] <s575af89.064@domain.hid>
2006-12-05 17:15 ` Jan Kiszka
-- strict thread matches above, loose matches on Subject: below --
2006-12-05 12:33 Nicolas BLANCHARD
[not found] <s56d88c0.000@domain.hid>
2006-11-29 13:52 ` Jan Kiszka
2006-11-29 10:25 Nicolas BLANCHARD
[not found] <s56c97a4.096@domain.hid>
2006-11-28 20:27 ` Jan Kiszka
2006-11-28 19:09 Nicolas BLANCHARD
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=4573EE79.1090306@domain.hid \
--to=gilles.chanteperdrix@xenomai.org \
--cc=jan.kiszka@domain.hid \
--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.