* 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
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ on-discuss mailing list on-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/on-discuss