tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
RFC: new ifnet MP-scalable sending interface
Hi,
Currently, network interfaces does IFQ_ENQUEUE() and then call
ifp->if_start() in the packet sending process. "IFQ_ENQUEUE() +
ifp->if_start()" processing is already MP-safe, however it is not
MP-scalable because of IFQ_LOCK in IFQ_ENQUEUE() and IFQ_DEQUEUE().
So, I want to introduce new MP-scalable ifnet interface which doesn't
use if_snd queue and directly pass mbuf to lower layers. The interface
is called if_transmit() and the prototype is the following:
int (*if_transmit)(struct ifnet *, struct mbuf *);
At first, this interface must be used by network device driver to support
TX multiqueue so that it doesn't bottleneck bridge(4) MP-scalable.
I think this interface might also be used by virtual network interfaces
such as gif(4).
Here is the patch.
http://www.netbsd.org/~knakahara/if-transmit/if-transmit.patch
Does anyone have any comments? Any comments are welcome.
Thanks,
--
//////////////////////////////////////////////////////////////////////
Internet Initiative Japan Inc.
Device Engineering Section,
IoT Platform Development Department,
Network Division,
Technology Unit
Kengo NAKAHARA <k-nakahara%iij.ad.jp@localhost>
Home |
Main Index |
Thread Index |
Old Index