On 9/27/07, Bruce Rowen <[EMAIL PROTECTED]> wrote:
> While working on an embedded Linux project I came across a strange
> problem.
>
> My platform is a 500MHz Geode based PC-104 running the preemption
> options of the 2.6.13 kernel. The platform is diskless (no swap) with
> 256MB. The system timer is set to 1 KHz.
>
> I have an application that uses a number of tasklets which respond to
> a 100Hz interrupt. Normally these tasklets finish in about 600uSec or
> so.
>
> I recently upped the memory to 1GB and now the tasklets will miss the
> 100Hz interrupt on occasion. The only change has been the added
> memory (problem goes away when I put the 256MB back in).
>
> Here is the strange part:
>
> According to my internal counter and the jiffies counter. The
> 'dropped' tasklets occur on _exactly_ 10 minute boundaries (600,000
> jiffies). Never one less or one more, always 600k.
> I tried running my tasklets with tasklet_hi_schedule() which should
> put them above timers and ethernet but observe no changes. Whatever
> is delaying my tasklets is blocking about 8 milliseconds of cpu every
>

Please elaborate on "dropped tasklets"?   Do u mean that the scheduler
did not execute it at the interval you specified?   If so, then I
think this (full kernel preemptibility) is not guaranteed by Linux
kernel.   A  lot of complex scenario (which I cannot cite or imagine)
may happen between having 256M vs 1G ram, which result in kernel
preemption not as successful as in the 256M version.   You may try out
the -rt (realtime) branch of the kernel.   But if you mean that the
tasks just disappeared without the tasklet itself exiting, then I
think that will be a bug in the kernel.

Sorry, cannot help much, may be others can comment?

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to