* Question about sendfile
@ 2005-02-08 3:26 Xiuduan Fang
2005-02-08 23:59 ` Gianni Tedesco
0 siblings, 1 reply; 2+ messages in thread
From: Xiuduan Fang @ 2005-02-08 3:26 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1007 bytes --]
Hi,
I am trying to beat the I/O bottleneck so as to speed up bulk data transfers
in high speed network. It seems that the system call sendfile() can help to
reduce CPU utilization and speedup data transfers. But I have one question
about the system call,
First, Linux sendfile requires that the input file descriptor cannot be a
network socket. What are the reasons for such a restriction? Sending a
socket to a file via zero copy is definitely useful. Actually this is one
approach I am trying to do to improve performance. Some discussions on
Linux zero copy said this is because it is harder. Sending a socket to a
file via zero copy needs the support of NICs. I cannot understand this
explanation. It seems that FreeBSD has implemented bidirectional zero
copy(http://people.freebsd.org/~ken/zero_copy/#Download). So why Linux does
not support it? What shall I do to release the restriction that Linux
enforces on sendfile?
Any hints will be highly appreciated. Thanks.
Xiuduan Fang
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Xiuduan Fang.vcf --]
[-- Type: text/x-vcard; name="Xiuduan Fang.vcf", Size: 2105 bytes --]
BEGIN:VCARD
VERSION:2.1
N:Fang;Xiuduan
FN:Xiuduan Fang
ORG:University of Virginia;Computer Science Dept
TITLE:2nd Year Graduate
TEL;WORK;VOICE:1-434-982-2296
ADR;WORK:;;151 Engineer's Way, P.O. Box 400740;Charlottesville;VA;22904-4743;USA
LABEL;WORK;ENCODING=QUOTED-PRINTABLE:151 Engineer's Way, P.O. Box 400740=0D=0ACharlottesville, VA 22904-4743=0D=
=0AUSA
KEY;X509;ENCODING=BASE64:
MIIEYzCCA8ygAwIBAgIQJav9Aj366wHb4hpgZ1JRKDANBgkqhkiG9w0BAQQFADCBzDEXMBUG
A1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsx
RjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9SUEEgSW5jb3JwLiBCeSBS
ZWYuLExJQUIuTFREKGMpOTgxSDBGBgNVBAMTP1ZlcmlTaWduIENsYXNzIDEgQ0EgSW5kaXZp
ZHVhbCBTdWJzY3JpYmVyLVBlcnNvbmEgTm90IFZhbGlkYXRlZDAeFw0wNDEwMDQwMDAwMDBa
Fw0wNDEyMDMyMzU5NTlaMIIBBzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsT
FlZlcmlTaWduIFRydXN0IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVw
b3NpdG9yeS9SUEEgSW5jb3JwLiBieSBSZWYuLExJQUIuTFREKGMpOTgxHjAcBgNVBAsTFVBl
cnNvbmEgTm90IFZhbGlkYXRlZDEnMCUGA1UECxMeRGlnaXRhbCBJRCBDbGFzcyAxIC0gTWlj
cm9zb2Z0MRUwEwYDVQQDFAxYaXVkdWFuIEZhbmcxIzAhBgkqhkiG9w0BCQEWFHhmNGNAY3Mu
dmlyZ2luaWEuZWR1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRn6bRIKJguTHWwMQB
aKdf9VOH3758Ba6owaoGy5ME/fds2ZPTWvuW+IyFskupZ0stK7f9OtzKAi+EFkFlD1umHItr
XM74PapnYI/8TR/svKbZJLodGNAto9sJjvLQkNK6hwvTp5eBwQ1YgC7GmZHmtshPH8N+8Ast
xOxoflE6dwIDAQABo4IBBjCCAQIwCQYDVR0TBAIwADCBrAYDVR0gBIGkMIGhMIGeBgtghkgB
hvhFAQcBATCBjjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL0NQUzBi
BggrBgEFBQcCAjBWMBUWDlZlcmlTaWduLCBJbmMuMAMCAQEaPVZlcmlTaWduJ3MgQ1BTIGlu
Y29ycC4gYnkgcmVmZXJlbmNlIGxpYWIuIGx0ZC4gKGMpOTcgVmVyaVNpZ24wEQYJYIZIAYb4
QgEBBAQDAgeAMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwudmVyaXNpZ24uY29tL2Ns
YXNzMS5jcmwwDQYJKoZIhvcNAQEEBQADgYEASTrowJeKxyNUZbF+AwGXfqXBrOyN3b+3aRDN
CgSQVp0zaLHwLReTa+3mEnwtrMN6QSM02gPbiuzVkdmGyxmlHAmrHQ2l61fyotoMH47RJbe+
qzClrcMr2Y9AAyTNeVrvfSZRdKMZ9HFduUu1tn5/FTZFCK8Xoaq3BIo81b8nHGs=
EMAIL;PREF;INTERNET:xf4c@cs.virginia.edu
REV:20050208T032639Z
END:VCARD
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Question about sendfile
2005-02-08 3:26 Question about sendfile Xiuduan Fang
@ 2005-02-08 23:59 ` Gianni Tedesco
0 siblings, 0 replies; 2+ messages in thread
From: Gianni Tedesco @ 2005-02-08 23:59 UTC (permalink / raw)
To: Xiuduan Fang; +Cc: linux-kernel
On Mon, 2005-02-07 at 22:26 -0500, Xiuduan Fang wrote:
> Hi,
>
> I am trying to beat the I/O bottleneck so as to speed up bulk data transfers
> in high speed network. It seems that the system call sendfile() can help to
> reduce CPU utilization and speedup data transfers. But I have one question
> about the system call,
>
> First, Linux sendfile requires that the input file descriptor cannot be a
> network socket. What are the reasons for such a restriction? Sending a
> socket to a file via zero copy is definitely useful. Actually this is one
> approach I am trying to do to improve performance. Some discussions on
> Linux zero copy said this is because it is harder. Sending a socket to a
> file via zero copy needs the support of NICs. I cannot understand this
> explanation. It seems that FreeBSD has implemented bidirectional zero
> copy(http://people.freebsd.org/~ken/zero_copy/#Download). So why Linux does
> not support it? What shall I do to release the restriction that Linux
> enforces on sendfile?
>From the URL you posted:
"[zero-copy receive] generally requires some sort of intelligence on the
NIC to make sure that the payload starts in its own buffer. This is
called "header splitting". Currently the only NICs with support for
header splitting are Alteon Tigon 2 based boards running slightly
modified firmware."
Perhaps that explains it.
Not to mention the other complications that are involved if you scroll
down the page and read the FAQ.
Have you done any profiling work to see where your CPU cycles are being
spent?
--
// Gianni Tedesco (gianni at scaramanga dot co dot uk)
lynx --source www.scaramanga.co.uk/scaramanga.asc | gpg --import
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-02-09 0:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-08 3:26 Question about sendfile Xiuduan Fang
2005-02-08 23:59 ` Gianni Tedesco
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox