All of lore.kernel.org
 help / color / mirror / Atom feed
* problems with SCTP GSO
@ 2018-06-12  3:29 David Miller
  2018-06-12 17:05 ` Marcelo Ricardo Leitner
  0 siblings, 1 reply; 3+ messages in thread
From: David Miller @ 2018-06-12  3:29 UTC (permalink / raw)
  To: marcelo.leitner; +Cc: lucien.xin, edumazet, netdev


I would like to bring up some problems with the current GSO
implementation in SCTP.

The most important for me right now is that SCTP uses
"skb_gro_receive()" to build "GSO" frames :-(

Really it just ends up using the slow path (basically, label 'merge'
and onwards).

So, using a GRO helper to build GSO packets is not great.

I want to make major surgery here and the only way I can is if
it is exactly the GRO demuxing path that uses skb_gro_receive().

Those paths pass in the list head from the NAPI struct that initiated
the GRO code paths.  That makes it easy for me to change this to use a
list_head or a hash chain.

Probably in the short term SCTP should just have a private helper that
builds the frag list, appending 'skb' to 'head'.

In the long term, SCTP should use the page frags just like TCP to
append the data when building GSO frames.  Then it could actually be
offloaded and passed into drivers without linearizing.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: problems with SCTP GSO
  2018-06-12  3:29 problems with SCTP GSO David Miller
@ 2018-06-12 17:05 ` Marcelo Ricardo Leitner
  2018-06-12 17:30   ` Marcelo Ricardo Leitner
  0 siblings, 1 reply; 3+ messages in thread
From: Marcelo Ricardo Leitner @ 2018-06-12 17:05 UTC (permalink / raw)
  To: David Miller; +Cc: lucien.xin, edumazet, netdev

On Mon, Jun 11, 2018 at 08:29:05PM -0700, David Miller wrote:
> 
> I would like to bring up some problems with the current GSO
> implementation in SCTP.
> 
> The most important for me right now is that SCTP uses
> "skb_gro_receive()" to build "GSO" frames :-(
> 
> Really it just ends up using the slow path (basically, label 'merge'
> and onwards).
> 
> So, using a GRO helper to build GSO packets is not great.

Okay.

> 
> I want to make major surgery here and the only way I can is if
> it is exactly the GRO demuxing path that uses skb_gro_receive().
> 
> Those paths pass in the list head from the NAPI struct that initiated
> the GRO code paths.  That makes it easy for me to change this to use a
> list_head or a hash chain.
> 
> Probably in the short term SCTP should just have a private helper that
> builds the frag list, appending 'skb' to 'head'.
> 
> In the long term, SCTP should use the page frags just like TCP to
> append the data when building GSO frames.  Then it could actually be
> offloaded and passed into drivers without linearizing.

Sounds like a plan. Shouldn't be too hard to do it.
(I'm out on PTO, btw)

Thanks,
Marcelo

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: problems with SCTP GSO
  2018-06-12 17:05 ` Marcelo Ricardo Leitner
@ 2018-06-12 17:30   ` Marcelo Ricardo Leitner
  0 siblings, 0 replies; 3+ messages in thread
From: Marcelo Ricardo Leitner @ 2018-06-12 17:30 UTC (permalink / raw)
  To: David Miller; +Cc: lucien.xin, edumazet, netdev

On Tue, Jun 12, 2018 at 02:05:06PM -0300, Marcelo Ricardo Leitner wrote:
> On Mon, Jun 11, 2018 at 08:29:05PM -0700, David Miller wrote:
> > 
> > I would like to bring up some problems with the current GSO
> > implementation in SCTP.
> > 
> > The most important for me right now is that SCTP uses
> > "skb_gro_receive()" to build "GSO" frames :-(
> > 
> > Really it just ends up using the slow path (basically, label 'merge'
> > and onwards).
> > 
> > So, using a GRO helper to build GSO packets is not great.
> 
> Okay.
> 
> > 
> > I want to make major surgery here and the only way I can is if
> > it is exactly the GRO demuxing path that uses skb_gro_receive().
> > 
> > Those paths pass in the list head from the NAPI struct that initiated
> > the GRO code paths.  That makes it easy for me to change this to use a
> > list_head or a hash chain.
> > 
> > Probably in the short term SCTP should just have a private helper that
> > builds the frag list, appending 'skb' to 'head'.
> > 
> > In the long term, SCTP should use the page frags just like TCP to
> > append the data when building GSO frames.  Then it could actually be
> > offloaded and passed into drivers without linearizing.
> 
> Sounds like a plan. Shouldn't be too hard to do it.
> (I'm out on PTO, btw)

Xin will work on this, mean while at least. Thanks Xin.

> 
> Thanks,
> Marcelo
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-06-12 17:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-12  3:29 problems with SCTP GSO David Miller
2018-06-12 17:05 ` Marcelo Ricardo Leitner
2018-06-12 17:30   ` Marcelo Ricardo Leitner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.