Message ID | 20240803150433.17733-1-thenzl@redhat.com |
---|---|
State | Superseded |
Headers | show |
Series | mpi3mr: a perfomance fix | expand |
> Patch 0c52310f2600 ("hrtimer: Ignore slack time for RT tasks in > schedule_hrtimeout_range()") effectivelly shortens a sleep in a > polling function in the driver. That is causing a perfomance > regression as the new value of just 2us is too low. In certain test > the perf drop is ~30%. Fix this by adjusting the sleep to 20us (close > to the previous value). Broadcom: Please review, thanks!
> Patch 0c52310f2600 ("hrtimer: Ignore slack time for RT tasks in > schedule_hrtimeout_range()") effectivelly shortens a sleep in a > polling function in the driver. That is causing a perfomance > regression as the new value of just 2us is too low. In certain test > the perf drop is ~30%. Fix this by adjusting the sleep to 20us (close > to the previous value). Broadcom: Please review!
On Sat, Aug 3, 2024 at 8:34 PM Tomas Henzl <thenzl@redhat.com> wrote: > > Patch 0c52310f2600 ("hrtimer: Ignore slack time for RT tasks in schedule_hrtimeout_range()") > effectivelly shortens a sleep in a polling function in the driver. > That is causing a perfomance regression as the new value > of just 2us is too low. In certain test the perf drop is ~30%. > Fix this by adjusting the sleep to 20us (close to the previous value). > > Reported-by: Jan Jurca <jjurca@redhat.com> > Signed-off-by: Tomas Henzl <thenzl@redhat.com> Looks good to me. Acked-by: Sumit Saxena <sumit.saxena@broadcom.com>
diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h index dc2cdd5f0311..249c1a7285d6 100644 --- a/drivers/scsi/mpi3mr/mpi3mr.h +++ b/drivers/scsi/mpi3mr/mpi3mr.h @@ -178,7 +178,7 @@ extern atomic64_t event_counter; #define MPI3MR_DEFAULT_SDEV_QD 32 /* Definitions for Threaded IRQ poll*/ -#define MPI3MR_IRQ_POLL_SLEEP 2 +#define MPI3MR_IRQ_POLL_SLEEP 20 #define MPI3MR_IRQ_POLL_TRIGGER_IOCOUNT 8 /* Definitions for the controller security status*/ diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c index c196dc14ad20..5695c95fca15 100644 --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c @@ -710,7 +710,7 @@ static irqreturn_t mpi3mr_isr_poll(int irq, void *privdata) mpi3mr_process_op_reply_q(mrioc, intr_info->op_reply_q); - usleep_range(MPI3MR_IRQ_POLL_SLEEP, 10 * MPI3MR_IRQ_POLL_SLEEP); + usleep_range(MPI3MR_IRQ_POLL_SLEEP, MPI3MR_IRQ_POLL_SLEEP); } while (atomic_read(&intr_info->op_reply_q->pend_ios) && (num_op_reply < mrioc->max_host_ios));
Patch 0c52310f2600 ("hrtimer: Ignore slack time for RT tasks in schedule_hrtimeout_range()") effectivelly shortens a sleep in a polling function in the driver. That is causing a perfomance regression as the new value of just 2us is too low. In certain test the perf drop is ~30%. Fix this by adjusting the sleep to 20us (close to the previous value). Reported-by: Jan Jurca <jjurca@redhat.com> Signed-off-by: Tomas Henzl <thenzl@redhat.com> --- drivers/scsi/mpi3mr/mpi3mr.h | 2 +- drivers/scsi/mpi3mr/mpi3mr_fw.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)