From: Jan Kiszka <jan.kiszka@web.de>
To: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Cc: "Mauerer, Wolfgang" <wolfgang.mauerer@siemens.com>,
Xenomai <xenomai@xenomai.org>
Subject: Re: [Xenomai] [PATCH v3] nucleus: Convert intrlock to a sleeping Linux lock
Date: Sun, 06 Jan 2013 15:46:58 +0100 [thread overview]
Message-ID: <50E98E62.7090907@web.de> (raw)
In-Reply-To: <50E9897E.2000106@xenomai.org>
On 2013-01-06 15:26, Gilles Chanteperdrix wrote:
> On 01/06/2013 03:20 PM, Jan Kiszka wrote:
>
>> On 2013-01-06 14:55, Gilles Chanteperdrix wrote:
>>> On 01/06/2013 12:03 PM, Jan Kiszka wrote:
>>>
>>>> On 2013-01-06 11:55, Jan Kiszka wrote:
>>>>> On 2013-01-06 11:14, Philippe Gerum wrote:
>>>>>> On 01/03/2013 03:09 PM, Jan Kiszka wrote:
>>>>>>
>>>>>>> +static struct xnvfile_lock_ops vfile_stat_lockops = {
>>>>>>> + .get = xnintr_get_query_lock,
>>>>>>> + .put = xnintr_put_query_lock,
>>>>>>> +};
>>>>>>> +
>>>>>>> static struct xnvfile_snapshot stat_vfile = {
>>>>>>> .privsz = sizeof(struct vfile_stat_priv),
>>>>>>> .datasz = sizeof(struct vfile_stat_data),
>>>>>>> .tag = &nkpod_struct.threadlist_tag,
>>>>>>> .ops = &vfile_stat_ops,
>>>>>>> + .entry = { .lockops = &vfile_stat_lockops },
>>>>>>> };
>>>>>>
>>>>>> This would introduce a regression. stat_vfile's rewind/next handlers
>>>>>> compete with code altering the global thread queue which may run in
>>>>>> primary mode, such as xnpod_delete_thread() when deleting a kernel task.
>>>>>> So we can't use a linux lock to protect it.
>>>>>
>>>>> The Linux lock is held around this rewind loop (which is still in
>>>>> place), and it is not protecting anything thread related, just the
>>>>> appearance and disappearance of IRQs. I fail to see a conflict, and
>>>>> there are also no I-pipe/Xenomai warnings triggered with this pattern.
>>>>
>>>> Oh, now I see: The nklock is automatically taken if there are no
>>>> lockops. That needs to be done in the stat lockups as well, of course.
>>>> Will fix.
>>>
>>>
>>> The more I think about this, the more I find we should not be doing
>>> this. Xenomai 2.6.x is a stable branch, let us stop making such changes,
>>> this will allow us to start working on -forge. The warning is
>>> essentially a false-positive, I do not see any problem calling
>>> ipipe_virtualize_irq with the root domain stalled. We can skip it in the
>>> I-pipe core patches when compiling with CONFIG_IPIPE_LEGACY.
>>
>> Well, we need to support 2.6 for quite a while here, so I'm interested
>> in fixing such regressions,
>
>
> I repeat again: there is no regression, it is not invalid to call
> ipipe_virtualize_irq with the root domain stalled, and never was, the
> warning is new and a false positive. I am opposed to changing intrlock
> into a mutex with a lot of cascading consequences, the ones we see, the
> ones we will discover when people start using the next release.
>
> If you want to benefit from the full instrumentation of the I-pipe core,
> use xenomai-forge.
Unfortunately, forge wasn't ready for our workload last time we checked.
That's why we are stabilizing I-pipe x86 over 2.6 here, and that's why
we need working instrumentations also in legacy mode.
If you prefer to skip the warning in ipipe, then I will send a
corresponding patch. The lock conversion is still necessary for forge,
though.
Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
URL: <http://www.xenomai.org/pipermail/xenomai/attachments/20130106/efc4a149/attachment.pgp>
next prev parent reply other threads:[~2013-01-06 14:46 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-02 18:07 [Xenomai] [PATCH v2] nucleus: Convert intrlock to a sleeping Linux lock Jan Kiszka
2013-01-02 20:25 ` Jeff Webb
2013-01-03 10:46 ` Jan Kiszka
2013-01-03 14:09 ` [Xenomai] [PATCH v3] " Jan Kiszka
2013-01-06 10:14 ` Philippe Gerum
2013-01-06 10:55 ` Jan Kiszka
2013-01-06 11:03 ` Jan Kiszka
2013-01-06 13:55 ` Gilles Chanteperdrix
2013-01-06 14:20 ` Jan Kiszka
2013-01-06 14:26 ` Gilles Chanteperdrix
2013-01-06 14:35 ` Gilles Chanteperdrix
2013-01-06 14:46 ` Jan Kiszka [this message]
2013-01-06 15:09 ` Gilles Chanteperdrix
2013-01-06 15:11 ` Jan Kiszka
2013-01-06 15:15 ` Gilles Chanteperdrix
2013-01-06 15:19 ` Jan Kiszka
2013-01-06 15:26 ` Gilles Chanteperdrix
2013-01-06 15:31 ` 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=50E98E62.7090907@web.de \
--to=jan.kiszka@web.de \
--cc=gilles.chanteperdrix@xenomai.org \
--cc=wolfgang.mauerer@siemens.com \
--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.