Real Time in 2.4.18

From: Amosov Evgeniy
Date: Sat Nov 08 2003 - 15:06:57 EST



Good day.
I am working on improved Real-Time support in Linux for kernel 2.4.18 ( i388, sparc).
I have written my own POSIX pthreads support in kernel, library as an interface for use the new systemcall (like libpthread) and measure the time of switching two pthreads ( pthread_bcast - pthread_wait circle in two threads)
I have done some changes in schedule, disabled BH and intercepted all interrupts and exeptions in entry.S.

All looks fine, the time of switching is about 3mks, the maximum time is 20 mks, but sometimes ...., after about 20 seconds, I see a
single surge about 300mks.
I have no idea what is a source of this surge.
There are only my two switching SHED_FIFO tasks and standart kernel threads in the system(keventd, kswapd, bdflush etc...), but during the test in RUNNING state were only my two pthreads; there are no interrupts or exeptions during the test,
all BHs is disabled, but the measurements show that it is an interrupt becouse my tasks preempt in random places for a long time.
It is not a timer_interrupt.

It is strange: no interrupts(exept timer ofcouse, but it is not it) but it looks like an interrupt :)

I intercept interrupts in irq.c:do_IRQ(), entry.S: system_call() and exeptions in entry.S: error_code.
May be I something lose ?
Have anybody some ideas?

P.S.
Sorry for my english :)


--
Amosov Evgeniy (aka Efreet)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/