From: Jan Kiszka <jan.kiszka@domain.hid>
To: Markus.Franke@domain.hid
Cc: Xenomai-help@domain.hid
Subject: Re: [Xenomai-help] CONFIG_PREEMPT & irqbench
Date: Wed, 14 Feb 2007 11:28:56 +0100 [thread overview]
Message-ID: <45D2E468.3080402@domain.hid> (raw)
In-Reply-To: <45D2DD6E.5030800@domain.hid>
Markus Franke wrote:
> Jan Kiszka wrote:
>> Markus Franke wrote:
>>> I am running some latency tests with irqbench/irqloop. I am wondering
>>> whether it would be possible to achieve better results when activating
>>> CONFIG_PREEMPT and CONFIG_PREEMPT_VOLUNTARILY during the kernel
>>> configuration and running irqloop in User Mode over this kernel?
>>
>> Nope.
>>
>>
>>> Does it make any sense?
>>
>> Nope. :)
>> The Linux kernel is already fully preemptible by Xenomai once you
>> applied the I-pipe patch. Therefore, you are free to pick the Linux
>> preemption strategy according to your *Linux* load, independent of what
>> the real-time part needs.
>
> Well, "Native-API-Tour.pdf" states that everytime a mode switch from
> Primary Domain to Secondary Domain is made (e.g. Linux system call like
> ioctl()), Xenomai can ease from the
> "continuous trend of improvements of Linux 2.6 regarding
> preemptability". So CONFIG_PREEMPT should have an impact on measurements
> with Xenomai, maybe not with irqbench/irqloop. The problem here is that
> we don't have a mode switch, right? When running irqloop as User-Task it
> simply runs in Secondary Mode, right?
Of course, irqloop runs in *primary* mode to be able to handle the
events deterministically. So it is not directly affected by CONFIG_PREEMPT.
Yes, if you have an RT thread that issues syscalls and wishes to have
them handled as fast as possible, CONFIG_PREEMPT should be enabled (and
CONFIG_XENO_OPT_RPIDISABLE should remain off, maybe you even want to
consider CONFIG_XENO_OPT_ISHIELD then). Such RT application designs are
tricky to get correct and deterministic, so it's often better to not
rely on these properties and rather seek a clear separation of pure RT
threads on the one side and Linux syscall issuing non-RT or RT
borderline threads (low-prio RT threads that are being switched back and
forth between primary and secondary mode) on the other.
>
>> Do you have CONFIG_DEBUG_PREEMPT set as well then? This option still as
>> a small but measurable impact on Xenomai due to micro-dependencies that
>> as scheduled to be removed in the near future.
>
> I cannot see anything like
>
> CONFIG_DEBUG_PREEMPT=y
> or
> #CONFIG_DEBUG_PREEMPT is not set
>
> in my config-file. The parameter simply doesn't exist.
Shadowed by CONFIG_DEBUG=n likely.
Jan
next prev parent reply other threads:[~2007-02-14 10:28 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-14 0:01 [Xenomai-help] CONFIG_PREEMPT & irqbench Markus Franke
2007-02-14 8:53 ` Jan Kiszka
2007-02-14 9:00 ` Jan Kiszka
2007-02-14 9:59 ` Markus Franke
2007-02-14 10:17 ` Jan Kiszka
2007-02-14 9:59 ` Markus Franke
2007-02-14 10:28 ` Jan Kiszka [this message]
2007-02-14 10:46 ` Markus Franke
2007-02-14 12:10 ` Dmitry Adamushko
2007-02-14 12:54 ` Markus Franke
2007-02-14 12:22 ` 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=45D2E468.3080402@domain.hid \
--to=jan.kiszka@domain.hid \
--cc=Markus.Franke@domain.hid \
--cc=Xenomai-help@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.