Skip to content

Commit 59b433c

Browse files
Raghava Aditya Renukuntamartinkpetersen
authored andcommitted
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 <[email protected]> Fixes: 0bcb45f ("scsi: aacraid: Add helper function to set queue depth") cc: [email protected] Signed-off-by: Raghava Aditya Renukunta <[email protected]> Reviewed-by: David Carroll <[email protected]> Reviewed-by: Ewan D. Milne <[email protected]> Signed-off-by: Martin K. Petersen <[email protected]>
1 parent 63ce3c3 commit 59b433c

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

drivers/scsi/aacraid/aachba.c

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1974,7 +1974,6 @@ static void aac_set_safw_attr_all_targets(struct aac_dev *dev)
19741974
u32 lun_count, nexus;
19751975
u32 i, bus, target;
19761976
u8 expose_flag, attribs;
1977-
u8 devtype;
19781977

19791978
lun_count = aac_get_safw_phys_lun_count(dev);
19801979

@@ -1992,23 +1991,23 @@ static void aac_set_safw_attr_all_targets(struct aac_dev *dev)
19921991
continue;
19931992

19941993
if (expose_flag != 0) {
1995-
devtype = AAC_DEVTYPE_RAID_MEMBER;
1996-
goto update_devtype;
1994+
dev->hba_map[bus][target].devtype =
1995+
AAC_DEVTYPE_RAID_MEMBER;
1996+
continue;
19971997
}
19981998

19991999
if (nexus != 0 && (attribs & 8)) {
2000-
devtype = AAC_DEVTYPE_NATIVE_RAW;
2000+
dev->hba_map[bus][target].devtype =
2001+
AAC_DEVTYPE_NATIVE_RAW;
20012002
dev->hba_map[bus][target].rmw_nexus =
20022003
nexus;
20032004
} else
2004-
devtype = AAC_DEVTYPE_ARC_RAW;
2005+
dev->hba_map[bus][target].devtype =
2006+
AAC_DEVTYPE_ARC_RAW;
20052007

20062008
dev->hba_map[bus][target].scan_counter = dev->scan_counter;
20072009

20082010
aac_set_safw_target_qd(dev, bus, target);
2009-
2010-
update_devtype:
2011-
dev->hba_map[bus][target].devtype = devtype;
20122011
}
20132012
}
20142013

0 commit comments

Comments
 (0)