On Thu, 2012-03-15 at 02:48 +0100, Jörg Sommer wrote: > Hi, > > I'm getting these messages in a KVM virtualized host and the access to > the disks is very slow. Using libata.dma=0 suppresses the warnings, but > the disks are still slow. Hi Jörg, Let me try to reproduce this issue first. Thanks for the report. Lin Ming > > [ 3.117419] pata-macio 0.00020000:ata-1: Activating pata-macio chipset Heathrow ATA, Apple bus ID 0 > [ 3.121637] scsi0 : pata_macio > [ 3.123071] ata1: PATA max MWDMA2 irq 17 > [ 3.289181] ata1.00: ATA-7: QEMU HARDDISK, 1.0,1, max UDMA/100 > [ 3.290843] ata1.00: 3906250 sectors, multi 16: LBA48 > [ 3.296526] ata1.01: ATA-7: QEMU HARDDISK, 1.0,1, max UDMA/100 > [ 3.301789] ata1.01: 1953125 sectors, multi 16: LBA48 > [ 3.309588] ata1.00: configured for MWDMA2 > [ 3.322195] ata1.01: configured for MWDMA2 > [ 3.324375] scsi 0:0:0:0: Direct-Access ATA QEMU HARDDISK 1.0, PQ: 0 ANSI: 5 > [ 3.335681] sd 0:0:0:0: [sda] 3906250 512-byte logical blocks: (2.00 GB/1.86 GiB) > [ 3.342118] scsi 0:0:1:0: Direct-Access ATA QEMU HARDDISK 1.0, PQ: 0 ANSI: 5 > [ 3.349779] sd 0:0:0:0: [sda] Write Protect is off > [ 3.351558] sd 0:0:1:0: [sdb] 1953125 512-byte logical blocks: (1.00 GB/953 MiB) > [ 3.361555] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA > [ 3.377923] sda: unknown partition table > [ 3.387499] sd 0:0:1:0: [sdb] Write Protect is off > [ 3.389902] sd 0:0:0:0: [sda] Attached SCSI disk > [ 3.395363] sd 0:0:1:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA > [ 3.407258] sdb: unknown partition table > [ 3.410463] sd 0:0:1:0: [sdb] Attached SCSI disk > [ 4.137709] pata-macio 0.00021000:ata-2: Activating pata-macio chipset Heathrow ATA, Apple bus ID 0 > [ 4.141529] scsi1 : pata_macio > [ 4.142797] ata2: PATA max MWDMA2 irq 19 > [ 4.302209] ata2.00: ATAPI: QEMU DVD-ROM, 1.0,1, max UDMA/100 > [ 4.306595] ata2.00: configured for MWDMA2 > [ 4.309863] scsi 1:0:0:0: CD-ROM QEMU QEMU DVD-ROM 1.0, PQ: 0 ANSI: 5 > [ 5.158307] pata-macio 0.00022000:ata-3: Activating pata-macio chipset Heathrow ATA, Apple bus ID 0 > [ 5.163497] scsi2 : pata_macio > [ 5.164792] ata3: PATA max MWDMA2 irq 21 > [ 5.166278] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver > [ 5.168587] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver > [ 5.171020] mousedev: PS/2 mouse device common for all mice > [ 5.174973] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: dm-devel@xxxxxxxxxx > [ 5.178453] zcache: cleancache enabled using kernel transcendent memory and compression buddies > [ 5.181809] TCP cubic registered > [ 5.183188] NET: Registered protocol family 17 > [ 5.184472] Registering the dns_resolver key type > [ 5.201059] registered taskstats version 1 > [ 5.203025] Running tests on trace events: > > [ 10.524655] EXT4-fs (sda): couldn't mount as ext3 due to feature incompatibilities > [ 10.528671] EXT4-fs (sda): couldn't mount as ext2 due to feature incompatibilities > [ 10.574484] zcache: created ephemeral tmem pool, id=0, client=65535 > [ 10.577259] EXT4-fs (sda): mounted filesystem without journal. Opts: (null) > [ 10.579299] VFS: Mounted root (ext4 filesystem) readonly on device 8:0. > [ 10.583854] Freeing unused kernel memory: 280k freed > [ 40.828762] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 > [ 40.830697] ata1.00: failed command: READ DMA > [ 40.831985] ata1.00: cmd c8/00:c8:38:22:00/00:00:00:00:00/e0 tag 0 dma 102400 in > [ 40.831992] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x20 (host bus error) > [ 40.840162] ata1.00: status: { DRDY } > [ 45.923821] ata1.00: qc timeout (cmd 0xec) > [ 45.925142] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4) > [ 45.926957] ata1.00: revalidation failed (errno=-5) > [ 50.975553] ata1: link is slow to respond, please be patient (ready=0) > [ 55.974506] ata1: device not ready (errno=-16), forcing hardreset > [ 55.976336] ata1: soft resetting link > [ 56.137659] ata1.00: configured for MWDMA2 > [ 56.142009] ata1.01: configured for MWDMA2 > [ 56.143237] ata1.00: device reported invalid CHS sector 0 > [ 56.144780] sd 0:0:0:0: [sda] Result: hostbyte=0x00 driverbyte=0x08 > [ 56.146859] sd 0:0:0:0: [sda] Sense Key : 0xb [current] [descriptor] > [ 56.148833] Descriptor sense data with sense descriptors (in hex): > [ 56.150542] 72 0b 00 00 00 00 00 0c 00 0a 80 00 00 00 00 00 > [ 56.153138] 00 00 00 00 > [ 56.154286] sd 0:0:0:0: [sda] ASC=0x0 ASCQ=0x0 > [ 56.155722] sd 0:0:0:0: [sda] CDB: cdb[0]=0x28: 28 00 00 00 22 38 00 00 c8 00 > [ 56.161462] end_request: I/O error, dev sda, sector 8760 > [ 56.163069] ata1: EH complete > [ 86.870671] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 > [ 86.872494] ata1.00: failed command: READ DMA > [ 86.873741] ata1.00: cmd c8/00:c0:40:22:00/00:00:00:00:00/e0 tag 0 dma 98304 in > [ 86.873748] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x20 (host bus error) > [ 86.877995] ata1.00: status: { DRDY } > [ 91.961330] ata1.00: qc timeout (cmd 0xec) > [ 91.962699] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4) > [ 91.964398] ata1.00: revalidation failed (errno=-5) > [ 97.014555] ata1: link is slow to respond, please be patient (ready=0) > [ 102.016502] ata1: device not ready (errno=-16), forcing hardreset > [ 102.018329] ata1: soft resetting link > [ 102.182355] ata1.00: configured for MWDMA2 > [ 102.186312] ata1.01: configured for MWDMA2 > [ 102.187498] ata1.00: device reported invalid CHS sector 0 > [ 102.189078] ata1: EH complete > [ 132.862149] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 > [ 132.864011] ata1.00: failed command: READ DMA > [ 132.865674] ata1.00: cmd c8/00:c0:40:22:00/00:00:00:00:00/e0 tag 0 dma 98304 in > [ 132.865682] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x20 (host bus error) > [ 132.869786] ata1.00: status: { DRDY } > [ 137.949377] ata1.00: qc timeout (cmd 0xec) > [ 137.950632] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4) > [ 137.952549] ata1.00: revalidation failed (errno=-5) > [ 142.954461] ata1: link is slow to respond, please be patient (ready=0) > > I've tracked this down to „ata: make ata port as parent device of scsi > host“ (9a6d6a2ddabbd32c07f6a38b659e5f3db319fa5a) with git biset. > > ata: make ata port as parent device of scsi host > > Currently, the device tree of ata port and scsi host looks as below, > > /sys/devices/pci0000:00/0000:00:1f.2 (ahci controller) > |-- ata1 (ata port) > |-- host0 (scsi host) > |-- target0:0:0 (scsi target) > |-- 0:0:0:0 (disk) > > This patch makes ata port as parent device of scsi host, then it becomes > > /sys/devices/pci0000:00/0000:00:1f.2 (ahci controller) > |-- ata1 (ata port) > |-- host0 (scsi host) > |-- target0:0:0 (scsi target) > |-- 0:0:0:0 (disk) > > With this change, the ata port runtime PM is easier. > For example, the ata port runtime suspend will happen as, > > disk suspend --> scsi target suspend --> scsi host suspend --> ata port > suspend. > > Acked-by: Tejun Heo <tj@xxxxxxxxxx> > Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx> > Signed-off-by: Jeff Garzik <jgarzik@xxxxxxxxxx> > > diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c > index 2a5412e..7ae1e77 100644 > --- a/drivers/ata/libata-scsi.c > +++ b/drivers/ata/libata-scsi.c > @@ -3398,7 +3398,7 @@ int ata_scsi_add_hosts(struct ata_host *host, struct scsi_host_template *sht) > */ > shost->max_host_blocked = 1; > > - rc = scsi_add_host(ap->scsi_host, ap->host->dev); > + rc = scsi_add_host(ap->scsi_host, &ap->tdev); > if (rc) > goto err_add; > } > > Can you tell, what might be wrong? > > % cat /proc/cpuinfo > processor : 0 > cpu : 7455, altivec supported > clock : 798.720000MHz > revision : 3.3 (pvr 8001 0303) > bogomips : 48.58 > timebase : 18432000 > platform : PowerMac > model : PowerBook6,3 > machine : PowerBook6,3 > motherboard : PowerBook6,3 MacRISC3 Power Macintosh > detected as : 287 (iBook G4) > pmac flags : 0000001b > L2 cache : 256K unified > pmac-generation : NewWorld > Memory : 640 MB > > # qemu-system-ppc -enable-kvm -M mac99 -cpu G4 -k de \ > -kernel /boot/vmlinuz-3.3.0-rc5 \ > -append 'root=/dev/sda ro console=ttyPZ0 zcache' \ > -hda /mnt/data/debian-base-root.raw -hdb /mnt/data/debian-base-var.raw > > Bye, Jörg. -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html