[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1409961810.26422.149.camel@edumazet-glaptop2.roam.corp.google.com>
Date: Fri, 05 Sep 2014 17:03:30 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Prashant Sreedharan <prashant@...adcom.com>
Cc: Benjamin Poirier <bpoirier@...e.de>,
Michael Chan <mchan@...adcom.com>, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH net v6 4/4] tg3: Fix tx_pending checks for tg3_tso_bug
On Fri, 2014-09-05 at 16:35 -0700, Prashant Sreedharan wrote:
> fyi.. Initially the driver was doing a skb_copy()
> (tigon3_dma_hwbug_workaround()) for LSO skb that met HW bug conditions
> but users started reporting page allocation failures due to copying of
> large LSO skbs. To avoid this Commit 4caab52eb102f1 (tg3: Prevent page
> allocation failure during TSO workaround) changed the driver logic to do
> skb_gso_segment() for LSO skbs that met the HW bug conditions. With
> skb_linearize() we might end up again with memory allocation failures
> for large LSO skbs though at a much less frequent level (ie when TX
> queue is almost full).
Note that TCP stack has one skb collapse feature, currently limited in
allocation of linear skbs fitting a whole page.
Instead of this private helper (and pretty limited one btw), we could
add a core function, that would build skbs with order-0 fragments.
Instead of skb_linearize(), I guess many call sites could instead use
this new helper.
Because as you said, skb_linearize() of one 64KB GSO packet can ask
order-5 allocations, and this generally does not work reliably.
--
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