cvs commit: src/sys/dev/md md.c

Alan Cox alc at FreeBSD.org
Thu Mar 18 10:23:38 PST 2004


alc         2004/03/18 10:23:37 PST

  FreeBSD src repository

  Modified files:
    sys/dev/md           md.c 
  Log:
  Utilize sf_buf_alloc() and sf_buf_free() to implement the ephemeral
  mappings required by mdstart_swap().  On i386, if the ephemeral mapping
  is already in the sf_buf mapping cache, a swap-backed md performs
  similarly to a malloc-backed md.  Even if the ephemeral mapping is not
  cached, this implementation is still faster.  On 64-bit platforms, this
  change has the effect of using the direct virtual-to-physical mapping,
  avoiding ephemeral mapping overheads, such as TLB shootdowns on SMPs.
  
  On a 2.4GHz, 400MHz FSB P4 Xeon configured with 64K sf_bufs and
  "mdmfs -S -o async -s 128m md /mnt"
  
  before:
  dd if=/dev/md0 of=/dev/null bs=64k
  134217728 bytes transferred in 0.430923 secs (311465697 bytes/sec)
  
  after with cold sf_buf cache:
  dd if=/dev/md0 of=/dev/null bs=64k
  134217728 bytes transferred in 0.367948 secs (364773576 bytes/sec)
  
  after with warm sf_buf cache:
  dd if=/dev/md0 of=/dev/null bs=64k
  134217728 bytes transferred in 0.252826 secs (530870010 bytes/sec)
  
  malloc-backed md:
  dd if=/dev/md0 of=/dev/null bs=64k
  134217728 bytes transferred in 0.253126 secs (530240978 bytes/sec)
  
  Revision  Changes    Path
  1.117     +9 -9      src/sys/dev/md/md.c


More information about the cvs-src mailing list