[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20140824.121128.714017644535675858.davem@davemloft.net>
Date: Sun, 24 Aug 2014 12:11:28 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: eric.dumazet@...il.com
Cc: netdev@...r.kernel.org, therbert@...gle.com, jhs@...atatu.com,
hannes@...essinduktion.org, edumazet@...gle.com,
jeffrey.t.kirsher@...el.com, rusty@...tcorp.com.au
Subject: Re: [PATCH 0/3] Basic deferred TX queue flushing infrastructure.
From: Eric Dumazet <eric.dumazet@...il.com>
Date: Sun, 24 Aug 2014 10:37:48 -0700
> On Sat, 2014-08-23 at 21:38 -0700, David Miller wrote:
>
>> Like Tom Herbert has mentioned we have all the infrastructure (sort
>> of) already to handle a list of SKBs going down into
>> dev_hard_start_xmit() via the GSO handling.
>>
>> But that code is funny, because it keeps the original GSO head SKB
>> around as a placeholder to maintain the list of segmented SKBs.
>
> This is because dev_hard_start_xmit() do not return an skb, but a rc
> code.
>
> int ret = dev_hard_start_xmit(skb, dev, txq);
>
> That can be changed so that we do not have to keep the original skb as
> the GSO head :
>
> sch_direct_xmit() would 'requeue' the new skb (might be in the middle of
> the skb segmented chain), not the original one.
>
> This would get rid of DEV_GSO_CB() presumably.
I considered this, but then there is the ugly issue of how to return
the netdev_tx_t code back into the call chain.
I hate passing things back by reference, it's always a symptom of bad
interface design :-/
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists