summaryrefslogtreecommitdiff
path: root/lib/libc
diff options
context:
space:
mode:
authorSean Chittenden <seanc@FreeBSD.org>2003-03-12 09:28:44 +0000
committerSean Chittenden <seanc@FreeBSD.org>2003-03-12 09:28:44 +0000
commit99c24e2b2cdcea79a9f8b9455de87ade6bd4365f (patch)
treee871aec28abfdf07aa867c8fb2613410065a91e8 /lib/libc
parent4d3f408cee07ec600ec6a105c42353a3666e4aa7 (diff)
Notes
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/sys/sendfile.238
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/libc/sys/sendfile.2 b/lib/libc/sys/sendfile.2
index a0d823964478..fac2577926d1 100644
--- a/lib/libc/sys/sendfile.2
+++ b/lib/libc/sys/sendfile.2
@@ -106,6 +106,43 @@ The
implementation of
.Fn sendfile
is "zero-copy", meaning that it has been optimized so that copying of the file data is avoided.
+.Sh TUNING
+Internally this system call uses a special
+.Xr sendfile 2
+buffer
+.Pq Fa "struct sf_buf"
+to handle sending file data to the client.
+If the sending socket is
+blocking and there are not enough sendfile buffers available,
+.Xr sendfile 2
+will block and report a state of
+.Dq sfbufa .
+If the sending socket is non-blocking and there are not enough
+sendfile buffers available, the call will block and wait for the
+necessary buffers to become available before finishing the call.
+.Pp
+The number of
+.Fa sf_buf Ns 's
+allocated should be proportional to the number of nmbclusters used to
+send data to a client via
+.Xr sendfile 2 .
+Tune accordingly to avoid blocking!
+Busy installations that make extensive use of
+.Xr sendfile 2
+may want to increase these values to be inline with their
+.Ar kern.ipc.nmbclusters
+.Pq see Xr tuning 7 for details .
+.Pp
+The number of
+.Xr sendfile 2
+buffers in use is determined at boot time by either the
+.Em kern.ipc.nsfbufs
+.Xr loader.conf 5
+variable or the
+.Em NSFBUFS
+kernel configuration tunable.
+The number of sendfile buffers scales with
+.Em kern.maxusers .
.Sh RETURN VALUES
.Rv -std sendfile
.Sh ERRORS
@@ -161,6 +198,7 @@ If specified, the number of bytes successfully sent will be returned in
.Xr open 2 ,
.Xr send 2 ,
.Xr socket 2 ,
+.Xr tuning 7 ,
.Xr writev 2
.Sh HISTORY
The