Comment 83 for bug 508516

Revision history for this message
jim_charlton (charltn) wrote :

More info... I boot without bootchart installed and with the kernel parameters "rw init=/bin/bash". On getting the shell prompt, running "hdparm -t /dev/sda5" gives about 500 kB/sec for buffered disk reads. If I start a c program that is an infinite loop (while (1) {;}), then hdparm gives about 70 MB/sec for buffered disk reads. Killing the C program kills the disk performance. If I run "top" while the C program is running and press "1" (the number one), then I can see that the infinite loop C program is saturating CPU-1 (100%). CPU-2 is just idling.

Why is it that running a program that uses 100% of one of the two CPUs brings disk performance up to normal? And killing that process drops the disk performance back to zilch???

Even after the upstart scripts have run ("exec init" from the shell above), the drive performance is much better while running the C program that saturates one CPU (69 MB/sec) than without that program running (42 MB/sec). This is reproducible.

There is something wrong with the way the disk driver works on this machine (NB305). It results in the slow boot and hibernate/suspend problems. Why saturating one CPU "cures" the problem is a mystery to me.