tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: RFC: new ifnet MP-scalable sending interface



Hi,

On 2016/04/22 16:47, Joerg Sonnenberger wrote:
> On Fri, Apr 22, 2016 at 11:09:24AM +0900, Kengo NAKAHARA wrote:
>> 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 *);
> 
> Let me try to expand that a bit and you comment on whether it actually
> reflects your intention.
> 
> The old interface queueing implementation is based on assumption
> that restarting transmits after the in-device queue is cheaper than
> continued requeueing from the network stack. The new interface provides
> a hook for processing each outgoing packet individually. It can provide
> the old interface via a generic glue implementation, but it also allows
> a device more granular control.

Yes, you are right. I implement glue function(if_transmit()@if.c) in
my patch pointed previous mail, which call IFQ_ENQUEUE and ifp->if_start().
With the new interface, a device can control a packet to put H/W queues
with appropriate lock granularity.

> Most noticably, it can be used to avoid
> ever getting TXEOF interrupts while the device is actively being used.

Hmm, do you mean so-called "poll-mode"?


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