From owner-cvs-all Sun Sep 19 11:33: 8 1999 Delivered-To: cvs-all@freebsd.org Received: from critter.freebsd.dk (critter.freebsd.dk [212.242.40.131]) by hub.freebsd.org (Postfix) with ESMTP id C0CB115177; Sun, 19 Sep 1999 11:33:04 -0700 (PDT) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.9.3/8.9.2) with ESMTP id UAA17130; Sun, 19 Sep 1999 20:31:14 +0200 (CEST) (envelope-from phk@critter.freebsd.dk) To: Matthew Dillon Cc: dg@root.com, Greg Lehey , cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: User block device access (was: cvs commit: src/sys/miscfs/specfs spec_vnops.c src/sys/sys vnode.h src/sys/kern vfs_subr.c) In-reply-to: Your message of "Sun, 19 Sep 1999 11:06:28 PDT." <199909191806.LAA73255@apollo.backplane.com> Date: Sun, 19 Sep 1999 20:31:14 +0200 Message-ID: <17128.937765874@critter.freebsd.dk> From: Poul-Henning Kamp Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk In message <199909191806.LAA73255@apollo.backplane.com>, Matthew Dillon writes: >: >:Matt your "prove phk wrong at any time and at any cost" reflex is >:getting more and more in the way of your technical knowledge here :-) >: >:Did you usee the (...) I had up there ? Did you try it yourself ? >: >:rover# time dd if=/dev/rda0 of=/dev/null bs=1m count=100 >:100+0 records in >:100+0 records out >:104857600 bytes transferred in 33.712305 secs (3110366 bytes/sec) >:0.0u 0.0s 0:33.76 0.2% 67+1707k 2+0io 2pf+0w >:rover# time dd if=/dev/da0 of=/dev/null bs=1m count=100 >:100+0 records in >:100+0 records out >:104857600 bytes transferred in 84.777081 secs (1236863 bytes/sec) >:0.0u 3.7s 1:24.79 4.4% 75+2771k 51201+0io 0pf+0w >:rover# >: >:Block devices are (at least ?) an order of magnitude more >:resource consuming than char devices. > > Oh for gods sake, your problem here is not with the buffered > block device, it looks to me like you are overrunning the > buffer cache's capabilities with too-large block size. No that isn't the case, and if you cared to look at the code you would realize that the blocksize I use doesn't matter much since spec_read() reblocks. rover# time dd if=/dev/rda0 of=/dev/null bs=8k count=10000 10000+0 records in 10000+0 records out 81920000 bytes transferred in 27.664275 secs (2961220 bytes/sec) 0.0u 0.4s 0:27.66 1.4% 82+231k 0+0io 0pf+0w rover# ^rda^da^ time dd if=/dev/da0 of=/dev/null bs=8k count=10000 10000+0 records in 10000+0 records out 81920000 bytes transferred in 66.234151 secs (1236824 bytes/sec) 0.0u 2.8s 1:06.24 4.2% 69+194k 40001+0io 0pf+0w > Also, if you > are only getting 3.1 MBytes/sec over the raw interface there's > something seriously screwy with your setup. Yes indeed there are: lack of funds for much needed HW upgrades. This is actually a 1.8G Quantum Prodrive I inherited when a former instance of freefall had a disk upgrade in early 1995 and currently the only scsi disk I have to test with. -- Poul-Henning Kamp FreeBSD coreteam member phk@FreeBSD.ORG "Real hackers run -current on their laptop." FreeBSD -- It will take a long time before progress goes too far! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message