tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: FIXED: mpt Serious performance issues

> which behavior ?

The behavior of resetting all target pages to 0.

>> > both x86 I guess, and both with the BIOS enabled.
>> Both x86. Did you mean the mainboard BIOS or the MPT BIOS?
> the MPT BIOS

Yes, it is enabled.

>> > for FC, tagged queuing should also work AFAIK.
>> The driver needs some love regarding FC and SAS. Looking at other
>> drivers, special treatment for these devices is needed.
> probably. But this doesn't mean we can't enable tagged queuing now.
> At last for FC it should just work.

The Linux driver also sais TQ is enabled on the SAS drives. As I said,
the adapter doesn´t like that for now. Maybe some queue size
parameters have to be tuned.

Regarding RAID settings, in order to change these
MPI_FUNCTION_RAID_ACTION has to be called. There also has to be a
Request/Reply structure which isn´t defined in mpt_mpilib.h yet. I
started designing these, inspired by the OpenBSD driver:


        U8                      Action;
        U8                      Reserved1;
        U8                      ChainOffset;
        U8                      Function;
        U8                      VolId;
        U8                      VolBus;
        U8                      PhysDiskNum;
        U8                      MessageFlags;
        U32                     MsgContext;
        U32                     Reserved2;
        U32                     DataWord;
        U32                     DataSge;

#define MPI_MSG_RAID_ACTION_STATUS                      (0x00)
#define MPI_MSG_RAID_ACTION_INDICATOR_STRUCT            (0x01)
#define MPI_MSG_RAID_ACTION_CREATE_VOLUME               (0x02)
#define MPI_MSG_RAID_ACTION_DELETE_VOLUME               (0x03)
#define MPI_MSG_RAID_ACTION_DISABLE_VOLUME              (0x04)
#define MPI_MSG_RAID_ACTION_ENABLE_VOLUME               (0x05)
#define MPI_MSG_RAID_ACTION_QUIESCE_PHYSIO              (0x06)
#define MPI_MSG_RAID_ACTION_ENABLE_PHYSIO               (0x07)
#define MPI_MSG_RAID_ACTION_CH_VOL_SETTINGS             (0x08)
#define MPI_MSG_RAID_ACTION_PHYSDISK_OFFLINE            (0x0a)
#define MPI_MSG_RAID_ACTION_PHYSDISK_ONLINE             (0x0b)
#define MPI_MSG_RAID_ACTION_CREATE_PHYSDISK             (0x0d)
#define MPI_MSG_RAID_ACTION_DELETE_PHYSDISK             (0x0e)
#define MPI_MSG_RAID_ACTION_PHYSDISK_FAIL               (0x0f)
#define MPI_MSG_RAID_ACTION_ACTIVATE_VOLUME             (0x11)
#define MPI_MSG_RAID_ACTION_SET_RESYNC_RATE             (0x13)
#define MPI_MSG_RAID_ACTION_SET_SCRUB_RATE              (0x14)
#define MPI_MSG_RAID_ACTION_SET_VOL_NAME                (0x16)

typedef struct _MPI_MSG_RAID_ACTION_REPLY {
        U8                      Action;
        U8                      Reserved1;
        U8                      MessageLength;
        U8                      Function;
        U8                      VolId;
        U8                      VolBus;
        U8                      PhysDiskNum;
        U8                      MessageFlags;
        U32                     MessageContext;
        U16                     ActionStatus;
        U16                     IocStatus;
        U32                     IocLogInfo;
        U32                     VolumeStatus;
        U32                     ActionData;

#define MPI_RAID_ACTION_STATUS_OK                       (0x00)
#define MPI_RAID_ACTION_STATUS_INVALID                  (0x01)
#define MPI_RAID_ACTION_STATUS_FAILURE                  (0x02)
#define MPI_RAID_ACTION_STATUS_IN_PROGRESS              (0x04)


This is also a prerequisite for bio(4) support.

Home | Main Index | Thread Index | Old Index