tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Performance riddle: mounted fs much faster than dev



Hi,

David Holland:
> The short answer is: use rwd1f, not wd1f. 

I tried this already. Re-try on 6.99.40:

  netbsd# dd bs=2048 count=131072 if=/dev/rwd1f of=/dev/null
  131072+0 records in
  131072+0 records out
  268435456 bytes transferred in 36.982 secs (7258543 bytes/sec)

In any case the speed factor of about 15 to 20 cannot be explained
by any CPU effort. top(1) shows 33 % interrupt, and 23 % idle.

Reading the file out of the mounted fs shows 15 % interrupt and
0 % idle. I need to read the full 4+ GiB to get significant
values in top. It is awsome fast. And the MD5 is correct.
The file consists of a few non-zero bytes at start, a zillion zeros,
and a few non-zeros near the end.

On 6.1.3 i experienced faster throughput via /dev/rwd1f up to
the first hundred MB (watched by a pacifier filter named "raedchen"),
but the speed sank heavily afterwards.
It was never near the speed of the mounted file (on 6.99.40).


Don't get me wrong. I'm not complaining.
But i wonder what in cd9660 does the trick.
Is it the readahead information provided by cd9660_bmap() ?
(Good idea to base readahead on the file and not on the device.
 Could be a vaccination against the classic TAO CD readahead bug
 of my host OS.)

Where in /usr/src would i find code for reading ahead in order
to inject a printf() and watch what it is doing ?


Have a nice day :)

Thomas



Home | Main Index | Thread Index | Old Index