All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@domain.hid>
To: Philippe Gerum <rpm@xenomai.org>
Cc: grugh@domain.hid, xenomai-core <xenomai@xenomai.org>
Subject: Re: [Xenomai-core] [RFC] non-RT-safe rtdm_event_*wait
Date: Mon, 22 May 2006 09:52:32 +0200	[thread overview]
Message-ID: <44716DC0.7080709@domain.hid> (raw)
In-Reply-To: <446F09B8.6000609@domain.hid>

[-- Attachment #1: Type: text/plain, Size: 3341 bytes --]

Philippe Gerum wrote:
> Jan Kiszka wrote:
>> Hi,
>>
>> attached is an experimental patch to allow blocking from non-RT context
>> on RTDM events. Petr Cervenka made me think about this extension which
>> could partially open RTDM drivers also for non-shadowed, i.e. standard
>> Linux tasks.
>>
>> Why not simply shadowing non-RT waiters? Because this kind of sync
>> support should be cheaper than adding yet another (though low-prio) task
>> to the real-time domain ("should" == I didn't benchmark my believe). And
> 
> I would rather move the logic to the sync object at nucleus level since
> it's a useful feature for all skins, but doing so, we would also drag a
> fair amount of complexity just for the sake of not having to shadow a
> Linux task. IMHO, leaving this at the skin level forks the
> implementation of the synchronization management, which raises the issue
> of duplicating functionalities only depending on the calling context.
> 
> Looking at the issue differently, we already know that we could shadow
> SCHED_NORMAL/SCHED_OTHER threads without promoting them to the
> SCHED_FIFO class - you actually submitted this patch, and it's waiting
> for -rc2 to be released before I merge it into mainline.
> 
> Given that, a shadow thread which remains in secondary mode is seen as
> suspended by the Xenomai scheduler, which means that the additional
> overhead is close to nil (aside of an additional shadow tcb), until it
> tries to grab the resource and thus moves to the primary domain, just
> for going to sleep.

I'm not concerned about a passive shadow, my aim is to reduce the impact
of active shadow threads without strict timing requirements. When there
is a larger number of them, they should not influence RT scheduling
significantly for just being woken up.

The other point might be the code path length of both non-RT wakeup
suspend/wakeup mechanisms. It's only an assessment, but I think this way
would be shorter. Anyway, numbers would speak clearer, and I guess this
should be done first before any further design decision.

> 
> IOW, I would rather use the allow-non-SCHED_FIFO-shadow patch to allow
> regular Linux tasks to pend seamlessly on Xenomai sync objects as true
> shadows, and add to the rtdm blocking syscall handler some code that
> would transparently promote any calling regular task as a Xenomai shadow
> on the fly, before undergoing the request. The other advantage of such
> approach is that the non-RT pending task is still known from the Xenomai
> sub-system (/proc/xenomai/ interface and so on), which may be useful
> given that it interacts with it. You could still apply a FIFO pending
> order with mixed RT and non-RT tasks the same way.

Hmm, on-demand shadowing might be an option. Ok, once non-SCHED_FIFO is
merged, we should have a look at both approaches from the performance
POV and compare potential differences with the required additional code.

> 
> Moving RTDM to native preemption would also be simpler, since RTDM would
> expect the issue to be handled at core level directly, and in the
> preempt-rt case, the issue of the caller's domain is actually a non-issue.
> 

Well, this is already the case for my proposal: no special handling of
rtdm_event_* depending on the caller's context anymore.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]

  reply	other threads:[~2006-05-22  7:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-18  7:46 [Xenomai-core] [RFC] non-RT-safe rtdm_event_*wait Jan Kiszka
2006-05-20 12:21 ` Philippe Gerum
2006-05-22  7:52   ` Jan Kiszka [this message]
2006-05-22 10:09     ` Philippe Gerum

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=44716DC0.7080709@domain.hid \
    --to=jan.kiszka@domain.hid \
    --cc=grugh@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.