Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 Feb 2013 02:28:08 +0400
From:      Michael BlackHeart <amdmiek@gmail.com>
To:        Jeremy Chadwick <jdc@koitsu.org>
Cc:        freebsd-stable <freebsd-stable@freebsd.org>
Subject:   Re: Old ICH7 SATA-2 question
Message-ID:  <CA%2BAz77NHoPc2DoyQDUQQRtbLWrDndmRp91BfjTz7Gfk35r4d5g@mail.gmail.com>
In-Reply-To: <20130223211932.GA41809@icarus.home.lan>
References:  <CA%2BAz77OiEauxDK_73NgZgbJCk0HHfmALywS4ZQ3KwQiiuyGDiQ@mail.gmail.com> <20130223211932.GA41809@icarus.home.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
2013/2/24 Jeremy Chadwick <jdc@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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?



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BAz77NHoPc2DoyQDUQQRtbLWrDndmRp91BfjTz7Gfk35r4d5g>