Hi, while watching the thread about the performance in the newest kernel, i experience my own performance riddle.
On a VM with 1 GiB reserved host RAM (which it does not exhaust) and elsewise idle host system, i see poor performance of a virtual DOS-MBR-partition as device file, while it delivers data with satisfying speed from a file out of the mounted device. netbsd# dd bs=2048 count=131072 if=/dev/wd1f of=/dev/null 131072+0 records out 268435456 bytes transferred in 39.934 secs (6721977 bytes/sec) Larger dd chunks do not really help (i see non-deterministic speed variations of up 30 %): netbsd# dd bs=65536 count=4096 if=/dev/wd1f of=/dev/null 4096+0 records out 268435456 bytes transferred in 43.345 secs (6192997 bytes/sec) But the mounted filesystem is fast (and correct): netbsd# mount_cd9660 /dev/wd1f /mnt/iso netbsd# dd bs=2048 count=131072 if=/mnt/iso/my/large_file of=/dev/null 268435456 bytes transferred in 1.957 secs (137166814 bytes/sec) (Since yesterday my cd9660 can do this: 4329375744 bytes transferred in 19.548 secs (221474101 bytes/sec) :)) Device reading speed is low on 6.1.3 and 6.99.40 alike (can't mount the filesystem on 6.1.3, though). The host disk usually delivers 60 to 80 MB per second, if it does not have to hop through a thick directory tree. The host operating system (probably) sees the device as a heavily sparse file. Both read intervals share a large number of blocks. So the host system probably can deliver them out of RAM after the first tests. Nevertheless, device reading shows no signs of speed improvement if i repeat the same test. What does cd9660 do so much better than dd or any other user space program which accesses the device file ? Have a nice day :) Thomas
