LSI 1030 RAID Status on Linux

For a month or so I’ve been trying to get mpt-status 1.0 compiled on my new IBM x335 running Debian/Linux 2.6.10.

After finally finishing some other work tonight I start down and looked at it hard. Finally figuring out that it was missing the define macro for __user. So I added #include <linux/compiler.h>, and voilà!

$ sudo ./mpt-status
ioc0 vol 0 type IM, 2 phy, 136 GB, flags ENABLED, state OPTIMAL
ioc0 phy 0 IBM-ESXS ST3146807LC FN B25H, 136 GB, state ONLINE
ioc0 phy 1 IBM-ESXS ST3146807LC FN B25H, 136 GB, state ONLINE

Update: Well supported version of mpt-status now avaliable from ratz.


  1. Matti Hiljanen Said,

    February 27, 2005 @ 8:36 am

    Could you email me the mpt-status binary (or post it somewhere)? Apparently RHEL has a stripped version the linux/compiler.h header and including it from vanilla source tree didn't work either.

  2. Nicholas Lee Said,

    February 27, 2005 @ 12:58 pm

    Try adding following in mpt-status.c instead of linux/compile.h. Probably best if it follows the other system includes.

    #ifdef \_\_CHECKER\_\_
    # define \_\_user \_\_attribute\_\_((noderef, address_space(1)))
    # define \_\_kernel /* default address space */
    # define \_\_user
    # define \_\_kernel

    This seems to compile and work fine on my machine.

  3. Ray Jackson Said,

    May 17, 2005 @ 12:33 pm

    I just got mpt-status to compile on Debian Sarge running the kernel. I had to do the following:

    1. Update CFLAGS in the Makefile to point at:


    2. In mpt-status.c I had to add change the pci.h include line from…




    3. In mpt-status.c I had to add 2 more includes as follows…


    4. Now it should compile correctly. Create /dev/mptctl…

    mknod /dev/mptctl c 10 220

    ..and mptstatus should work as expected…

  4. Ray Jackson Said,

    May 17, 2005 @ 4:10 pm

    Hmmm… I guess my comment above didn’t get parsed nicely with the brackets around the includes…

    2. Should read change changing the include from pci/pci.h to linux/pci.h

    3. Should say add 2 new includes… linux/compiler.h and linux/i2o-dev.h

  5. Roberto Nibali, ratz Said,

    June 23, 2005 @ 11:11 pm

    I’m working on improving mpt-status in various fields. You can get my current work from

    I’d like to get some feedback, especially regarding people having problems compiling and linking the biest on 2.6.x based kernels. My Todo list:

    Ratz’ ideas
    o maybe switch to argp parsing (libc) for GNU style parameter passing
    o find out the remaining pieces of magic around the kernel structs
    and document them accordingly
    o get in contact with LSI for feedback and support
    o support for spare disk status output
    o rewrite Makefile to proper support packaging and specifying CFLAGS
    o restructure and cleanup code (it’s a mess and not readable)

    User contributed
    o [Klaus Ade Johnstad] add raid status line

  6. ortegaga’s weblog » Monitorizar estado RAID en GNU/Linux Said,

    July 8, 2005 @ 9:07 pm

    […] emos que modificar algo el código fuente y el Makefile. La información la he obtenido de esta página. Traduciendo al espaà […]

  7. wolf noble Said,

    August 21, 2005 @ 3:01 am

    heya guys. I’ve got an x335, lspci output of controller:
    0000:01:01.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 07)

    when I try to run the newly compiled binary, I get:

    Version mismatch on pagetype 8, page number 0: expected 1, got 0

    *sigh* any additional info you want?

  8. Nicholas Lee Said,

    August 21, 2005 @ 10:28 am

    Did you google the error message? From the looks of that error message has been removed by ratz. Have you tried his latest version?

    Ratz seems to be the new maintainer, personally I’ve haven’t tried the new code. 1.1.2 isn’t broken for me, and I haven’t had time to check the new version. 🙂 If the new version doesn’t work for you, Ratz would probably like a detailed bug report. I suggest including kernel and compile version details, etc.

  9. Alain Haegi Said,

    September 6, 2005 @ 8:05 pm
    It compiles without errors on our Debian Sarge with Kernel 2.6.8 (Debian Version 2.6.8-15) on a Xeon based SMP system from Dalco.
    SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 08)

    mpt-status -i 0
    ioc0 vol_id 0 type IM, 2 phy, 68 GB, state OPTIMAL, flags ENABLED
    ioc0 phy 0 scsi_id 0 FUJITSU MAT3073NC 0105, 68 GB, state ONLINE, flags NONE
    ioc0 phy 1 scsi_id 2 FUJITSU MAT3073NC 0105, 68 GB, state ONLINE, flags NONE

    Nice work.

  10. Roberto Nibali, ratz Said,

    November 12, 2005 @ 1:46 pm

    Version 1.1.4 has been released.

    This should work around those irritating page mismatch messages and give you a proper output, also parameter passing has been implemented. I’m constantly looking for some hardware access via ssh (need root, unfortunately); so if you’re setting up a box the next time, drop me a note and let me play with it for a couple of hours. Be sure to always get back to the homepage to check if a new version has been released.

  11. Roberto Nibali Said,

    November 6, 2006 @ 11:06 pm

    Version 1.2.0 has been released:

    This release brings proper 64-bit OS support and improved tested hardware support. The ‘–newstyle’ parameter will even try to get the current sync percentage state and if possible S.M.A.R.T information on your physical disks. In future, I will not post any further updates regarding mpt-status on this page; interested parties can subscribe to or check regularly. Thanks for all the feedback and support.

  12. Halim Said,

    April 11, 2007 @ 3:48 am


    I have similar hardware – IBM x335 type 8676 with LSI Logic 1030 RAID controller. However, I only get 3MB throughput on the box, probably due to the drive write cache not being enabled. Have you seen similar issues?

  13. stateless Said,

    April 11, 2007 @ 7:02 am

    No, can’t say I’ve seen that.

    # hdparm -tT /dev/sda

    Timing cached reads: 2864 MB in 2.00 seconds = 1432.00 MB/sec
    Timing buffered disk reads: 80 MB in 3.01 seconds = 26.58 MB/sec

    Taking this system out of production shortly.

  14. mangoo Said,

    June 24, 2010 @ 3:43 am

    Do you know how to enable write cache on MPT devices?

    I see this in dmesg:

    sd 4:1:0:0: [sda] Write cache: disabled, read cache: enabled, doesn’t support DPO or FUA

    And write performance is really bad.

    hdparm and sdparm can’t set write cache or any other parameters for my /dev/sda – being this device with two hard disks behind:

    02:05.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1068 PCI-X Fusion-MPT SAS (rev 01)

  15. Nicholas_Lee Said,

    June 24, 2010 @ 12:08 am

    It's likely because do not have a battery that the write cache is disabled by default. Go read this post:

RSS feed for comments on this post