cvs commit: src/sys/sys uio.h sfbuf.h pipe.h src/sys/kern sys_pipe.c src/sys/i386/i386 uio_machdep.c src/sys/conf files.i386

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Mar 28 00:26:25 PST 2004


dillon      2004/03/28 00:25:55 PST

DragonFly src repository

  Modified files:
    sys/sys              uio.h sfbuf.h pipe.h 
    sys/kern             sys_pipe.c 
    sys/conf             files.i386 
  Added files:
    sys/i386/i386        uio_machdep.c 
  Log:
  Import Alan Cox's /usr/src/sys/kern/sys_pipe.c 1.171.  This rips out
  writer-side KVA mappings and replaces them with writer-side vm_page wiring
  (left intact from before) plus reader-side SF_BUF copies.
  
  Import 1.141, which is a simple patch which removes a blocking condition
  when space is available in the pipe's write buffer which was causing
  non-blocking I/O select-based writes to spin-wait unnecessarily.  1.171
  rips out writer-side KVA mappings and replaces them
  
  Import FreeBSD-5.x's uiomove_fromphys(), which sys_pipe.c now uses.  This
  procedure could become very useful in a number of DragonFly subsystems.
  
  This greatly improves PIPE performance for the direct-mapped case (moderate
  to large reads and writes).  Additionally, recent scheduler fixes greatly
  improve PIPE performance for both the direct-mapped and small-buffer cases.
  
  NOTE: wired page limits for pipes have not yet been imported, and the heavy
  use of sf_buf's may require some tuning in the many-pipes case.
  
      BLKSIZE	BEFORE		AFTER
  		MBytes/s	MBytes/s	Tests on AMD64/3200+ FN85 MB
      -------	------		------		(64KB L1, 1MB L2)
      256KB	1900		2200
       64KB	1800		2200
       16KB	1650		2500-3000
        8KB	1400		2300
        4KB	1300		1400-1500	(note 1)
  
      note 1: The 4KB case is not a direct-write case, the results are due to
      the scheduler fixes only.
  
  Obtained-from: FreeBSD-5.x / FreeBSD's Alan Cox
  
  Revision  Changes    Path
  1.8       +2 -0      src/sys/sys/uio.h
  1.2       +17 -0     src/sys/sys/sfbuf.h
  1.4       +0 -1      src/sys/sys/pipe.h
  1.15      +45 -71    src/sys/kern/sys_pipe.c
  1.22      +1 -0      src/sys/conf/files.i386


http://www.dragonflybsd.org/cvsweb/src/sys/sys/uio.h.diff?r1=1.7&r2=1.8&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/sys/sfbuf.h.diff?r1=1.1&r2=1.2&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/sys/pipe.h.diff?r1=1.3&r2=1.4&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/kern/sys_pipe.c.diff?r1=1.14&r2=1.15&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/conf/files.i386.diff?r1=1.21&r2=1.22&f=h





More information about the Commits mailing list