[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080922010834.GB3059@2ka.mipt.ru>
Date: Mon, 22 Sep 2008 05:08:34 +0400
From: Evgeniy Polyakov <johnpol@....mipt.ru>
To: David Miller <davem@...emloft.net>
Cc: johaahn@...il.com, netdev@...r.kernel.org
Subject: Re: [PATCH] sendfile() and UDP socket
On Sun, Sep 21, 2008 at 05:44:50PM -0700, David Miller (davem@...emloft.net) wrote:
> > > Applications which work over datagram protocols must perform their own
> > > segmentation. It is not like doing a send over a stream protocol like
> > > TCP, where you can use whatever length you want for send calls and
> > > segmentation is done for the application.
> >
> > But isn't the whole idea of the sendfile() is to send a file no matter
> > what underlying media is?
>
> It's a way to fabricate a send() directly from the page cache.
And to send exactly required number of bytes (or size of the cache)?
To send a single page (combined to several other pages) we have simple
->sendpage() callback, which should not return error when it is asked to
send a data and it can do it by actually submitting two packets without
special tcp-like processing of the segments.
> > That's maybe because udp_sendpage() does not support sending pending
> > data if new packet is too big to attach?
>
> I don't think so.
>
> It's simply enforcing the wsize/rsize that's configured for the mount.
> And this is exactly deciding what the UDP segment size should be.
And what if it is just a result of the knowledge on how udp_sendpage()
behaves, so code adjusts packet sizes in advance?
--
Evgeniy Polyakov
--
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