half write performance, half cpu load
bkoenig at cs.tu-berlin.de
Tue Sep 14 08:31:52 PDT 2004
I recently reported that write operations to my hard disk were too slow.
I compared only to FreeBSD 4.10, because I thought it is an issue with
ATAng, but I was wrong. I installed FreeBSD 5.2.1 and noticed that
everything works fine.
Once again I built kernels with profiling, tested my hard disk and tried
to analyse the data. I'm sure that I understand the numbers, and I
stepped into the kernel source code, recompiled an adjusted kernel again
and again, but I can't get any conclusion what's going wrong; most
likely because of I'm not a FreeBSD kernel developer and don't
understand lot of code which deals with hardware.
So I like to refer again to some very similar kernel profiling results
of a FreeBSD 5.2.1-RELEASE-p9 and a recent 5.3-BETA4. I made three
benchmarks on each system. I used exactly the same kernel configuration
with both kernels. I made them both with
config -pp <KERNCONF> && ../compile/<KERNCONF> && make depend && make
I made the 'dd' tests (writing 256k 4k-blocks = 1G) in single-user mode
on the exactly the same, identical ufs2 partition on hard disk.
There you'll find everything, results, kernel config, benchmark shell
A short summary and little analysis of profiling:
kernel version: 5.2.1 5.3
runtime of test (seconds): 37.25 88.65
write perf. with profiling (MB/s): 27.49 11.55
write perf. without prof. (MB/s): ~35 ~13
The data doesn't show any weird behaviour of the ata driver's functions;
no excessive calls. Far from it! The ata functions are little faster
than in 5.2.1 (good work, Søren Schmidt). But where's the difference?
Please have a look at Xatpic_intr0 and Xatpic_intr8. They are called
twice as often. The second hint is that ad_done and its descendents take
too much time.
I'm really clouded.
P.S.: For people who didn't get it last time I bothered with my problem:
it is an ST380021A/3.19 with ICH2 controller and i815EP chipset. Write
cache (hw.ata.wc) and dma (hw.ata.ata_dma) are activated. atacontrol
More information about the freebsd-current