Hi...

On Tue, Jul 1, 2008 at 4:52 AM, Lukas Razik <[EMAIL PROTECTED]> wrote:
> So, I have these questions:
> 1. Why does the yield() call in my kernel thread not force the proceeding of
> the softirqs?
AFAIK , jiffies is updated as a part of bottom halves too (softirqd
IIRC). Thus, further suspicion should be directed to "what's your
current active preemption mode"? I guess it could be voluntary
preemption. Try full preemption and see the difference.

Beyond that, i suggest to use rdtsc() to get better timing
granularity. Jiffies...limits you to 1ms precision....assuming you use
HZ=1000. Further if you use no_hz, there is a chance that jiffies
wouldn't be updated for relatively long ticks.

> 2. Is it normally 'safe' to call do_softirq() in a kernel thread?
>   What should I take into account?

I think normally you won't need to do that. do_softirq will be called
everytime the kernel is finished dealing with interrupts or executing
ksoftirqd. So maybe what you need is to "break off" any potential long
code path. By "breaking off", i mean do things like don't hold lock
too long, don't disable interrupt too long and so on.

hope I help you somehow here.

regards,

Mulyadi.

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