Re: In-kernel tasks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2005-11-06 at 15:01 +0100, Oliver Korpilla wrote:
> I've mentioned timing exactness. Furthermore I don't think having context
> switches when you can do without will do anything for performance. So my
> terminology. I get shorter code paths, I get a minimal performance benefit,
> I save a lot on memory copies, and my timing exactness / latency improves as
> well.

Yuo loose the comfortability of the user-space like a real C-library,
stacks > 8k or 4k, lots of other libraries, no risk of freezing/oopsing
the whole machine, etc..

> Since I do get benefits on all fronts, there is no mixup in terminology· As
> long as the application can be held simple enough, an in-kernel approach
> works. At least that is my conclusion.

The "simple enough" probably rules out almost all real interesting
applications.
If you have a netfilter extension, that's completely another thing.

> > > If there weren't performance and overhead differences > between a
> > protected memory approach and doing it in
> > > kernel space, why are nearly all realtime OS
> > > without that distinction?

*If* you have a core OS like typical RT-OS have, you *have* a
sys-call-equivalent on every message since it is the only chance to save
the memory manager from programmers faults.
BTW does "realtime" not necessarily mean "fast". It means "deterministic
in time" in the very first place.

You can use RTAI or similar stuff. And with RTAI you can have
Realtime-Tasks in Userspace (to put it simple).

> > In my humble opinion this is because they're too simplistic.
> 
> Being simple is an advantage if what you want is determinism. Optimizing for
> short codepaths and minimal latency may seem simplistic, but all the
> throughput optimizations found in Linux and the more complex coding make it
> hard to use it in embedded realtime applications.

You got it - the linux kernel is not for realtime and this will IMHO not
change because if you want realtime on layer X you need realtime on
layers below - with the overhead of guaranteeing the realtime behaviour
over all the layers. And a realtime application is (and must be)
designed on the whole for realtime behaviour (at least where it is
necessary and specified) - which e.g. rules out 99% of all libraries.
IMHO it boils down to either "fast on the average and/or long run" or
"realtime".

Or do you mean "realtime" as used now by marketing and sales droids as
buzzword for "it's as fast as affordable"?

	Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services




--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux