mpt(4) enabling write cache on raw disk

Stefan Johansson steve.johansson at
Sun Jul 29 13:00:28 UTC 2012


I have a HP 3080X SAS/SATA 8 port mpt(4) controller card that I want to use in
a ZFS setup.
My problem is that the write cache is not enabled on disks that are not a part of a RAID volume (RAID0 or RAID1).
The write speed is limited to about 20MB/s with both UFS and ZFS.
If I create a RAID0 volume with mptutil(8) and then destroy it, write cache gets enabled and the write speed reaches about 60MB/s with UFS and ZFS. 
Unfortunately it won't survive a reboot.

Has anyone else seen this problem with mpt(4) controllers and/or knows how to fix it?

Regards Stefan


Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 2012
  root at amd64
CPU: Intel(R) Xeon(TM) CPU 3.00GHz (3000.17-MHz K8-class CPU)
Origin = "GenuineIntel"  Id = 0xf4a  Family = f  Model = 4  Stepping = 10
AMD Features=0x20000800<SYSCALL,LM>
AMD Features2=0x1<LAHF>
TSC: P-state invariant
real memory  = 4294967296 (4096 MB)
avail memory = 4103331840 (3913 MB)
Event timer "LAPIC" quality 400
ACPI APIC Table: <HP     00000083>
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 1 core(s) x 2 HTT threads
cpu0 (BSP): APIC ID:  0
cpu1 (AP/HT): APIC ID:  1
ACPI Warning: Invalid length for Pm1aControlBlock: 32, using default 16 (20110527/tbfadt-638)
ioapic1: Changing APIC ID to 9
ioapic0 <Version 2.0> irqs 0-23 on motherboard
ioapic1 <Version 2.0> irqs 24-47 on motherboard
ioapic2 <Version 2.0> irqs 48-71 on motherboard
ioapic3 <Version 2.0> irqs 72-95 on motherboard
kbd1 at kbdmux0
acpi0: <HP D19> on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x908-0x90b on acpi0
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
pcib0: <ACPI Host-PCI bridge> on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> at device 2.0 on pci0
pci5: <ACPI PCI bus> on pcib1
pcib2: <ACPI PCI-PCI bridge> at device 0.0 on pci5
pci6: <ACPI PCI bus> on pcib2
ciss0: <HP Smart Array 642> port 0x5000-0x50ff mem 0xfddf0000-0xfddf1fff,0xfdd80000-0xfddbffff irq 48 at device 1.0 on pci6
ciss0: PERFORMANT Transport
ciss0: got 0 MSI messages]
pcib3: <ACPI PCI-PCI bridge> at device 0.2 on pci5
pci9: <ACPI PCI bus> on pcib3
mpt0: <LSILogic SAS/SATA Adapter> port 0x6000-0x60ff mem 0xfdef0000-0xfdef3fff,0xfdee0000-0xfdeeffff irq 72 at device 2.0 on pci9
mpt0: MPI Version=
mpt0: Capabilities: ( RAID-0 RAID-1E RAID-1 )
mpt0: 0 Active Volumes (2 Max)
mpt0: 0 Hidden Drive Members (10 Max)
pcib4: <ACPI PCI-PCI bridge> at device 4.0 on pci0
pci13: <ACPI PCI bus> on pcib4
siis0: <SiI3132 SATA controller> port 0x7000-0x707f mem 0xfdff0000-0xfdff007f,0xfdfe0000-0xfdfe3fff irq 16 at device 0.0 on pci13
siisch0: <SIIS channel> at channel 0 on siis0
siisch1: <SIIS channel> at channel 1 on siis0
pcib5: <ACPI PCI-PCI bridge> at device 6.0 on pci0
pci16: <ACPI PCI bus> on pcib5
pcib6: <ACPI PCI-PCI bridge> at device 28.0 on pci0
pci2: <ACPI PCI bus> on pcib6
re0: <D-Link DGE-528(T) Gigabit Ethernet Adapter> port 0x4000-0x40ff mem 0xfdcf0000-0xfdcf00ff irq 26 at device 2.0 on pci2
re0: Chip rev. 0x10000000
re0: MAC rev. 0x00000000
miibus0: <MII bus> on re0
rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 1 on miibus0
rgephy0:  none, 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 100baseTX-FDX, 100baseTX-FDX-flow, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 1000baseT-FDX-flow-master, auto, auto-flow
re0: Ethernet address: 00:21:91:11:dd:fd
mpt1: <LSILogic 1030 Ultra4 Adapter> port 0x4400-0x44ff mem 0xfdcc0000-0xfdcdffff,0xfdca0000-0xfdcbffff irq 24 at device 3.0 on pci2
mpt1: MPI Version=
mpt2: <LSILogic 1030 Ultra4 Adapter> port 0x4800-0x48ff mem 0xfdc80000-0xfdc9ffff,0xfdc60000-0xfdc7ffff irq 25 at device 3.1 on pci2
mpt2: MPI Version=
uhci0: <UHCI (generic) USB controller> port 0x2000-0x201f irq 16 at device 29.0 on pci0
usbus0: <UHCI (generic) USB controller> on uhci0
uhci1: <UHCI (generic) USB controller> port 0x2020-0x203f irq 19 at device 29.1 on pci0
usbus1: <UHCI (generic) USB controller> on uhci1
pci0: <base peripheral> at device 29.4 (no driver attached)
ehci0: <Intel 6300ESB USB 2.0 controller> mem 0xfbee0000-0xfbee03ff irq 23 at device 29.7 on pci0
usbus2: EHCI version 1.0
usbus2: <Intel 6300ESB USB 2.0 controller> on ehci0
pcib7: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pcib7: failed to allocate initial I/O port window: 0x1000-0x3fff
pci1: <ACPI PCI bus> on pcib7
bge0: <HP NC7761 Gigabit Server Adapter, ASIC rev. 0x003003> mem 0xfdbf0000-0xfdbfffff irq 17 at device 2.0 on pci1
bge0: CHIP ID 0x00003003; ASIC REV 0x03; CHIP REV 0x30; PCI
miibus1: <MII bus> on bge0
brgphy0: <BCM5705 1000BASE-T media interface> PHY 1 on miibus1
brgphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto, auto-flow
bge0: Ethernet address: 00:19:bb:23:a5:04
vgapci0: <VGA-compatible display> port 0x3000-0x30ff mem 0xfc000000-0xfcffffff,0xfbff0000-0xfbff0fff at device 3.0 on pci1
pci1: <base peripheral> at device 4.0 (no driver attached)
pci1: <base peripheral> at device 4.2 (no driver attached)
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel 6300ESB UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x500-0x50f irq 18 at device 31.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
atapci1: <Intel 6300ESB SATA150 controller> port 0x2040-0x2047,0x2048-0x204b,0x2050-0x2057,0x2058-0x205b,0x2060-0x206f irq 18 at device 31.2 on pci0
ata2: <ATA channel 0> on atapci1
ata3: <ATA channel 1> on atapci1
acpi_tz0: <Thermal Zone> on acpi0
attimer0: <AT timer> port 0x40-0x43 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
ppc0: <Parallel port> port 0x378-0x37f,0x778-0x77d irq 7 drq 0 on acpi0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
fdc0: <floppy drive controller (FDE)> port 0x3f2-0x3f5 irq 6 drq 2 on acpi0
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
atrtc0: <AT realtime clock> at port 0x70 irq 8 on isa0
Event timer "RTC" frequency 32768 Hz quality 0
uart1: <Non-standard ns8250 class UART with FIFOs> at port 0x2f8-0x2ff irq 3 on isa0
p4tcc0: <CPU Frequency Thermal Control> on cpu0
p4tcc1: <CPU Frequency Thermal Control> on cpu1
Timecounters tick every 1.000 msec
(noperiph:siisch1:0:-1:-1): rescan already queued
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 12Mbps Full Speed USB v1.0
usbus2: 480Mbps High Speed USB v2.0
ugen0.1: <Intel> at usbus0
uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <Intel> at usbus1
uhub1: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
ugen2.1: <Intel> at usbus2
uhub2: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
uhub2: 4 ports with 4 removable, self powered
ugen1.2: <Logitech> at usbus1
ukbd0: <Logitech HID compliant keyboard, class 0/0, rev 1.10/1.80, addr 2> on usbus1
kbd2 at ukbd0
uhid0: <Logitech HID compliant keyboard, class 0/0, rev 1.10/1.80, addr 2> on usbus1
ada0 at siisch1 bus 0 scbus6 target 0 lun 0
ada0: <Patriot PS-100 32GB SSD VER2.006> ATA-7 SATA 2.x device
ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 512bytes)
ada0: 29439MB (60292512 512 byte sectors: 16H 63S/T 16383C)
ada0: Previously was known as ad6
da0 at ciss0 bus 0 scbus0 target 0 lun 0
da0: <COMPAQ RAID 1(1VOLUME OK> Fixed Direct Access SCSI-0 device 
da0: 135.168MB/s transfers
da0: Command Queueing enabled
da0: 69459MB (142253280 512 byte sectors: 255H 32S/T 17433C)
da1 at mpt0 bus 0 scbus3 target 1 lun 0
da1: <ATA Hitachi HUA72302 AA10> Fixed Direct Access SCSI-5 device 
da1: 300.000MB/s transfers
da1: Command Queueing enabled
da1: 1907729MB (3907029168 512 byte sectors: 255H 63S/T 243201C)
da2 at mpt0 bus 0 scbus3 target 2 lun 0
da2: <ATA Hitachi HUA72302 AA10> Fixed Direct Access SCSI-5 device 
da2: 300.000MB/s transfers
da2: Command Queueing enabled
da2: 1907729MB (3907029168 512 byte sectors: 255H 63S/T 243201C)
SMP: AP CPU #1 Launched!
Timecounter "TSC-low" frequency 11719418 Hz quality 1000
cd0 at ata1 bus 0 scbus10 target 0 lun 0
cd0: <TSSTcorp CD-ROM  TS-H192C B504> Removable CD-ROM SCSI-0 device 
cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 65534bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
Trying to mount root from ufs:/dev/da0p2 [rw]...
ZFS NOTICE: Prefetch is disabled by default if less than 4GB of RAM is present;
          to enable, add "vfs.zfs.prefetch_disable=0" to /boot/loader.conf.
ZFS filesystem version 5
ZFS storage pool version 28

More information about the freebsd-questions mailing list