[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7e0dd21a0809050745w692328b7v6dd4e0adf59e9535@mail.gmail.com>
Date: Fri, 5 Sep 2008 16:45:13 +0200
From: "Johann Baudy" <johaahn@...il.com>
To: "Evgeniy Polyakov" <johnpol@....mipt.ru>
Cc: netdev@...r.kernel.org
Subject: Re: Fwd: Packet mmap: TX RING and zero copy
Hi Evgeniy,
>
> No need to run FTRACE, code shuld be audited and probably some debug
> prints added to determine, why sendfile() decides to exit early wiht
> UDP. I will try to do it if time permits this weekend, although I'm
> quite surprised sendfile() does not work with UDP...
>
I've finally made the test:
Packet is not going through device due to this test:
if (inet->cork.length + size > 0xFFFF - fragheaderlen) {
ip_local_error(sk, EMSGSIZE, rt->rt_dst, inet->dport, mtu);
return -EMSGSIZE;
}
in ip_append_page()
inet->cork.length reach 61448 then this failure occurs
size = 4096
fragheaderlen = 20
>
> You can always provide a global offset where to put next packet.
> You can ajust it to put header before each data frame, and then DMA
> frame content according to that offset.
>
> Transmitting packet socket is needed for those, who wants to implement
> own low-level protocol unsupported by the kernel, so to transfer data
> over UDP or TCP over IP with the highests speeds, one should use
> existing methods. This does not of course mean, that anyone _has_ to do
> it, it is always very fun to find new ways like your patch.
>
What do you mean with global offset ?
Thanks,
Johann
--
Johann Baudy
johaahn@...il.com
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists