From owner-freebsd-arch Thu Nov 11 19:40:34 1999 Delivered-To: freebsd-arch@freebsd.org Received: from ns1.yes.no (ns1.yes.no [195.204.136.10]) by hub.freebsd.org (Postfix) with ESMTP id 3D13E14DD2 for ; Thu, 11 Nov 1999 19:40:29 -0800 (PST) (envelope-from eivind@bitbox.follo.net) Received: from bitbox.follo.net (bitbox.follo.net [195.204.143.218]) by ns1.yes.no (8.9.3/8.9.3) with ESMTP id EAA09353 for ; Fri, 12 Nov 1999 04:40:24 +0100 (CET) Received: (from eivind@localhost) by bitbox.follo.net (8.8.8/8.8.6) id EAA15670 for freebsd-arch@freebsd.org; Fri, 12 Nov 1999 04:40:22 +0100 (MET) Received: from nomis.simon-shapiro.org (nomis.simon-shapiro.org [209.86.126.163]) by hub.freebsd.org (Postfix) with SMTP id DA7ED14F47 for ; Thu, 11 Nov 1999 19:40:09 -0800 (PST) (envelope-from shimon@simon-shapiro.org) Received: (qmail 41817 invoked from network); 12 Nov 1999 03:40:08 -0000 Received: from localhost.simon-shapiro.org (HELO simon-shapiro.org) (127.0.0.1) by localhost.simon-shapiro.org with SMTP; 12 Nov 1999 03:40:08 -0000 Message-ID: <382B8C18.DD84F967@simon-shapiro.org> Date: Thu, 11 Nov 1999 22:40:08 -0500 From: Simon Shapiro Organization: Simon's Garage X-Mailer: Mozilla 4.6 [en] (X11; I; FreeBSD 3.3-STABLE i386) X-Accept-Language: en MIME-Version: 1.0 To: "Kenneth D. Merry" Cc: Randell Jesup , freebsd-arch@freebsd.org Subject: Re: I/O Evaluation Questions (Long but interesting!) References: <199911120116.SAA30871@panzer.kdm.org> Content-Type: text/plain; charset= Content-Transfer-Encoding: 7bit Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG "Kenneth D. Merry" wrote: > > [ Simon: the "charset = " (i.e. nothing) line your mail makes my mailer > barf. You may want to adjust your character set. ] [ Am using Netscape Messenger. Know not how to do that (no relevant preference found :-( ] > 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'll try that. Thanx. > 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: These numbers are for block devices. The kernel obviously caches some of this. I should look next time at emory usage; The machine has 1GB of memory. The dataset is about 15GB per array. I am getting about 120MB/Sec form the PCI bus. Raw disks perfromance is totally throttled by physics; We are running at about 200% of Seagate specs. I am running into some strange situations. Perhaps some light can be shed; ... int result; ... result = tsleep(lock, PRII2O | PCATCH, "i2olck", wait); switch (result) { ... } The above runs correctly. switch(result = tsleep(lock, PRII2O | PCATCH, "i2olck", wait)) { This line crashes with an invalid pointer in tsleep(). > http://www.dell.com/us/en/biz/products/spec_wrkgp_1300_servers.htm > > Ken > -- > Kenneth Merry > ken@kdm.org -- Sincerely Yours, Shimon@Simon-Shapiro.ORG 404.664.6401 Simon Shapiro Unwritten code has no bugs and executes at twice the speed of mouth To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message