On 6/9/26 14:18, Sumit Saxena wrote:
iorequest_cnt and iodone_cnt are updated on every command dispatch and
completion, often from different CPUs on high queue depth workloads.
Using adjacent atomic_t fields causes cache line contention between the
submission and completion paths.

Extend the same treatment to ioerr_cnt and iotmo_cnt so all four iostat
counters in struct scsi_device use struct percpu_counter.

Suggested-by: John Garry <[email protected]>
Signed-off-by: Sumit Saxena <[email protected]>
---
  drivers/scsi/scsi_error.c  |  4 ++--
  drivers/scsi/scsi_lib.c    | 10 +++++-----
  drivers/scsi/scsi_scan.c   |  8 ++++++++
  drivers/scsi/scsi_sysfs.c  | 23 ++++++++++++++---------
  drivers/scsi/sd.c          |  2 +-
  include/scsi/scsi_device.h |  9 +++++----
  6 files changed, 35 insertions(+), 21 deletions(-)

Good idea.

Reviewed-by: Hannes Reinecke <[email protected]>

Cheers,

Hannes
--
Dr. Hannes Reinecke                  Kernel Storage Architect
[email protected]                                +49 911 74053 688
SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg
HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich

Reply via email to