| Summary: | AHCI not being enabled on PC | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Ryan Holt <ryan> |
| Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | Unspecified | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
Ryan Holt
2010-05-26 18:30:13 UTC
Hi Ryan,
A few requests:
1. Can you please try a CURRENT CD to see if the drives detect and
attach themselves to ahci(4) properly?
2. Could you please provide us with the device IDs for the controller?
Thanks!
-Garrett
Ryan Holt wrote:
>> I've got a fresh install of FreeBSD 8.0-Stable-201004 built on a Gigabyte GA-K8U-754 Motherboard. The boot drives are plugged directly into the Motherboard's SATA ports, which I believe is powered by a ULi M1689 chipset. I also have a Supermicro AOC-SAT2-MV8 PCI-X HBA card which has a Hercules-2 Rev. C0 SATA host controller built in. I've added ahci_load="YES" in my /boot/loader.conf and I can see that ahci.ko was loaded using klstat, but I do not see any drives appearing that use the ahci module. All d rives are labeled /dev/ad* instead of /dev/ada* and hotswap doesn't work properly. Running dmesg |grep -i ahci comes back empty.
I can't say about ULi SATA - I haven't tried any of them. Make sure that
you have AHCI mode enabled in BIOS. ahci(4) driver should attach to any
hardware that reporting AHCI compatibility via PCI class/subclass.
Supermicro AOC-SAT2-MV8 - is not AHCI compatible. New driver for it
named mvs(4). It was merged to 8-STABLE just a few weeks ago. You may
update your system and try it.
--
Alexander Motin
Hi Garrett,  How can I get the device IDs? pciconf?  [root@fs /usr/src]# pciconf -lv hostb0@pci0:0:0:0:    class=0x060000 card=0x50001458 chip=0x168910b9 rev=0x00 hdr=0x00    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'ULi M1689 K8 Northbridge with AGP and hypertransport'    class    = bridge    subclass  = HOST-PCI pcib1@pci0:0:1:0:    class=0x060400 card=0x00000000 chip=0x524610b9 rev=0x00 hdr=0x01    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'ULi AGP 3.0 Controller'    class    = bridge    subclass  = PCI-PCI pcib2@pci0:0:2:0:    class=0x060401 card=0x00000000 chip=0x524910b9 rev=0x00 hdr=0x01    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'HyperTransport to PCI Bridge (M5249)'    class    = bridge    subclass  = PCI-PCI isab0@pci0:0:3:0:    class=0x060100 card=0x50011458 chip=0x156310b9 rev=0x70 hdr=0x00    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'ALI M1563 South Bridge with Hypertransport Support'    class    = bridge    subclass  = PCI-ISA none0@pci0:0:3:1:    class=0x068000 card=0x50031458 chip=0x710110b9 rev=0x00 hdr=0x00    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'ALI M7101 Power Management Controller'    class    = bridge none1@pci0:0:4:0:    class=0x040100 card=0xae011458 chip=0x545510b9 rev=0x20 hdr=0x00    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'AC'97 Audio Controller (M1563M Southbridge)'    class    = multimedia    subclass  = audio atapci0@pci0:0:14:0:   class=0x0101fa card=0x50021458 chip=0x522910b9 rev=0xc7 hdr=0x00    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'EIDE Controller (M5229 Southbridge)'    class    = mass storage    subclass  = ATA atapci1@pci0:0:14:1:   class=0x01018f card=0xb0031458 chip=0x528910b9 rev=0x10 hdr=0x00    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'M5289 SATA/Raid controller (ULI M1567/M1689 )'    class    = mass storage    subclass  = ATA ohci0@pci0:0:15:0:    class=0x0c0310 card=0x50041458 chip=0x523710b9 rev=0x03 hdr=0x00    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'OpenHCI 1.1 USB to  2.0 (M5273 A1 for windows 98)'    class    = serial bus    subclass  = USB ohci1@pci0:0:15:1:    class=0x0c0310 card=0x50041458 chip=0x523710b9 rev=0x03 hdr=0x00    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'OpenHCI 1.1 USB to  2.0 (M5273 A1 for windows 98)'    class    = serial bus    subclass  = USB ohci2@pci0:0:15:2:    class=0x0c0310 card=0x50041458 chip=0x523710b9 rev=0x03 hdr=0x00    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'OpenHCI 1.1 USB to  2.0 (M5273 A1 for windows 98)'    class    = serial bus    subclass  = USB ehci0@pci0:0:15:3:    class=0x0c0320 card=0x50041458 chip=0x523910b9 rev=0x01 hdr=0x00    vendor   = 'Acer Labs Incorporated (ALi/ULi)'    device   = 'USB EHCI2.0 Controller (527210B9)'    class    = serial bus    subclass  = USB hostb1@pci0:0:24:0:   class=0x060000 card=0x00000000 chip=0x11001022 rev=0x00 hdr=0x00    vendor   = 'Advanced Micro Devices (AMD)'    device   = 'Athlon64/Opteron/Sempron (K8 Family) HyperTransport Technology Configuration'    class    = bridge    subclass  = HOST-PCI hostb2@pci0:0:24:1:   class=0x060000 card=0x00000000 chip=0x11011022 rev=0x00 hdr=0x00    vendor   = 'Advanced Micro Devices (AMD)'    device   = 'Athlon64/Opteron/Sempron (K8 Family) Address Map'    class    = bridge    subclass  = HOST-PCI hostb3@pci0:0:24:2:   class=0x060000 card=0x00000000 chip=0x11021022 rev=0x00 hdr=0x00    vendor   = 'Advanced Micro Devices (AMD)'    device   = 'Athlon64/Opteron/Sempron (K8 Family) DRAM Controller'    class    = bridge    subclass  = HOST-PCI hostb4@pci0:0:24:3:   class=0x060000 card=0x00000000 chip=0x11031022 rev=0x00 hdr=0x00    vendor   = 'Advanced Micro Devices (AMD)'    device   = 'Athlon64/Opteron/Sempron (K8 Family) Miscellaneous Control'    class    = bridge    subclass  = HOST-PCI vgapci0@pci0:1:0:0:   class=0x030000 card=0x00000000 chip=0x011010de rev=0xa1 hdr=0x00    vendor   = 'Nvidia Corp'    device   = 'GeForce2 MX / MX 400 (NV11)'    class    = display    subclass  = VGA em0@pci0:2:6:0: class=0x020000 card=0x13768086 chip=0x107c8086 rev=0x05 hdr=0x00    vendor   = 'Intel Corporation'    device   = 'Gigabit Ethernet Controller (Copper) rev 5 (82541PI)'    class    = network    subclass  = ethernet hptrr0@pci0:2:8:0:    class=0x010000 card=0x11ab11ab chip=0x608111ab rev=0x09 hdr=0x00    vendor   = 'Marvell Semiconductor (Was: Galileo Technology Ltd)'    device   = 'MV88SX6081 8-port SATA II PCI-X Controller'    class    = mass storage    subclass  = SCSI rl0@pci0:2:10:0:     class=0x020000 card=0xe0001458 chip=0x813910ec rev=0x10 hdr=0x00    vendor   = 'Realtek Semiconductor'    device   = 'Realtek RTL8139 Family PCI Fast Ethernet NIC (RTL-8139/8139C/8139C)'    class    = network    subclass  = ethernet  Thanks, Ryan  I'm assuming that the ULi doesn't have AHCI support as there's no option in the BIOS for AHCI, only IDE and RAID.  Will the MVS driver allow for any type of hot swap? It appears that when I pull the drive out of any slot on the Supermicro card the kernel will panic and system crash. Same thing with the on-board controller.  Thanks, Ryan  ryan@ryanholt.net wrote: > Will the MVS driver allow for any type of hot swap? It appears that when > I pull the drive out of any slot on the Supermicro card the kernel will > panic and system crash. Same thing with the on-board controller. mvs(4) provides almost the same set of features that ahci(4), just for different hardware. Hot swap should work fine. -- Alexander Motin OK Great. Should I re-compile my kernel with mvs as a device option?  Thanks, Ryan  ryan@ryanholt.net wrote: > OK Great. Should I re-compile my kernel with mvs as a device option? As you wish. Module should also be fine. -- Alexander Motin OK I got mvs compiled and the drives are using it now. Tested hot swap; removed and replaced drives while writing data to the ZFS pool sitting atop. One issue I noticed is that the glabels don't seem to be read once I insert the disk back into the server. Seems like I need to re-label the drive and then replace it back into the zpool using zpool replace. Would this be an issue with ZFS and not the mvs driver?  Additionally, this might be a cabling issue or an issue with my drive cage, but when I place a disk in slot 0 (port 0 on AOC-SAT2-MV8) I get mvsch0 timeout errors and the whole box locks up requiring a hard reboot. Placing the drive in slot 4 and utilizing slots 2-5 instead of 1-4 allows the server to boot up fine / run fine.  Also, the drive pool seems a bit slow. Using the command...  dd if=/dev/urandom (and /dev/zero) of=/tank/test.file bs=1024 count=102400  Seems to indicate that I get somwhere between 15MB/sec (urandom) and 30 mb/sec (zero). This card is on a PCI bus and therefore will be somewhat restricted, but should it be reasonable to expect better performance than this out of a 4 disk Hitachi 1TB 7200 RPM 32mb cache raidz1 pool? Are there any other recommended tests to benchmark performance?  Thanks again for all your help! Ryan  On May 26, 2010 at 7:20 PM Alexander Motin <mav@FreeBSD.org> wrote: > ryan@ryanholt.net wrote: > > OK Great. Should I re-compile my kernel with mvs as a device option? > > As you wish. Module should also be fine. > > -- > Alexander Motin ryan@ryanholt.net wrote: > OK I got mvs compiled and the drives are using it now. Tested hot swap; > removed and replaced drives while writing data to the ZFS pool sitting > atop. One issue I noticed is that the glabels don't seem to be read once > I insert the disk back into the server. Seems like I need to re-label > the drive and then replace it back into the zpool using zpool replace. > Would this be an issue with ZFS and not the mvs driver? I don't think it is driver related. > Additionally, this might be a cabling issue or an issue with my drive > cage, but when I place a disk in slot 0 (port 0 on AOC-SAT2-MV8) I get > mvsch0 timeout errors and the whole box locks up requiring a hard > reboot. Placing the drive in slot 4 and utilizing slots 2-5 instead of > 1-4 allows the server to boot up fine / run fine. I need more info to say something. Boot with verbose messages and send be complete log from boot messages up to the error. > Also, the drive pool seems a bit slow. Using the command... > > dd if=/dev/urandom (and /dev/zero) of=/tank/test.file bs=1024 count=102400 > > Seems to indicate that I get somwhere between 15MB/sec (urandom) and 30 > mb/sec (zero). This card is on a PCI bus and therefore will be somewhat > restricted, but should it be reasonable to expect better performance > than this out of a 4 disk Hitachi 1TB 7200 RPM 32mb cache raidz1 pool? > Are there any other recommended tests to benchmark performance? If your card placed into regular PCI slot - absolute maximum you can get from it is 133MB/s, but usually practical limit is lower. When you are writing to redundant array, like raidz, same data written to several devices same time. It also divides effective bandwidth by several times, proportionally to redundancy. So even if 30MB/s a bit small, it is possible in such configuration. Also it is a bit strange to test linear bandwidth, using 1K blocks. System I/O overhead may also affect result. Try it with at least 64K block to be sure. /dev/urandom may also affect performance. On my machine I can read only about 60MB/s from it, so it is not a good test. Also, depending on your typical workload you may be interested in random I/O performance. 4 disks with NCQ supported by mvs(4) should handle random parallel load quite fine. -- Alexander Motin State Changed From-To: open->closed Original problem solved, secondary - no response. |