I wrote:
As far as I understand it, the Solaris ata driver does not use DMA
transfers with the "pci-ide" qemu hardware, because the "bus master
support indicator" bit in pci configuration space offset 09h is not
set.
The message from the Solaris 10 b63 kernel is something like:
"ATA DMA off: cntrl not Bus Master DMA capable"
So it'll fall back to PIO mode transfers. PIO transfers may be slow, but
that's OK, so far.
The following patch changes the qemu pci-ide device to report a
"pci buster master ide controller" instead of a "pci ide controller
(without bus master support)". With that patch installed, a Solaris x86
guest os starts using DMA ide transfers. Maximum transfer rates on the qemu
ide hdd doubles (I observe ~10MByte/sec in DMA mode vs. ~5MByte/sec in PIO
mode).
(The patch includes the busmaster status register patch I send two days ago,
to enable the pci-ide controller for Solaris x86 in qemu "-pci" mode)