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