diff --git a/scst/README b/scst/README index c81e36672..f76fa3370 100644 --- a/scst/README +++ b/scst/README @@ -448,6 +448,42 @@ following entries: CPUs serving soft IRQs and in some cases to improve performance by more evenly spreading load over available CPUs. + - measure_latency - whether or not to enable latency measurements. + Enabling latency measurements has a small impact on performance but + makes detailed information available about how much time is needed + to process SCSI commands. Here is an example of the data produced + by this infrastructure: + + $ echo 1 >/sys/kernel/scst_tgt/measure_latency + $ sleep 10 # Wait until an initiator has submitted multiple I/O requests + $ cat /sys/kernel/scst_tgt/targets/ib_srpt/fe80\:0000\:0000\:0000\:0002\:c903\:00fa\:b7f2/sessions/fe80\:0000\:0000\:0000\:0002\:c903\:00a3\:4272/latency/r512 + state count min max avg stddev + PARSE 219 1.3 26.6 2.2 2.5 us + PREPARE_SPACE 219 0.9 10.3 1.1 0.6 us + RDY_TO_XFER 219 0.7 1.7 0.7 0.2 us + TGT_PRE_EXEC 219 0.7 11.0 0.8 0.9 us + EXEC_CHECK_SN 219 0.7 1.7 0.8 0.2 us + PRE_DEV_DONE 219 11.3 3445.7 39.6 276.4 us + DEV_DONE 219 0.7 11.0 0.9 0.7 us + PRE_XMIT_RESP1 219 1.2 58.4 1.6 3.8 us + CSW2 219 0.7 1.6 0.8 0.1 us + PRE_XMIT_RESP2 219 0.7 1.5 0.7 0.1 us + XMIT_RESP 219 0.7 1.5 0.7 0.1 us + INIT_WAIT 219 1.0 57.3 2.1 4.4 us + INIT 219 0.9 27.4 1.6 2.4 us + CSW1 219 15.0 3856.1 74.2 264.8 us + EXEC_CHECK_BLOCKING 219 1.3 10.8 1.7 0.9 us + LOCAL_EXEC 219 0.7 1.8 0.7 0.1 us + REAL_EXEC 219 0.6 1.5 0.7 0.1 us + EXEC_WAIT 219 40.6 1021.7 54.4 68.7 us + XMIT_WAIT 219 6.4 1682.0 50.6 228.1 us + total 219 - - 236.9 2012.1 us + + PRE_DEV_DONE refers to internal checks done after execution of a command + finished. CSW1 is the context switch that happens after the transport + driver received a command and before processing of a command starts. + EXEC_WAIT is the time spent in the device handler .exec() method. + - sgv - this is a root subdirectory for all SCST SGV caches - targets - this is a root subdirectory for all SCST targets