mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 09:50:04 +00:00
scsi: aacraid: Fix PD performance regression over incorrect qd being set
The driver fails to set the correct queue depth for native devices, due to
failing to set the device type prior to calling aac_set_safw_target_qd().
This results in slave configure setting the queue depth to 1.
This causes around 30% performance degradation. Fixed by setting the dev
type before trying to set queue depth.
Reported-by: Steve Best <sbest@redhat.com>
Fixes: 0bcb45fb20
("scsi: aacraid: Add helper function to set queue depth")
cc: stable@vger.kernel.org
Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Reviewed-by: David Carroll <David.Carroll@microsemi.com>
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
63ce3c384d
commit
59b433c825
1 changed files with 7 additions and 8 deletions
|
@ -1974,7 +1974,6 @@ static void aac_set_safw_attr_all_targets(struct aac_dev *dev)
|
|||
u32 lun_count, nexus;
|
||||
u32 i, bus, target;
|
||||
u8 expose_flag, attribs;
|
||||
u8 devtype;
|
||||
|
||||
lun_count = aac_get_safw_phys_lun_count(dev);
|
||||
|
||||
|
@ -1992,23 +1991,23 @@ static void aac_set_safw_attr_all_targets(struct aac_dev *dev)
|
|||
continue;
|
||||
|
||||
if (expose_flag != 0) {
|
||||
devtype = AAC_DEVTYPE_RAID_MEMBER;
|
||||
goto update_devtype;
|
||||
dev->hba_map[bus][target].devtype =
|
||||
AAC_DEVTYPE_RAID_MEMBER;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (nexus != 0 && (attribs & 8)) {
|
||||
devtype = AAC_DEVTYPE_NATIVE_RAW;
|
||||
dev->hba_map[bus][target].devtype =
|
||||
AAC_DEVTYPE_NATIVE_RAW;
|
||||
dev->hba_map[bus][target].rmw_nexus =
|
||||
nexus;
|
||||
} else
|
||||
devtype = AAC_DEVTYPE_ARC_RAW;
|
||||
dev->hba_map[bus][target].devtype =
|
||||
AAC_DEVTYPE_ARC_RAW;
|
||||
|
||||
dev->hba_map[bus][target].scan_counter = dev->scan_counter;
|
||||
|
||||
aac_set_safw_target_qd(dev, bus, target);
|
||||
|
||||
update_devtype:
|
||||
dev->hba_map[bus][target].devtype = devtype;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue