On Fri, 1 Jun 2012 22:30:10 +0200 Thomas Klausner <w...@netbsd.org> wrote:
> On Thu, May 31, 2012 at 01:45:53PM -0400, Matthew Mondor wrote: > > Although it's useful to mount random media more safely than it would be > > using kernel-space, I noticed that using 64KB reads, the kernel cd9660 > > will gladly read ~20MB/s from a DVD, but that rump_cd9660 using > > 64KB reads is limited to aproximately 4MB/s at most, even if the system > > is mostly idle during those transfers (on netbsd-6/amd64 and 4 3.3GHz > > cores). > > Some suggestions from Antti via email proxy: > Maybe he is using the block device (/dev/cd0a) instead of the raw device > (/dev/rcd0a). IIRC the former has some pretty serious performance > problems for userspace I/O. Also in the "maybe" department, libp2k > should probably detect and autoadjust a block device to raw device. > Or, someone could just fix the bdev stuff. Thanks for forwarding his suggestions, If I try using the raw device (rcd0a), the speed is about 1.2MB/s (I can't hear the DVD drive motor spin up either), while with the block device (cd0a) the speed is about 4MB/s (in this case it spins up to a higher speed). With the same DVD and cd0a mounted using the kernel FS implementation and the same command (cat /cdrom/* >/dev/null), I get from 10 (start) to 20 (end) MB/s. These tests were on NetBSD-6. I'm not familiar enough with libp2k or bdev to know what needs to be done, but I could certainly take a look eventually. But I probably also should verify if an ISO-9660 FUSE implementation exists, and perhaps try to port it eventually, and see if performance is adequate for general use. Thanks again, -- Matt