Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Nov 1999 18:16:16 -0700 (MST)
From:      "Kenneth D. Merry" <ken@kdm.org>
To:        shimon@simon-shapiro.org (Simon Shapiro)
Cc:        rjesup@wgate.com (Randell Jesup), freebsd-arch@freebsd.org
Subject:   Re: I/O Evaluation Questions (Long but interesting!)
Message-ID:  <199911120116.SAA30871@panzer.kdm.org>
In-Reply-To: <382B52F9.2C6D1E00@simon-shapiro.org> from Simon Shapiro at "Nov 11, 1999 06:36:25 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
[ Simon:  the "charset = " (i.e. nothing) line your mail makes my mailer
barf.  You may want to adjust your character set. ]

Simon Shapiro wrote...
> Randell Jesup wrote:
> >         Second, could they be (for large IO's) transferring directly
> > into user memory, bypassing all buffers (I haven't really been following
> > the discussion; a good trick is to do direct DMA into the destination
> > buffer - it also allows you to use large commands to the drive (less
> > command overhead).  Saving a memory-to-memory copy counts at those speeds.
> 
> This happens in FreeBSD on raw I/O.  I belive some work was done
> to do that on block i.o too (something to do with zero copy
> in vm...

I think you may get this behavior if you turn on the ENABLE_VFS_IOOPT
option, and then 'sysctl -w vfs.ioopt=1'.  It only works for page-sized and
page-aligned buffers, though.  (see sys/ufs/ufs/ufs_readwrite.c)

I'm not sure how often that kicks in in normal operation.  Someone else
might know.

> > Unlikely, though, and very tricky.  (Interesting idea, though -
> > pseudo-mmap.)  They also could set up the DMA, and mark the pages in the
> > page table so that you'll fault if you try to access them, and then undo
> > the mark when the IO is done (or as each N pages of the IO is done make
> > those N pages accessible).  There are many cute tricks here...
> > 
> >         What hardware do you have that gives 100MB/s or more???
> 
> (bragging corner: 167 read, 138 write :-)  DPT PM3755U2B with
> 256MB of ECC cache in a Dell PowerEdge 1300/600.
> FreeBSD RELENG_3, single CPU running.

How can you get speeds like that with just a 32-bit PCI bus?  The specs for
the PowerEdge 1300 say it has 5 32-bit PCI slots:

http://www.dell.com/us/en/biz/products/spec_wrkgp_1300_servers.htm

Ken
-- 
Kenneth Merry
ken@kdm.org




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




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