Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Nov 2004 10:46:47 +0000 (UTC)
From:      Poul-Henning Kamp <phk@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/fs/devfs devfs_vnops.c
Message-ID:  <200411081046.iA8AklqT003808@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
phk         2004-11-08 10:46:47 UTC

  FreeBSD src repository

  Modified files:
    sys/fs/devfs         devfs_vnops.c 
  Log:
  Add optional device vnode bypass to DEVFS.
  
  The tunable vfs.devfs.fops controls this feature and defaults to off.
  
  When enabled (vfs.devfs.fops=1 in loader), device vnodes opened
  through a filedescriptor gets a special fops vector which instead
  of the detour through the vnode layer goes directly to DEVFS.
  
  Amongst other things this allows us to run Giant free read/write to
  device drivers which have been weaned off D_NEEDGIANT.
  
  Currently this means /dev/null, /dev/zero, disks, (and maybe the
  random stuff ?)
  
  On a 700MHz K7 machine this doubles the speed of
          dd if=/dev/zero of=/dev/null bs=1 count=1000000
  
  This roughly translates to shaving 2usec of each read/write syscall.
  
  The poll/kqfilter paths need more work before they are giant free,
  this work is ongoing in p4::phk_bufwork
  
  Please test this and report any problems, LORs etc.
  
  Revision  Changes    Path
  1.82      +287 -0    src/sys/fs/devfs/devfs_vnops.c



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