• Nicholas Bellinger's avatar
    [SCSI] target: add initial statistics · 12d23384
    Nicholas Bellinger authored
    This patch adds a target_core_mib.c statistics conversion for
    backend context struct se_subsystem_dev + struct se_device config_group
    based statistics in target_core_device.c using CONFIGFS_EATTR()
    based struct config_item_types from target_core_stat.c code.
    
    The conversion from backend /proc/scsi_target/mib/ context output to configfs
    default groups+attributes include scsi_dev, scsi_lu, and scsi_tgt_dev output
    from within individual:
    
    	/sys/kernel/config/target/core/$HBA/DEV/
    
    The legacy procfs output now appear as individual configfs attributes under:
    
    *) $HBA/$DEV/statistics/scsi_dev:
    
    |-- indx
    |-- inst
    |-- ports
    `-- role
    
    *) $HBA/$DEV/statistics/scsi_lu:
    
    |-- creation_time
    |-- dev
    |-- dev_type
    |-- full_stat
    |-- hs_num_cmds
    |-- indx
    |-- inst
    |-- lu_name
    |-- lun
    |-- num_cmds
    |-- prod
    |-- read_mbytes
    |-- resets
    |-- rev
    |-- state_bit
    |-- status
    |-- vend
    `-- write_mbytes
    
    *) $HBA/$DEV/statistics/scsi_tgt_dev:
    
    |-- indx
    |-- inst
    |-- non_access_lus
    |-- num_lus
    |-- resets
    `-- status
    
    The conversion from backend /proc/scsi_target/mib/ context output to configfs
    default groups+attributes include scsi_port, scsi_tgt_port and scsi_transport
    output from within individual:
    
    	/sys/kernel/config/target/fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/
    
    The legacy procfs output now appear as individual configfs attributes under:
    
    *) fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/scsi_port
    
    |-- busy_count
    |-- dev
    |-- indx
    |-- inst
    `-- role
    
    *) fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/scsi_tgt_port
    
    |-- dev
    |-- hs_in_cmds
    |-- in_cmds
    |-- indx
    |-- inst
    |-- name
    |-- port_index
    |-- read_mbytes
    `-- write_mbytes
    
    *) fabric/$WWN/tpgt_$TPGT/lun/lun_$LUN_ID/statistics/scsi_transport
    
    |-- dev_name
    |-- device
    |-- indx
    `-- inst
    
    The conversion from backend /proc/scsi_target/mib/ context output to configfs
    default groups+attributes include scsi_att_intr_port and scsi_auth_intr output
    from within individual:
    
    	/sys/kernel/config/target/fabric/$WWN/tpgt_$TPGT/acls/$INITIATOR_WWN/lun_$LUN_ID/statistics/
    
    The legacy procfs output now appear as individual configfs attributes under:
    
    *) acls/$INITIATOR_WWN/lun_$LUN_ID/statistics/scsi_att_intr_port
    
    |-- dev
    |-- indx
    |-- inst
    |-- port
    |-- port_auth_indx
    `-- port_ident
    
    *) acls/$INITIATOR_WWN/lun_$LUN_ID/statistics/scsi_auth_intr
    
    |-- att_count
    |-- creation_time
    |-- dev
    |-- dev_or_port
    |-- hs_num_cmds
    |-- indx
    |-- inst
    |-- intr_name
    |-- map_indx
    |-- num_cmds
    |-- port
    |-- read_mbytes
    |-- row_status
    `-- write_mbytes
    
    Also, this includes adding struct target_fabric_configfs_template->
    tfc_wwn_fabric_stats_cit and ->tfc_tpg_nacl_stat_cit respectively for
    use during target_core_fabric_configfs.c:target_fabric_setup_cits()
    Signed-off-by: default avatarNicholas A. Bellinger <nab@linux-iscsi.org>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    12d23384
target_core_stat.h 316 Bytes