2013/2/24 Jeremy Chadwick <j...@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 j...@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? _______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"