From: "Jörg Sommer" <joerg@alea.gnuu.de>
To: Lin Ming <ming.m.lin@intel.com>, Jeff Garzik <jgarzik@redhat.com>
Cc: Tejun Heo <tj@kernel.org>, linux-ide@vger.kernel.org
Subject: DMA doesn't work since "make ata port as parent device of scsi host"
Date: Thu, 15 Mar 2012 02:48:07 +0100 [thread overview]
Message-ID: <20120315014807.GA3051@alea.gnuu.de> (raw)
[-- Attachment #1: Type: text/plain, Size: 8898 bytes --]
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.
[ 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@redhat.com
[ 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@kernel.org>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
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.
--
If Java had true garbage collection, most programs would delete
themselves upon execution
[-- Attachment #2: Digital signature http://en.wikipedia.org/wiki/OpenPGP --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
next reply other threads:[~2012-03-15 2:22 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-15 1:48 Jörg Sommer [this message]
2012-03-15 1:59 ` DMA doesn't work since "make ata port as parent device of scsi host" Lin Ming
2012-03-15 3:26 ` Lin Ming
2012-03-15 7:48 ` Jörg Sommer
2012-03-15 8:19 ` Lin Ming
2012-03-15 15:59 ` Jörg Sommer
2012-03-19 8:55 ` Lin Ming
2012-03-21 1:25 ` Lin Ming
2012-03-21 19:40 ` Jörg Sommer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120315014807.GA3051@alea.gnuu.de \
--to=joerg@alea.gnuu.de \
--cc=jgarzik@redhat.com \
--cc=linux-ide@vger.kernel.org \
--cc=ming.m.lin@intel.com \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox