Re: [PATCH v3] tcp: splice as many packets as possible at once

From: Jarek Poplawski
Date: Tue Jan 27 2009 - 02:54:36 EST


On Tue, Jan 27, 2009 at 06:11:30PM +1100, Herbert Xu wrote:
> David Miller <davem@xxxxxxxxxxxxx> wrote:
> > From: Jarek Poplawski <jarkao2@xxxxxxxxx>
> > Date: Thu, 22 Jan 2009 09:04:42 +0000
> >
> >> It seems this sk_sndmsg_page usage (refcounting) isn't consistent.
> >> I used here tcp_sndmsg() way, but I think I'll go back to this question
> >> soon.
> >
> > Indeed, it is something to look into, as well as locking.
> >
> > I'll try to find some time for this, thanks Jarek.
>
> After a quick look it seems to be OK to me. The code in the patch
> is called from tcp_splice_read, which holds the socket lock. So as
> long as the patch uses the usual TCP convention it should work.

Yes, but ip_append_data() (and skb_append_datato_frags() for
NETIF_F_UFO only, so currently not a problem), uses this differently,
and these pages in sk->sk_sndmsg_page could leak or be used after
kfree. (I didn't track locking in these other places).

Thanks,
Jarek P.
--
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/