On Thu, Jun 14, 2018 at 8:46 AM, Neil Horman <nhorman@xxxxxxxxxxxxx> wrote: > On Thu, Jun 14, 2018 at 07:37:02AM +0800, Xin Long wrote: >> Now sctp GSO uses skb_gro_receive() to append the data into head >> skb frag_list. However it actually only needs very few code from >> skb_gro_receive(). Besides, NAPI_GRO_CB has to be set while most >> of its members are not needed here. >> >> This patch is to add sctp_packet_gso_append() to build GSO frames >> instead of skb_gro_receive(), and it would avoid many unnecessary >> checks and make the code clearer. >> >> Note that sctp will use page frags instead of frag_list to build >> GSO frames in another patch. But it may take time, as sctp's GSO >> frames may have different size. skb_segment() can only split it >> into the frags with the same size, which would break the border >> of sctp chunks. >> >> Signed-off-by: Xin Long <lucien.xin@xxxxxxxxx> > Do you have any performance numbers to compare with and without this patch? > Adding a function like this implies that any fixes that go into skb_gro_receive > now need to be evaluated for this function too, which means theres an implied > overhead in maintaining it. If we're signing up for that, I'd like to know that > theres a significant performance benefit. Hi Neil, I don't think there's a noticeable performance benefit since it's just avoided some checks and variables settings. The new function makes SCTP GSO code clearer and readable, as skb_gro_receive() should only be used in the GRO code paths, it's confusing in sctp tx path. We're doing this, actually because skb_gro_receive() is being changed now, it would not be suitable for SCTP GSO, see: https://www.spinics.net/lists/netdev/msg507716.html And also, we believe page frags will be used to replace frag_list to build SCTP GSO frames soon. After that, this function will also be dropped. -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html