1)I enable "preemptive kernel" in my linux-2.6.0-vanilla 2)I launch cdrecord and mkisofs as root with nice -20, with 64Mb of RAM buffer (note that I've also tried 4m, 32m and 48m). Whenever there is any process - even if running with priority 19, like mldonkey - that works a bit heavily on the hard disk, the buffer gets emptied and cant' refill. Workaround: disable "preemptive kernel". I did the same burning this way, with a kernel compilation, 3 konqueror windows constantly popping up and down, mldonkey and other goodies running and there was no way to make the buffer go under 99%. I've got a LG 52x10x52x IDE burner on hdc (4Mb internal buffer), another IDE 16x burner (older and unused) on hdd and 2 Maxtor 80Gb 7200RPM on hda and hdb configured as software RAID0 (chunk size 64), whose read throughpout (tested with bonnie) is 95Mb/s. I've got an ASUS-A7S333 (primary channel: ATA133; secondary: ATA66). dma is already activate on all disks.
You might want to file a bug upstream at http://bugme.osdl.org for this or post to the LKML - we don't control the 2.6.0 vanilla code, so it's up to the upstream kernel developers to sort this out. Thanks.