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:

==========================================

typedef struct _MPI_MSG_RAID_ACTION_REQUEST {
        U8                      Action;
        U8                      Reserved1;
        U8                      ChainOffset;
        U8                      Function;
        U8                      VolId;
        U8                      VolBus;
        U8                      PhysDiskNum;
        U8                      MessageFlags;
        U32                     MsgContext;
        U32                     Reserved2;
        U32                     DataWord;
        U32                     DataSge;
} MPI_MSG_RAID_ACTION_REQUEST;


#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_CH_PHYSDISK_SETTINGS        (0x0c)
#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_DEACTIVATE_VOLUME           (0x12)
#define MPI_MSG_RAID_ACTION_SET_RESYNC_RATE             (0x13)
#define MPI_MSG_RAID_ACTION_SET_SCRUB_RATE              (0x14)
#define MPI_MSG_RAID_ACTION_DEVICE_FW_UPDATE_MODE       (0x15)
#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;
} MPI_MSG_RAID_ACTION_REPLY;

#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