RE: [PATCH V3 21/25] smartpqi: add additional logging for LUN resets
From: <Don.Brace@microchip.com>
Date: 2021-01-26 20:00:34
From: Martin Wilck [mailto:mwilck@suse.com] Subject: Re: [PATCH V3 21/25] smartpqi: add additional logging for LUN resets The patch description is not complete, as the patch also changes some timings. Two remarks below. Cheers, Martin
quoted hunk ↗ jump to hunk
--- drivers/scsi/smartpqi/smartpqi_init.c | 125 +++++++++++++++++++++++---------- 1 file changed, 89 insertions(+), 36 deletions(-)diff --git a/drivers/scsi/smartpqi/smartpqi_init.cb/drivers/scsi/smartpqi/smartpqi_init.c index 6b624413c8e6..1c51a59f1da6 100644--- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c@@ -84,7 +84,7 @@ static void pqi_ofa_setup_host_buffer(structpqi_ctrl_info *ctrl_info); static void pqi_ofa_free_host_buffer(struct pqi_ctrl_info *ctrl_info); static int pqi_ofa_host_memory_update(struct pqi_ctrl_info *ctrl_info); static int pqi_device_wait_for_pending_io(struct pqi_ctrl_info *ctrl_info, - struct pqi_scsi_dev *device, unsigned long timeout_secs); + struct pqi_scsi_dev *device, unsigned long timeout_msecs); /* for flags argument to pqi_submit_raid_request_synchronous() */ #define PQI_SYNC_FLAGS_INTERRUPTABLE 0x1@@ -335,11 +335,34 @@ static void pqi_wait_if_ctrl_blocked(structpqi_ctrl_info *ctrl_info) atomic_dec(&ctrl_info->num_blocked_threads); } +#define PQI_QUIESE_WARNING_TIMEOUT_SECS 10
Did you mean QUIESCE ? Don: Yes, corrected. Thank-you.
quoted hunk ↗ jump to hunk
pqi_start_io(ctrl_info, &ctrl_info-quoted
queue_groups[PQI_DEFAULT_QUEUE_GROUP], RAID_PATH,io_request);@@ -5958,29 +6007,33 @@ static int pqi_lun_reset(struct pqi_ctrl_info*ctrl_info, return rc; } -#define PQI_LUN_RESET_RETRIES 3 -#define PQI_LUN_RESET_RETRY_INTERVAL_MSECS 10000 -#define PQI_LUN_RESET_PENDING_IO_TIMEOUT_SECS 120 +#define PQI_LUN_RESET_RETRIES 3 +#define PQI_LUN_RESET_RETRY_INTERVAL_MSECS (10 * 1000) +#define PQI_LUN_RESET_PENDING_IO_TIMEOUT_MSECS (10 * 60 * 1000)
10 minutes? Isn't that a bit much? Don: 10 minutes seems to hold true for our worst-case-scenarios.
+#define PQI_LUN_RESET_FAILED_PENDING_IO_TIMEOUT_MSECS (2 * 60 * 1000)
Why wait less long after a failure? Don: If the reset TMF fails, the driver is waiting two more minutes for I/O to be flushed out. After this timeout return a failure if the I/O has not been flushed. In many tests, the I/O eventually returns.