Re: NETIF_F_GSO_SOFTWARE vs NETIF_F_GSO

From: Jason A. Donenfeld
Date: Fri Nov 06 2015 - 06:43:42 EST


On Fri, Nov 6, 2015 at 5:58 AM, Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> wrote:
> I don't see anything fundamentally wrong with your idea. After
> all what you're describing is the basis of GSO, i.e., letting
> data stay in the form of super-packets for as long as we can.
>
> Of course there's going to be a lot of niggly bits that you'll
> have to sort out to get it to work.

Okay, great. In that case, it's the niggly bits I need to wrestle
with. Any nice convenience functions for this? Or pointers to
examples?

Would it be best to (1) allocate a massive linear skb, and then bit by
bit call skb_put (as in my example in the last email)? Or would it be
best to (2) make individual packets, and then string them together in
a FRAGLIST fashion (or is there no driver support for this)? Or would
it be best (3) to some how use the array of 16 frags, and allocate
with the alloc_skb_wth_frags function, and then super cumbersomely try
to iterate over broken-up pages?

I think (3) is going to be super hard if not impossible for my setup.
If there were some way of combining multiple skbs into a super packet,
or if the fraglist was okay to use in this regard, that'd be a
lifesaver. So far my approach with (1) hasn't been working.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/