CVSROOT: /cvs Module name: src Changes by: henn...@cvs.openbsd.org 2009/08/12 09:58:20
Modified files: sys/net : if.c Log message: dlg deferred calling interfaces' if_start routine so we call them less, which does pay out, performance wise. one of the conditions to call the interfaces' if_start routine immediately was "send queue is full". on a very busy (hammered) machine this will itroduce too much latency since we spend almost all cpu time in interrupt handlers and softnet, so the softint actually doing the if_start gets called to seldom and the queue full check is what triggers the actual transmit. change the logic to call if's if_start routing immediately when there are at least 8 packets (or in case if maxlen being smaller than 8, maxlen) 8 chose because it shows best performance in my test setup here. ok dlg