From: Philippe Gerum <rpm@xenomai.org>
To: Jan Kiszka <jan.kiszka@domain.hid>
Cc: adeos-main <adeos-main@gna.org>, RTnet-users@domain.hid
Subject: Re: [Adeos-main] [RTnet-users] e1000 & MSI
Date: Thu, 14 Aug 2008 20:21:18 +0200 [thread overview]
Message-ID: <48A4779E.2000005@domain.hid> (raw)
In-Reply-To: <48A47192.3000307@domain.hid>
Philippe Gerum wrote:
> Jan Kiszka wrote:
>> Philippe Gerum wrote:
>>> bernhard@domain.hid wrote:
>>>>>> Found it. Could you give this patch a try and report the result?
>>>>>>
>>>>>> http://permalink.gmane.org/gmane.linux.kernel/682362
>>>> Applied and tested, no luck...
>>>>
>>>> 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 #1
>>>> [<c0156866>] ipipe_check_context+0xd6/0xf0
>>>> e1000: rteth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex
>>>> [<c03e206e>] _spin_lock_irqsave+0x1e/0x80
>>>> [<c024a7a6>] pci_bus_read_config_word+0x36/0x80
>>>> [<c0254156>] __msi_set_enable+0x46/0x80
>>>> [<c01176f3>] ? mcount+0x1f/0x23
>>>> [<c0254498>] msi_set_mask_bits+0xd8/0xe0
>>>> [<c01176f3>] ? mcount+0x1f/0x23
>>>> [<c0254737>] 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
>>>> [<c03dd7fd>] start_secondary+0x16d/0x210
>>>> [<c03d3a88>] initialize_secondary+0x8/0x20
>>>> =======================
>>>> I-pipe tracer log (100 points):
>>>> | +*func 0 ipipe_trace_panic_freeze+0x9
>>> I see no option aside of ironing the inner code that reads/writes the PCI
>>> config, so here is an ugly yet possible solution for x86, that might work
>>> (totally untested):
>> Very ugly. There is potentially some heavy code under this lock.
>
> No, actually, the worst-case code you could have is as usual x86-based, i.e.
> BIOS calls for raw pci_read/writes. Since we cannot cache PCI config values,
> there is no escape.
>
>> Wouldn't it be better to switch to soft-disabling directly, also given
>> that not all devices will support that method anyway?
>>
>
> Then you would have to teach all your clients on top of the I-pipe about this.
> Basically, the pipeline does not care that much here because soft disabling is
> already in place: this is a client issue.
>
Said differently: soft disabling may be obtained using ipipe_lock_irq(), instead
of poking into the PCI config, but this interface is a per-domain one, so
clients need to be aware of the "depth" of their action when calling it, so that
they apply the right masking to the right domain. This is why I'm saying that
this is a client issue, above all, because we need to think about it. Granted,
we could emulate hard stalling by locking the interrupt at the highest I-pipe stage.
Aside of this, yes, it would be perfectly sensible to use soft disabling using
that interface. But well, let's wait for upstream to eventually pick an option
for handling interrupts, that will last at least for a couple of releases per
their standard, before jumping into such a change.
--
Philippe.
prev parent reply other threads:[~2008-08-14 18:21 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080812075358.4cg1ix9945msccsc@domain.hid>
[not found] ` <48A12EA8.4070601@domain.hid>
[not found] ` <48A34D75.9090509@domain.hid>
2008-08-13 22:01 ` [Adeos-main] [RTnet-users] e1000 & MSI Jan Kiszka
2008-08-14 6:34 ` Jan Kiszka
2008-08-14 6:49 ` Jan Kiszka
2008-08-14 7:41 ` Philippe Gerum
2008-08-14 10:53 ` bernhard
2008-08-14 13:38 ` Philippe Gerum
2008-08-14 15:25 ` Gilles Chanteperdrix
2008-08-14 15:34 ` Bernhard Pfund
2008-08-14 15:52 ` Gilles Chanteperdrix
2008-08-14 16:57 ` Philippe Gerum
2008-08-16 11:24 ` Bernhard Pfund
2008-08-19 10:17 ` Philippe Gerum
2008-08-19 10:31 ` bernhard
2008-08-19 14:18 ` Philippe Gerum
2008-08-19 20:53 ` Bernhard Pfund
2008-08-20 9:38 ` Philippe Gerum
2008-08-25 12:16 ` bernhard
2008-08-25 12:58 ` Jan Kiszka
2008-08-25 13:48 ` bernhard
2008-08-25 14:15 ` Philippe Gerum
2008-08-14 17:35 ` Jan Kiszka
2008-08-14 17:55 ` Philippe Gerum
2008-08-14 18:21 ` Philippe Gerum [this message]
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=48A4779E.2000005@domain.hid \
--to=rpm@xenomai.org \
--cc=RTnet-users@domain.hid \
--cc=adeos-main@gna.org \
--cc=jan.kiszka@domain.hid \
/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.