Re: In-kernel tasks

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

 



> > 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.

It does not, because only a small part of my app runs in the kernel,
which is exactly the part that benefits greatly from it. It is an
isolated part, with a great need for timing exactness and minimal
latencies. All other processing is done in user space, with libraries,
scripting languages, etc.

Apache speeds up static content processing with an in-kernel module as
well. If you can isolate a task that can for this or that reason be done
better in the kernel in form of a driver, why not? IMNSHO several
applications can benefit from such an approach.

> If you have a netfilter extension, that's completely another thing.

I did that, too, but for my own purposes, so some adaptions were
necessary.

> BTW does "realtime" not necessarily mean "fast". It means "deterministic
> in time" in the very first place.

Never said anything else.

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

RTAI doesn't look like a sound solution to me. Too x86-centric. And LXRT
(the user space/kernel space/RTAI task combination) is not that mature,
and not ported. All in all RTAI does not look like a mature system at
all, your mileage may differ.

> 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.

That's why most realtime applications do not use libraries but instead
bind directly to a kernel, like in eCos and VxWorks. My application does
evaluate a similar approach in Linux to compare to those systems, to
compare to the results with a userspace solution, and to see how hard it
is to do.

And all the noncritical parts are free to use as much libraries and
other stuff as they want as well, so I see no such disadvantage as you
mention, anyhow.

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

No, until now I mean soft realtime: The most minimal latency available
with a vanilla Linux kernel. Possibly I could furthermore test the
realtime capabilities of kernel from Molnar (if and only if the PowerPC
gets fully supported (ktimer lacks when I last checked), or Montavista
and TimeSys kernels.

To be honest, I find this discussion rather fruitless, because I do not
want to find another approach. I simply wanted to know what a good way
is to represent an independent thread of execution - a unit of
scheduling. My reasons are sound. If realtime applications can be
reliably done on VxWorks or eCos or whatever, why not in Linux
in-kernel? It's an idea worth evaluating. I can leverage massive amounts
of widely ported, mature code and driver support, and the new realtime
work. That's reason enough.

With kind regards,
Oliver Korpilla


--
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