Brian,
> LiS 2.18, unlike 2.16 does not run the STREAMS scheduler on exit from system calls.
What I noticed in 2.18th lis_setqsched(can_call) function is that
the 'can_call' flag processing is completely gone from that function comparing with 2.16.18.
To measure impact of that 'can_call' thing I unconditionally set it to 0 in 2.16.18,
i.e. all queuerun() processing were done in LiS kernel threads, like in 2.18.0.
Performance of my loopback tests became slower by 25%.
Then in 2.18.0 I added the following couple of lines at the very beginning of lis_setqsched():
if ((can_call) && !(in_interrupt()))
{
lis_run_queues(my_cpu) ;
}
And performance gained 25% on my loopback test.
Q: Why can_call processing was removed and can we safely put it back?
thanks,
--
Eugene
Try the New Netscape Mail Today!
Virtually Spam-Free | More Storage | Import Your Contact List
http://mail.netscape.com
