From: Jan Kiszka <jan.kiszka@siemens.com>
To: Kai Bollue <mlist1@bollue.de>
Cc: Xenomai <xenomai@xenomai.org>
Subject: Re: [Xenomai] Sporadic freeze using RTnet
Date: Tue, 23 Apr 2013 19:18:03 +0200 [thread overview]
Message-ID: <5176C24B.3000300@siemens.com> (raw)
In-Reply-To: <5176C108.5050102@bollue.de>
On 2013-04-23 19:12, Kai Bollue wrote:
> On 23.04.2013 17:43, Jan Kiszka wrote:
>>
>> Here is the first (and hopefully the only) problem:
>>
>> [ 100.359484] I-pipe: Detected illicit call from head domain 'Xenomai'
>> [ 100.359484] <3> into a regular Linux service
>> [ 100.493487] | #*func [ 100.493482] Pid: 0, comm: swapper/6 Tainted: G O 3.5.7-xenomai-2.6.2.1 #7
>> [ 100.493483] Call Trace:
>> [ 100.493485] I-pipe tracer log (100 points):
>> [ 100.493510] | #*func 0 ipipe_prepare_panic+0x7 (ipipe_root_only+0x5d)
>> [ 100.493536] | #*func 0 ipipe_root_only+0x9 (add_preempt_count+0x15)
>> [ 100.493563] | #*func -1 add_preempt_count+0x9 (_raw_spin_lock_irqsave+0x56)
>> [ 100.493588] | # func -1 _raw_spin_lock_irqsave+0x7 (alloc_iommu+0x68)
>> [ 100.493612] | # func -1 alloc_iommu+0x11 (dma_map_area+0x58)
>> [ 100.493640] | # func -1 dma_map_area+0x11 (gart_map_page+0x67)
>> [ 100.493666] | # func -1 gart_map_page+0x8 (pci_map_single+0x82 [rt_eepro100])
>> [ 100.493693] | # func -1 __phys_addr+0x4 (pci_map_single+0x53 [rt_eepro100])
>> [ 100.493721] | # func -1 ___xnpod_lock_sched+0x4 (__xnpod_lock_sched+0x21 [rt_eepro100])
>> [ 100.493747] | + begin 0x80000000 -2 speedo_start_xmit+0x3a [rt_eepro100] (rtdev_locked_xmit+0x33 [rtnet])
>> [ 100.493778] + func -2 speedo_start_xmit+0x11 [rt_eepro100] (rtdev_locked_xmit+0x33 [rtnet])
>>
>> You have an IOMMU enabled, but the rt_eepro100 is lacking support for
>> premapping its DMA buffers so that it does not call into Linux IOMMU
>> remapping code during runtime. The latter raises the error above.
>>
>> Unless you depend on the IOMMU (unlikely unless KVM is on your feature
>> list), disable it and retry.
>
> OK, now we disabled IOMMU support in the kernel. Unfortunately, still
> the same problem.
Yeah, its hairy:
[ 94.352526] | #*func 0 ipipe_trace_panic_freeze+0x9 (ipipe_root_only+0x62)
[ 94.360774] | #*func 0 ipipe_prepare_panic+0x7 (ipipe_root_only+0x5d)
[ 94.368618] | #*func 0 ipipe_root_only+0x9 (add_preempt_count+0x15)
[ 94.376263] | #*func 0 add_preempt_count+0x9 (_raw_spin_lock_irqsave+0x56)
[ 94.384515] | # func 0 _raw_spin_lock_irqsave+0x7 (swiotlb_tbl_map_single+0x96)
[ 94.392925] | # func -1 __phys_addr+0x4 ( | # func -1 __phys_addr+0x4 (pci_map_single+0x53 [rt_eepro100])
[ 94.392945] | # func -1 ___xnpod_lock_sched+0x4 (__xnpod_lock_sched+0x21 [rt_eepro100])
[ 94.392954] | + begin 0x80000000 -2 speedo_start_xmit+0x3a [rt_eepro100] (rtdev_locked_xmit+0x33 [rtnet])
[ 94.392964] + func -2 speedo_start_xmit+0x11 [rt_eepro100] (rtdev_locked_xmit+0x33 [rtnet])
Now the swiotlb is active, a software IOMMU that helps on systems >4G
RAM with devices that can only DMA to 32-bit addresses (it provides
bounce buffers). You can work around that issue by limiting the memory
used by your system (mem=) or by using an RTnet NIC that does not have
this limitation (rt_e1000e and rt_igb compatible ones). Or add
pre-mapping support to the rt_e100pro. Check e.g. the conversion of the
e1000e for the pattern. Patches welcome.
Jan
--
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2013-04-23 17:18 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-22 17:50 [Xenomai] Sporadic freeze using RTnet Kai Bollue
2013-04-23 12:18 ` Jan Kiszka
2013-04-23 13:53 ` Kai Bollue
2013-04-23 14:05 ` Jan Kiszka
[not found] ` <5176AB28.7000305@bollue.de>
2013-04-23 15:43 ` Jan Kiszka
2013-04-23 17:12 ` Kai Bollue
2013-04-23 17:18 ` Jan Kiszka [this message]
2013-04-23 19:28 ` Kai Bollue
2013-04-24 7:49 ` Jan Kiszka
2013-04-24 12:41 ` Kai Bollue
2013-04-25 16:16 ` Jan Kiszka
2013-04-29 18:34 ` Kai Bollue
2013-04-29 18:42 ` Jan Kiszka
2013-05-02 17:05 ` Kai Bollue
2013-05-09 10:47 ` Jan Kiszka
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=5176C24B.3000300@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=mlist1@bollue.de \
--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.