* By looking at the tq_executed counter periodically, I found out that
only about 110 tasks ran per second.

Task queues are dispatched on a clock tick, which defaults to 100Hz.
Did you find something in the docs that indicated this should be
real time?

No, but I also didnt't find anything that would indicate the contrary. If I am not wrong, 
taskq_dispatch() (eventually) wakes up a thread waiting on a condition variable, which 
should happen "immediately" (in the sense that there is no reason to wait for 
the next clock tick). The task queue threads process callbacks as long as there is 
something to process. Again, they have no obvious reason to wait for a clock tick.

For example, ZFS uses SDC task queues. I simply cannot imagine a huge and 
heavily loaded ZFS pool with a hard limit of 100 callbacks per second. That 
wouldn't work. Yet another question: If callbacks were really dispatched one by 
one on clock ticks, what could generate the 90% kernel load I observe?

Perhaps I'm wrong again (which happens quite often), but I think the problem is 
more complicated. Nevertheless, the callback frequency I observe is 
surprisingly close to the clock tick frequency...

Andrej

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
on-discuss mailing list
on-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/on-discuss

Reply via email to