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

Re: [microblaze-uclinux] Implementing FAT on uCLinux



Hi Falk,

It's necessary to make the difference between RTLinux and real time Linux 
patches. 

RTLinux is a microkernel which virtualizes interrupts to Linux. This 
virtualization is hiden to Linux and from the RTLinux microkernel 
perspective, Linux, as a whole,  runs as the lowest real time task. The 
strength of this combo is you can use a "hard" real time microkernel and a 
GPOS(General Purpose OS) such as Linux in the same machine, and you can do 
whatever you need in the Linux part. Of course, depending on the processor 
performace and the real time work done, Linux will suffer some delays. Also, 
you can send data from RT tasks to Linux processes through FIFOS or shared 
memory, so you can show real time data with Java, web browser, or whatever 
you want and LInux supports.

Whereas, real time linux patches improves determinsm in Linux kernel, enabling 
Linux to do some kind of control or data asquisition in "soft" real time. 
With this approach you can improve a lot Linux performance and to use Linux 
for some "¿¿critical??" code, BUT, you can never make sure this determism is 
100%. Of course, perhaps it is all you need, but don't miss the point!!!

A logical question now is: Why Linux is not "hard" real time? and, Can Linux 
be hard some day?

GPOS are GPOS, and the complexity inside them is too high to make the code 
available for hard real time. The reasons RTLinux is a good approach are:

1) Traditional RTOS like VxWorks, QNX, ..., have a current problem: developers 
want to have all what a GPOS offers and at the same time hard real time. The 
problem is if you want precission, robustness, predictivity, ..., this is 
what a RTOS offers, you need lines of code to be limitted in number, then 
someone can read the full code and ensure the real time requeriments. RTOS 
can not do that, and although they can add some funcionalities, these will 
not be what a GPOS offers, and the cost for them is too high.

2) RTLinux was the first approach to use virtualization in real time, more 
than 10 years ago. Since then, the market is going to this kind of solutions, 
even processors are designed to enable virtualizarion in a easier and better 
way.

I remember you needed to improve interrupts latencies. Then, if you just need 
a better mean response time, you can use real time linux patches. If you need 
to ensure 100% these responses, then you need virtualization.

Some numbers:

With a 500us periodic RT task working and network stress (massive ping flood 
and NFS requests) the worst response time for timer interrupt was 62us. With 
a special configuration with real time code running in LMB: 24us.

I hope this explanation can help you.

Regards.   

On Wednesday 10 January 2007 13:13, Brettschneider Falk wrote:
> Hi Alejandro,
> What improvement have you noticed with your patch on your system? Can you
> give some before<->after numbers? CU, F@lk
>
> ___________________________
> microblaze-uclinux mailing list
> microblaze-uclinux@xxxxxxxxxxxxxx
> Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
> Mailing List Archive :
> http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/

-- 
Alejandro Lucero
Director Técnico
+34 665 68 71 68
Valencia (SPAIN)
www.os3sl.com

___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/