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