Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Mar 2004 11:50:23 -0800 (PST)
From:      Alan Cox <alc@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/kern subr_param.c sys_pipe.c src/sys/sys pipe.h
Message-ID:  <200403271950.i2RJoN9P033780@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
alc         2004/03/27 11:50:23 PST

  FreeBSD src repository

  Modified files:
    sys/kern             subr_param.c sys_pipe.c 
    sys/sys              pipe.h 
  Log:
  Revise the direct or optimized case to use uiomove_fromphys() by the reader
  instead of ephemeral mappings using pmap_qenter() by the writer.  The
  writer is still, however, responsible for wiring the pages, just not
  mapping them.  Consequently, the allocation of KVA for the direct case is
  unnecessary.  Remove it and the sysctls limiting it, i.e.,
  kern.ipc.maxpipekvawired and kern.ipc.amountpipekvawired.  The number
  of temporarily wired pages is still, however, limited by
  kern.ipc.maxpipekva.
  
  Note: On platforms lacking a direct virtual-to-physical mapping,
  uiomove_fromphys() uses sf_bufs to cache ephemeral mappings.  Thus,
  the number of available sf_bufs can influence the performance of pipes
  on platforms such i386.  Surprisingly, I saw the greatest gain from this
  change on such a machine: lmbench's pipe bandwidth result increased from
  ~1050MB/s to ~1850MB/s on my 2.4GHz, 400MHz FSB P4 Xeon.
  
  Revision  Changes    Path
  1.62      +1 -6      src/sys/kern/subr_param.c
  1.171     +18 -60    src/sys/kern/sys_pipe.c
  1.27      +0 -2      src/sys/sys/pipe.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200403271950.i2RJoN9P033780>