qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] DMA timeouts running a FreeBSD guest with last CVS snapshot


From: Carlo Marcelo Arenas Belon
Subject: [Qemu-devel] DMA timeouts running a FreeBSD guest with last CVS snapshot
Date: Mon, 15 Jan 2007 03:21:36 -0600
User-agent: Mutt/1.4.1i

Greetings,

while testing a snapshot from the last CVS tree with a freshly installed amd64 
FreeBSD 6.2 guest I noticed the following errors at boot time :

  ad0: 2048MB <QEMU HARDDISK 0.8.3> at ata0-master WDMA2
  ad0: FAILURE - READ_DMA timed out LBA=4194301
  acd0: CDROM <QEMU CD-ROM/0.8.3> at ata1-master WDMA2
  acd0: TIMEOUT - READ BIG retrying (1 retry left)

after the system finishes booting  there are apparently no more timeouts and 
the disk reports it is using UDMA2 through atacontrol but the IO performance is 
poor while reads to the virtual disk around the same sector (the disk is 4194304
sectors long) that failed work fine.

  # atacontrol mode ad0
  current mode = WDMA2

  # atacontrol cap ad0

  Protocol              ATA/ATAPI revision 7
  device model          QEMU HARDDISK
  serial number         QM00001
  firmware revision     0.8.3
  cylinders             4161
  heads                 16
  sectors/track         63
  lba supported         4194304 sectors
  lba48 supported       4194304 sectors
  dma supported
  overlap not supported

the same can be reproduced with a FreeBSD 6.1 guest and also with i386 guests
including an old FreeBSD 5.3 guest and even with an amd64 Debian GNU/kFreeBSD
guest but AFAIK not with Linux, OpenBSD or [Open]Solaris.

the following are the details as detected by the FreeBSD kernel at boot from
dmesg (the relevant stuff) :

  acpi0: <QEMU QEMURSDT> on motherboard
  pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
  pci0: <ACPI PCI bus> on pcib0
  atapci0: <Intel PIIX3 WDMA2 controller> port
  0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xc000-0xc00f at device 1.1 on pci0
  ata0: <ATA channel 0> on atapci0
  ata1: <ATA channel 1> on atapci0

the ata driver is configured to ask the devide for the available modes and 
seems to be getting DMA2 and PIO4 from it, while defaulting to DMA as
configured.

the problem goes away if it is forced to run in PIO4 mode which is the only 
possibility for the FreeBSD 5.3 system which otherwise hungs at boot.

the problem doesn't exist in qemu 0.8.2 and is therefore a regression, but 
i'd yet to bisect the last changes to find the culprit, and since it seems to 
be a FreeBSD only problem I am first adding debugging to the guest kernel, 
to track it from the guest side.

nonetheless wanted to send this email, so that you guys had a heads up, and to
see if anyone had any ideas or some similar problems in other platforms (I am
using a Gentoo Linux Host).

Carlo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]