tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: FIXED: mpt Serious performance issues
Hi all!
>At the very last this change should apply only when the controller is in
>RAID mode.
But what´s the sense in simply scrubbing all mode pages on driver
initialisation?
>In this case, the driver should also probably ignore the
>modes set from the upper layer.
Does this have an impact to the scsipi layer, e.g. would the SCBs then
be different?
>So the controller does not present us any such page for the logical target
>device it provides?
Not to my knowledge...
>If the firmware vendor did *not* get it wrong, then there is a separate
>page which holds these settings for the "logical" disk, and when we are
>operating in RAID mode we need to use that one instead of ever accessing
>the 16 pages for the physical disks. Do you have enough documentation
>to say if it actually works this way?
Mhhh... you could also have one RAID set containing 2 disks, and 2
other disks not being part of any RAID set. So the driver needs to
decide weather a target is part of an array or not. Unfortunately I do
not have any kind of documentation. There are other drivers (e.g.
Linux and FreeBSD) which serve as a reference. I´m currently making
the driver capable of reading RAID-settings with "mpt_mpilib.h" being
the only documentation I have ;) As a start, removing the said code
isn´t the best solution but stops the driver making things worse...
I tested this on 2 different servers (FSC and IBM) sucessfully. While
SCSI controllers are fine with that, SAS controllers still do not work
optimal (120MB reading, only 1 disk is being accessed; 25MB write
speed). There are 2 issues I see:
1)Write caching is not enabled by default in contrast to SCSI controllers.
2)Mode changing is ignored; tagged queueing won´t be enabled:
if (!mpt->is_scsi) {
/*
* SCSI transport settings don't make any sense for
* Fibre Channel; silently ignore the request.
*/
return;
}
=> 1)
I have no idea how to enable write caching. Just changing the RAID
page and sending it back to the controller doesn´t work:
mpt0: DEBUG: Write Cache: 0
mpt0: DEBUG: Applying write caching hack...
mpt0: DEBUG: Sending setting to adapter...
mpt0: page type 0x8 not changeable
mpt0: DEBUG: ERROR sending setting to adapter...
The Linux driver enables write caching by default.
=> 2)
I made some modifications to mpt_set_xfer_mode() so that
-for FC, settings are completely ignored.
-for SAS, TQ and disconnecting are configured but no parallel port settings.
-for SCSI the behaving is still the same
sd0 at scsibus0 target 0 lun 0: <LSILOGIC, Logical Volume, 3000> disk fixed
sd0: 68664 MB, 68664 cyl, 16 head, 128 sec, 512 bytes/sect x 140623872 sectors
mpt0: DEBUG: mpt_set_xfer_mode() called
mpt0: DEBUG: mpt_set_xfer_mode(): Requested Target: 0
mpt0: Tagged queueing is requested...
mpt0: DEBUG: mpt_set_xfer_mode(): PERIPH_CAP_TQING is set TRUE
sd0: async, 8-bit transfers, tagged queueing
This makes nothing faster but leads to ugly messages on writing:
sd0(mpt0:0:0:0): adapter resource shortage
sd0(mpt0:0:0:0): adapter resource shortage
sd0(mpt0:0:0:0): adapter resource shortage
sd0(mpt0:0:0:0): adapter resource shortage
sd0(mpt0:0:0:0): adapter resource shortage
sd0(mpt0:0:0:0): adapter resource shortage
Regards,
Stephan
Home |
Main Index |
Thread Index |
Old Index