On (04/07/16 07:16), Eric Dumazet wrote: > Use skb split like TCP in output path ?
That almost looks like what I want, but skb_split modifies both skb and skb1, and I want to leave skb untouched (otherwise I will mess up the book-keeping in tcp_read_sock). But skb_split is a good template- I think it could even be extended to avoid copying the frags that we'd later trim off in rds_tcp_data_recv anyway, let me see what I can come up with, based on that code. > Really, pskb_expand_head() is not supposed to copy payload ;) That would make my world very easy! But it has callers from all over the kernel, e.g., skb_realloc_headroom, and changing it is obviously risky