httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From m...@hyperreal.org
Subject cvs commit: apache-2.0/docs page_io
Date Sun, 08 Mar 1998 04:12:37 GMT
marc        98/03/07 20:12:37

  Modified:    docs     page_io
  Log:
  A few more comments.  They don't entirely belong in page_io, but
  they are on related topics so they can live there for now.
  
  Revision  Changes    Path
  1.4       +54 -0     apache-2.0/docs/page_io
  
  Index: page_io
  ===================================================================
  RCS file: /export/home/cvs/apache-2.0/docs/page_io,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- page_io	1998/03/08 03:21:00	1.3
  +++ page_io	1998/03/08 04:12:37	1.4
  @@ -73,6 +73,10 @@
   For details on HPUX and avoiding extra data copies, see
   <ftp://ftp.cup.hp.com/dist/networking/briefs/copyavoid.pdf>.
   
  +(note that if you get the postscript version instead, you have to 
  +manually edit it to remove the front page before any version of 
  +ghostscript that I have used will read it)
  +
   ----
   
   I've been told by an engineer in Sun's TCP/IP group that zero-copy TCP
  @@ -85,3 +89,53 @@
   We currently get the 16k stuff for free by using mmap().  But sun's
   current code isn't smart enough to deal with our initial writev()
   of the headers and first part of the response.
  +
  +----
  +
  +Systems that have a system call to efficiently send the contents of a 
  +descriptor across the network.  This is probably the single best way
  +to do static content on systems that support it.
  +
  +HPUX:
  +
  +      ssize_t sendfile(int s, int fd, off_t offset, size_t nbytes,
  +              const struct iovec *hdtrl, int flags);
  +
  +      (allows you to add headers and trailers in the form of iovec
  +      structs)
  +
  +Windows NT:
  +
  +	BOOL TransmitFile(     SOCKET hSocket, 
  +	    HANDLE hFile, 
  +	    DWORD nNumberOfBytesToWrite, 
  +	    DWORD nNumberOfBytesPerSend, 
  +	    LPOVERLAPPED lpOverlapped, 
  +	    LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, 
  +	    DWORD dwFlags 
  +	   ); 
  +
  +	(does it start from the current position in the handle?  I would
  +	hope so, or else it is pretty dumb.)
  +
  +	lpTransmitBuffers allows for headers and trailers.
  +
  +	Documentation at:
  +
  +	http://premium.microsoft.com/msdn/library/sdkdoc/wsapiref_3pwy.htm
  +	http://premium.microsoft.com/msdn/library/conf/html/sa8ff.htm
  +
  +	Even less related to page based IO: just context switching:
  +	AcceptEx does an accept(), and returns the start of the
  +	input data.  see:
  +
  +	http://premium.microsoft.com/msdn/library/sdkdoc/pdnds/sock2/wsapiref_17jm.htm
  +
  +	What this means is you require one less syscall to do a
  +	typical request, especially if you have a cache of handles
  +	so you don't have to do an open or close.  Hmm.  Interesting
  +	question: then, if TransmitFile starts from the current
  +	position, you need a mutex around the seek and the
  +	TransmitFile.  If not, you are just limited (eg. byte
  +	ranges) in what you can use it for.
  +
  
  
  

Mime
View raw message