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

Reply via email to