Old ICH7 SATA-2 question
Michael BlackHeart
amdmiek at gmail.com
Sat Feb 23 22:28:10 UTC 2013
2013/2/24 Jeremy Chadwick <jdc at koitsu.org>:
> On Sun, Feb 24, 2013 at 12:46:43AM +0400, Michael BlackHeart wrote:
>> Hello there, I've got a question about SATA.
>>
>> I've got ASUS P5GC-MX/1333 with ICH7. (SATA2 support)
>> A few HDD with SATA2.
>>
>> system:
>> uname -a
>> FreeBSD diablo.miekoff.local 9.1-STABLE FreeBSD 9.1-STABLE #1 r246666:
>> Tue Feb 12 00:19:07 MSK 2013
>> root at diablo.miekoff.local:/usr/obj/usr/src/sys/DIABLO64 amd64
>>
>>
>> camcontrol info
>>
>> camcontrol iden ada2
>> pass2: <ST3500320AS SD1A> ATA-8 SATA 2.x device
>> pass2: 150.000MB/s transfers (SATA, UDMA5, PIO 8192bytes)
>>
>> protocol ATA/ATAPI-8 SATA 2.x
>> device model ST3500320AS
>> firmware revision SD1A
>> serial number 5QM3LB0N
>> WWN 5000c50011db1e03
>> cylinders 16383
>> heads 16
>> sectors/track 63
>> sector size logical 512, physical 512, offset 0
>> LBA supported 268435455 sectors
>> LBA48 supported 976773168 sectors
>> PIO supported PIO4
>> DMA supported WDMA2 UDMA6
>> media RPM 7200
>>
>> Feature Support Enabled Value Vendor
>> read ahead yes yes
>> write cache yes yes
>> flush cache yes yes
>> overlap no
>> Tagged Command Queuing (TCQ) no no
>> Native Command Queuing (NCQ) yes 32 tags
>> SMART yes yes
>> microcode download yes yes
>> security yes no
>> power management yes yes
>> advanced power management no no
>> automatic acoustic management no no
>> media status notification no no
>> power-up in Standby no no
>> write-read-verify yes yes 2/0x2
>> unload no no
>> free-fall no no
>> data set management (TRIM) no
>
> The "protocol" line in camcontrol identify output indicates the maximum
> capability the device can support, not what the current negotiated PHY
> speed is. Let me clarify by being more technical:
>
> "camcontrol identify" issues the ATA IDENTIFY (0xec) command to the
> underlying disk; all the output you get back is information that the
> disk itself returns (not the controller). For example, SATA signalling
> speed capability is returned in word 76 of the output (ref T13/2015-D
> rev 3 WD spec).
>
>> smartctl -a /dev/ada2 | more
>> smartctl 6.0 2012-10-10 r3643 [FreeBSD 9.1-STABLE amd64] (local build)
>> Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org
>>
>> === START OF INFORMATION SECTION ===
>> Model Family: Seagate Barracuda 7200.11
>> Device Model: ST3500320AS
>> Serial Number: 5QM3LB0N
>> LU WWN Device Id: 5 000c50 011db1e03
>> Firmware Version: SD1A
>> User Capacity: 500 107 862 016 bytes [500 GB]
>> Sector Size: 512 bytes logical/physical
>> Rotation Rate: 7200 rpm
>> Device is: In smartctl database [for details use: -P show]
>> ATA Version is: ATA8-ACS T13/1699-D revision 4
>> SATA Version is: SATA 2.6, 3.0 Gb/s
>> Local Time is: Sun Feb 24 00:29:47 2013 MSK
>> SMART support is: Available - device has SMART capability.
>> SMART support is: Enabled
>
> The "SATA Version is" line in smartmontools 6.0 can indicate both
> operational PHY speed **as well** as disk capability.
>
> For example, a drive which has SATA600 capability but has negotiated
> SATA300 speed will show something like this:
>
> SATA Version is: SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
>
> Lines lacking "(current: xxx)" notation indicate either lack of a way to
> determine current PHY speed with the OS, or, the maximum capability matches
> the negotiated speed. In other words, there's no point to saying
> something like "SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)"; the author
> feels its redundant.
>
> However, I have seen this reporting mechanism in smartmontools work
> incorrectly in some cases. In those cases, from what I've seen, the
> "SATA Version" line indicates **only** what the maximum capability is
> of the device.
>
>> At this point all seems SATA2 capatible.
>>
>> But at loading:
>> atapci0: <Intel ICH7 UDMA100 controller> port
>> 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xffa0-0xffaf at device 31.1 on
>> pci0
>> ata0: <ATA channel> at channel 0 on atapci0
>> atapci1: <Intel ICH7 SATA300 controller> port
>> 0xb800-0xb807,0xb400-0xb403,0xb000-0xb007,0xa800-0xa803,0xa400-0xa40f
>> irq 23 at device 31.2 on pci0
>> ata2: <ATA channel> at channel 0 on atapci1
>> ata3: <ATA channel> at channel 1 on atapci1
>>
>> Looks like it's also SATA2 (SATA300)
>
> Your ICH7 controller is SATA300 capable. However, what you have not
> provided is output from "pciconf -lvbc". The exact revision of
> controller matters greatly here. Wikipedia sums this up -- read the
> first paragraph fully:
>
> http://en.wikipedia.org/wiki/I/O_Controller_Hub#ICH7
>
>> But HDD says this:
>>
>> ada2 at ata2 bus 0 scbus1 target 0 lun 0
>> ada2: <ST3500320AS SD1A> ATA-8 SATA 2.x device
>> ada2: 150.000MB/s transfers (SATA, UDMA5, PIO 8192bytes)
>> ada2: 476940MB (976773168 512 byte sectors: 16H 63S/T 16383C)
>> ada2: Previously was known as ad2
>
> To me, this indicates the ada2 device is capable of SATA300 speeds
> ("SATA 2.x device"), but has negotiated SATA150 speed.
>
> The ST3500320AS is a model of hard disk which also has a jumper that can
> limit the drive controller PHY to SATA150; please see page 22 of this
> PDF:
>
> http://www.seagate.com/staticfiles/support/disc/manuals/desktop/Barracuda%207200.11/100452348g.pdf
>
> You will need to check to see if that jumper is installed.
>
> This particular model of disk will never exceed SATA150 speeds, so there
> is no reliable way to test what the actual PHY is operating at
> (throughput-wise).
>
> At this point, the only "mismatch" I can see is between smartmontools
> and what dmesg shows. As mentioned, I have seen smartmontools get this
> wrong.
>
>> At this point I've a quiestion - what's the real operation speed and why's that.
>> And for the record - I can't switch ICH 7 to ahci due to bios limitations.
>
> It may not be a BIOS limitation but revision of ICH7 chipset. There are
> some revisions which offer AHCI capability, others which offer AHCI and
> RAID, and others which offer none of these. Which revision your vendor
> chose to put on their mainboard is up to them.
>
>> And one more, I've got netbook with ICH7 (NM-10 mb).
>> It uses achi driver, and HDD says it's
>>
>> ahci0: <Intel ICH7 ACHI SATA controller> <...>
>> ahic0: AHCI v1.10 with 4 3Gbs ports <...>
>> <...>
>> ada0: <vendor blah-blah-blah> ATA-8 SATA 2.x device
>> ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
>> ada0: Command Queueing enabled
>
> This disk (no idea if it's the same disk as what you listed above; you
> have opted to hand-type information and exclude things) is SATA300
> capable and is operating at SATA300 speed.
>
> Again: no "pciconf -lvbc" output means nobody can tell you what revision
> of ICH7 you're using on this (different) system.
>
> But regardless, it's obvious that the two systems use different ICH7
> revisions. There is nothing you can do about that.
>
>> As far as I remember without AHCI there's no NCQ support.
>
> For ICHxx-based controllers that's correct.
>
>> But why with SATA300 controller on P5GC-MX/1333 I've got only 150
>> transfers? Is it's a limitations of this driver for old chip?
>
> See above.
>
> --
> | Jeremy Chadwick jdc at koitsu.org |
> | UNIX Systems Administrator http://jdc.koitsu.org/ |
> | Mountain View, CA, US |
> | Making life hard for others since 1977. PGP 4BD6C0CB |
Thanks, Jeremy.
1st - Realy thanks for a quick answer :)
2nd - I'm aware about jumpers both on Seagate (Default limitation) and
WD. And my SATA-3 WD's are reported by smartmontools just as you said.
next, pciconf info:
hostb0 at pci0:0:0:0: class=0x060000 card=0x817a1043 chip=0x27708086
rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82945G/GZ/P/PL Memory Controller Hub'
class = bridge
subclass = HOST-PCI
cap 09[e0] = vendor (length 9) Intel cap 5 version 1
vgapci0 at pci0:0:2:0: class=0x030000 card=0x817a1043 chip=0x27728086
rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82945G/GZ Integrated Graphics Controller'
class = display
subclass = VGA
bar [10] = type Memory, range 32, base 0xdfc00000, size 524288, enabled
bar [14] = type I/O Port, range 32, base 0x8800, size 8, enabled
bar [18] = type Prefetchable Memory, range 32, base 0xe0000000,
size 268435456, enabled
bar [1c] = type Memory, range 32, base 0xdfc80000, size 262144, enabled
cap 05[90] = MSI supports 1 message
cap 01[d0] = powerspec 2 supports D0 D3 current D0
pcib1 at pci0:0:28:0: class=0x060400 card=0x81791043 chip=0x27d08086
rev=0x01 hdr=0x01
vendor = 'Intel Corporation'
device = 'N10/ICH 7 Family PCI Express Port 1'
class = bridge
subclass = PCI-PCI
cap 10[40] = PCI-Express 1 root port slot max data 128(128) link x1(x1)
speed 2.5(2.5)
cap 05[80] = MSI supports 1 message
cap 0d[90] = PCI Bridge card=0x81791043
cap 01[a0] = powerspec 2 supports D0 D3 current D0
ecap 0002[100] = VC 1 max VC1
ecap 0005[180] = unknown 1
pcib2 at pci0:0:28:1: class=0x060400 card=0x81791043 chip=0x27d28086
rev=0x01 hdr=0x01
vendor = 'Intel Corporation'
device = 'N10/ICH 7 Family PCI Express Port 2'
class = bridge
subclass = PCI-PCI
cap 10[40] = PCI-Express 1 root port max data 128(128) link x1(x1)
speed 2.5(2.5)
cap 05[80] = MSI supports 1 message
cap 0d[90] = PCI Bridge card=0x81791043
cap 01[a0] = powerspec 2 supports D0 D3 current D0
ecap 0002[100] = VC 1 max VC1
ecap 0005[180] = unknown 1
uhci0 at pci0:0:29:0: class=0x0c0300 card=0x81791043 chip=0x27c88086
rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = 'N10/ICH 7 Family USB UHCI Controller'
class = serial bus
subclass = USB
bar [20] = type I/O Port, range 32, base 0x9000, size 32, enabled
uhci1 at pci0:0:29:1: class=0x0c0300 card=0x81791043 chip=0x27c98086
rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = 'N10/ICH 7 Family USB UHCI Controller'
class = serial bus
subclass = USB
bar [20] = type I/O Port, range 32, base 0x9400, size 32, enabled
uhci2 at pci0:0:29:2: class=0x0c0300 card=0x81791043 chip=0x27ca8086
rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = 'N10/ICH 7 Family USB UHCI Controller'
class = serial bus
subclass = USB
bar [20] = type I/O Port, range 32, base 0x9800, size 32, enabled
uhci3 at pci0:0:29:3: class=0x0c0300 card=0x81791043 chip=0x27cb8086
rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = 'N10/ICH 7 Family USB UHCI Controller'
class = serial bus
subclass = USB
bar [20] = type I/O Port, range 32, base 0xa000, size 32, enabled
ehci0 at pci0:0:29:7: class=0x0c0320 card=0x81791043 chip=0x27cc8086
rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = 'N10/ICH 7 Family USB2 EHCI Controller'
class = serial bus
subclass = USB
bar [10] = type Memory, range 32, base 0xdfcffc00, size 1024, enabled
cap 01[50] = powerspec 2 supports D0 D3 current D0
cap 0a[58] = EHCI Debug Port at offset 0xa0 in map 0x14
pcib3 at pci0:0:30:0: class=0x060401 card=0x81791043 chip=0x244e8086
rev=0xe1 hdr=0x01
vendor = 'Intel Corporation'
device = '82801 PCI Bridge'
class = bridge
subclass = PCI-PCI
cap 0d[50] = PCI Bridge card=0x81791043
isab0 at pci0:0:31:0: class=0x060100 card=0x81791043 chip=0x27b88086
rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = '82801GB/GR (ICH7 Family) LPC Interface Bridge'
class = bridge
subclass = PCI-ISA
cap 09[e0] = vendor (length 12) Intel cap 1 version 0
features: Quick Resume, SATA RAID-5, 6 PCI-e x1
slots, SATA RAID-0/1/10, SATA AHCI
atapci0 at pci0:0:31:1: class=0x01018a card=0x81791043 chip=0x27df8086
rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = '82801G (ICH7 Family) IDE Controller'
class = mass storage
subclass = ATA
bar [20] = type I/O Port, range 32, base 0xffa0, size 16, enabled
atapci1 at pci0:0:31:2: class=0x01018f card=0x26011043 chip=0x27c08086
rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = 'N10/ICH7 Family SATA IDE Controller'
class = mass storage
subclass = ATA
bar [10] = type I/O Port, range 32, base 0xb800, size 8, enabled
bar [14] = type I/O Port, range 32, base 0xb400, size 4, enabled
bar [18] = type I/O Port, range 32, base 0xb000, size 8, enabled
bar [1c] = type I/O Port, range 32, base 0xa800, size 4, enabled
bar [20] = type I/O Port, range 32, base 0xa400, size 16, enabled
cap 01[70] = powerspec 2 supports D0 D3 current D0
ichsmb0 at pci0:0:31:3: class=0x0c0500 card=0x81791043 chip=0x27da8086
rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = 'N10/ICH 7 Family SMBus Controller'
class = serial bus
subclass = SMBus
bar [20] = type I/O Port, range 32, base 0x400, size 32, enabled
none0 at pci0:3:0:0: class=0x028000 card=0x3a7e1186 chip=0x0030168c
rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
device = 'AR9300 Wireless LAN adaptor'
class = network
bar [10] = type Memory, range 64, base 0xdffe0000, size 131072, enabled
cap 01[40] = powerspec 3 supports D0 D1 D3 current D3
cap 05[50] = MSI supports 4 messages, 64 bit, vector masks
cap 10[70] = PCI-Express 2 endpoint max data 128(128) link x1(x1)
speed 2.5(2.5)
ecap 0001[100] = AER 1 0 fatal 0 non-fatal 3 corrected
ecap 0002[140] = VC 1 max VC0
ecap 0003[300] = Serial 1 0000000000000000
ae0 at pci0:2:0:0: class=0x020000 card=0x82331043 chip=0x20481969 rev=0xa0 hdr=0x00
vendor = 'Atheros Communications'
device = 'L2 Fast Ethernet'
class = network
subclass = ethernet
bar [10] = type Memory, range 64, base 0xdfec0000, size 262144, enabled
cap 01[40] = powerspec 2 supports D0 D3 current D0
cap 05[48] = MSI supports 1 message, 64 bit enabled with 1 message
cap 10[58] = PCI-Express 1 endpoint max data 128(128) link x1(x1)
speed 2.5(2.5)
ecap 0001[100] = AER 1 0 fatal 1 non-fatal 0 corrected
ath0 at pci0:1:0:0: class=0x020000 card=0x3a131186 chip=0x0013168c
rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
device = 'Atheros AR5001X+ Wireless Network Adapter'
class = network
subclass = ethernet
bar [10] = type Memory, range 32, base 0xdfde0000, size 65536, enabled
cap 01[44] = powerspec 2 supports D0 D3 current D0
skc0 at pci0:1:1:0: class=0x020000 card=0x4b011186 chip=0x4b011186
rev=0x11 hdr=0x00
vendor = 'D-Link System Inc'
device = 'DGE-530T Gigabit Ethernet Adapter (rev 11)'
class = network
subclass = ethernet
bar [10] = type Memory, range 32, base 0xdfdfc000, size 16384, enabled
bar [14] = type I/O Port, range 32, base 0xc800, size 256, enabled
cap 01[48] = powerspec 2 supports D0 D1 D2 D3 current D0
cap 03[50] = VPD
It seems it's 82801GB/GR, more GB than GR because there's no RAID. And
as I thought no AHCI (due to wikipedia)
Also you wrote:
> This particular model of disk will never exceed SATA150 speeds, so there
> is no reliable way to test what the actual PHY is operating at
> (throughput-wise).
OK with that, but what about these two (but it seems they're never
exceed SATA150 speeds too):
Feb 23 10:57:18 diablo kernel: ada3 at ata2 bus 0 scbus1 target 1 lun 0
Feb 23 10:57:18 diablo kernel: ada3: <WDC WD20EARX-00PASB0 51.0AB51>
ATA-8 SATA 3.x device
Feb 23 10:57:18 diablo kernel: ada3: 150.000MB/s transfers (SATA,
UDMA5, PIO 8192bytes)
Feb 23 10:57:18 diablo kernel: ada3: 1907729MB (3907029168 512 byte
sectors: 16H 63S/T 16383C)
Feb 23 10:57:18 diablo kernel: ada3: Previously was known as ad3
Feb 23 10:57:18 diablo kernel: ada5 at ata3 bus 0 scbus2 target 1 lun 0
Feb 23 10:57:18 diablo kernel: ada5: <WDC WD20EARX-00PASB0 51.0AB51>
ATA-8 SATA 3.x device
Feb 23 10:57:18 diablo kernel: ada5: 150.000MB/s transfers (SATA,
UDMA5, PIO 8192bytes)
Feb 23 10:57:18 diablo kernel: ada5: 1907729MB (3907029168 512 byte
sectors: 16H 63S/T 16383C)
Feb 23 10:57:18 diablo kernel: ada5: Previously was known as ad5
They're 2Tb SATA-3 but still negotiate 150MBs transfer. I'd like to
understand why all HDD are choosing SATA-1 even if they're capable to
choose SATA-2 and is there any performance issue. And can you
recommend any good HDD performance test?
More information about the freebsd-stable
mailing list