Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Mar 2004 10:23:37 -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/dev/md md.c
Message-ID:  <200403181823.i2IINbDA065857@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



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