Mpt raid event notification

Ismael i.simon at xifra.es
Tue Aug 28 07:53:36 PDT 2007


Hi,

We have a Sun X4100 with Freebsd 6-Stable i386 with a LSI 1064 disk
controller,that uses the mpt driver.

The machine uses two HD SAS 73GB in RAID 1.

The RAID 1 works fine, but the event notification is incomplete and there is
no way to know the status of the RAID, if the status is optimal, degraded or
is Re-Syncing.

We have added in the MPT_CAM.C at the funtion 

mpt_cam_event(struct mpt_softc *mpt, request_t *req,MSG_EVENT_NOTIFY_REPLY
*msg)

 

this code :

 

case MPI_EVENT_INTEGRATED_RAID:

 

                                   {

                                               switch ((msg->Data[0] >> 16)
& 0xff)  {

                                               case
MPI_EVENT_RAID_RC_VOLUME_CREATED :

                                                           mpt_prt(mpt,
"Integrated Raid: Volume Created\n");

                                                           break;

                                               case
MPI_EVENT_RAID_RC_VOLUME_DELETED :

                                                           mpt_prt(mpt,
"Integrated Raid: Volume Deleted\n");

                                                           break;

                                               case
MPI_EVENT_RAID_RC_VOLUME_SETTINGS_CHANGED :

                                                           mpt_prt(mpt,
"Integrated Raid: Volume Settings Changed\n");

                                                           break;

                                               case
MPI_EVENT_RAID_RC_VOLUME_STATUS_CHANGED :

                                                           mpt_prt(mpt,
"Integrated Raid: Volume Status Changed\n");

                                                           break;

                                               case
MPI_EVENT_RAID_RC_VOLUME_PHYSDISK_CHANGED :

                                                           mpt_prt(mpt,
"Integrated Raid: Volume Physdisk Changed\n");

                                                           break;

                                               case
MPI_EVENT_RAID_RC_PHYSDISK_CREATED :

                                                           mpt_prt(mpt,
"Integrated Raid: Physdisk Created\n");

                                                           break;

                                               case
MPI_EVENT_RAID_RC_PHYSDISK_DELETED :

                                                           mpt_prt(mpt,
"Integrated Raid: Physdisk Deleted\n");

                                                           break;

                                               case
MPI_EVENT_RAID_RC_PHYSDISK_SETTINGS_CHANGED :

                                                           mpt_prt(mpt,
"Integrated Raid: Physdisk Settings Changed\n");

                                                           break;

                                               case
MPI_EVENT_RAID_RC_PHYSDISK_STATUS_CHANGED :

                                                           mpt_prt(mpt,
"Integrated Raid: Physdisk Status Changed\n");

                                                           break;

                                               case
MPI_EVENT_RAID_RC_DOMAIN_VAL_NEEDED :

                                                           mpt_prt(mpt,
"Integrated Raid: Domain Validation Needed\n");

                                                           break;

                                               case
MPI_EVENT_RAID_RC_SMART_DATA :

                                                           mpt_prt(mpt,
"Integrated Raid; Smart Data\n");

                                                           break;

                                               case
MPI_EVENT_RAID_RC_REPLACE_ACTION_STARTED :

                                                           mpt_prt(mpt,
"Integrated Raid: Replace Action Started\n");

                                                           break;

                                               default:

                                                           mpt_prt(mpt,
"Integrated Raid\n");

                                               break;

                                               }

                                               break;

            }

 

This code tell us that the volume status of the raid has changed,but no the
actual state of the volume (optimal,degraded),and we have no idea how to add
this funcionality in the driver.

Anybody know how to modify the driver to know the actual state of the RAID
volume.

Thanks,

Ismael

 

 



More information about the freebsd-stable mailing list