Re: [PATCH] tcm_qla2xxx Add SCSI command jammer/discard capability to the tcm_qla2xxx module - enhancements

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




----- Original Message -----
> From: "Laurence Oberman" <loberman@xxxxxxxxxx>
> To: "himanshu madhani" <himanshu.madhani@xxxxxxxxxx>, nab@xxxxxxxxxxxxxxx, "Linux SCSI Mailinglist"
> <linux-scsi@xxxxxxxxxxxxxxx>
> Sent: Tuesday, August 30, 2016 5:24:19 PM
> Subject: [PATCH] tcm_qla2xxx Add SCSI command jammer/discard capability to the tcm_qla2xxx module - enhancements
> 
> Hello Himanshu and Nicholas,
> 
> Enhancements to the tcm_debug code.
> Added the possibility of blocking only specific SCSI data movement commands
> but allowing TUR'S to pass.
> This has been helpful for debugging many driver/array interoperabilty issues.
> 
> Two Patches, The first is to the driver code, second is updating the
> documentation.
> 
> Tested by: Laurence Oberman <loberman@xxxxxxxxxx>
> Signed-off-by: Laurence Oberman <loberman@xxxxxxxxxx>
> 
>  drivers/scsi/qla2xxx/tcm_qla2xxx.c | 7 +++++++
>  drivers/scsi/qla2xxx/tcm_qla2xxx.h | 1 +
>  2 files changed, 8 insertions(+)
> 
> diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c
> b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
> index 6643f6f..d620a77 100644
> --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c
> +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
> @@ -473,6 +473,10 @@ static int tcm_qla2xxx_handle_cmd(scsi_qla_host_t *vha,
> struct qla_tgt_cmd *cmd,
>  		/* return, and dont run target_submit_cmd,discarding command */
>  		return 0;
>  	}
> +	if (unlikely(tpg->tpg_attrib.jam_host && tpg->tpg_attrib.jam_data &&
> (cdb[0]==0x08 || cdb[0]==0x0A || cdb[0]==0x28 || cdb[0]==0x2A))) {
> +                /* return, and dont run target_submit_cmd,discarding command
> if not TUR*/
> +                return 0;
> +        }
>  #endif
>  
>  	cmd->vha->tgt_counters.qla_core_sbt_cmd++;
> @@ -827,6 +831,7 @@ DEF_QLA_TPG_ATTRIB(prod_mode_write_protect);
>  DEF_QLA_TPG_ATTRIB(demo_mode_login_only);
>  #ifdef CONFIG_TCM_QLA2XXX_DEBUG
>  DEF_QLA_TPG_ATTRIB(jam_host);
> +DEF_QLA_TPG_ATTRIB(jam_data);
>  #endif
>  
>  static struct configfs_attribute *tcm_qla2xxx_tpg_attrib_attrs[] = {
> @@ -837,6 +842,7 @@ static struct configfs_attribute
> *tcm_qla2xxx_tpg_attrib_attrs[] = {
>  	&tcm_qla2xxx_tpg_attrib_attr_demo_mode_login_only,
>  #ifdef CONFIG_TCM_QLA2XXX_DEBUG
>  	&tcm_qla2xxx_tpg_attrib_attr_jam_host,
> +	&tcm_qla2xxx_tpg_attrib_attr_jam_data,
>  #endif
>  	NULL,
>  };
> @@ -1011,6 +1017,7 @@ static struct se_portal_group *tcm_qla2xxx_make_tpg(
>  	tpg->tpg_attrib.cache_dynamic_acls = 1;
>  	tpg->tpg_attrib.demo_mode_login_only = 1;
>  	tpg->tpg_attrib.jam_host = 0;
> +	tpg->tpg_attrib.jam_data = 0;
>  
>  	ret = core_tpg_register(wwn, &tpg->se_tpg, SCSI_PROTOCOL_FCP);
>  	if (ret < 0) {
> diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.h
> b/drivers/scsi/qla2xxx/tcm_qla2xxx.h
> index 37e026a..789bdeb 100644
> --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.h
> +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.h
> @@ -35,6 +35,7 @@ struct tcm_qla2xxx_tpg_attrib {
>  	int demo_mode_login_only;
>  	int fabric_prot_type;
>  	int jam_host;
> +	int jam_data;
>  };
>  
>  struct tcm_qla2xxx_tpg {
> --
> 2.5.5
> 
> 
> 
>  Documentation/scsi/tcm_qla2xxx.txt | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/Documentation/scsi/tcm_qla2xxx.txt
> b/Documentation/scsi/tcm_qla2xxx.txt
> index c3a670a..4a8706c 100644
> --- a/Documentation/scsi/tcm_qla2xxx.txt
> +++ b/Documentation/scsi/tcm_qla2xxx.txt
> @@ -20,3 +20,19 @@ echo 1 >
> /sys/kernel/config/target/qla2xxx/21:00:00:24:ff:27:8f:ae/tpgt_1/attrib
>  
>  Disable jamming on host 4
>  echo 0 >
>  /sys/kernel/config/target/qla2xxx/21:00:00:24:ff:27:8f:ae/tpgt_1/attrib/jam_host
> +
> +New feature added with  a new attribute called jam_data.
> +
> +Setting a boolean of 1 for jam_data as well as setting the boolean of 1 for
> jam_host will
> + allow the dropping of data-only SCSI commands but allow TUR commands to
> pass.
> +
> +This has proven very useful for testing Low Level driver response.
> +
> +Enable host 4 for only data commands to be jammed
> +echo 1 >
> /sys/kernel/config/target/qla2xxx/21:00:00:24:ff:27:8f:ae/tpgt_1/attrib/jam_host
> +echo 1 >
> /sys/kernel/config/target/qla2xxx/21:00:00:24:ff:27:8f:ae/tpgt_1/attrib/jam_data
> +
> +Disable jamming on host 4
> +echo 0 >
> /sys/kernel/config/target/qla2xxx/21:00:00:24:ff:27:8f:ae/tpgt_1/attrib/jam_host
> +echo 0 >
> /sys/kernel/config/target/qla2xxx/21:00:00:24:ff:27:8f:ae/tpgt_1/attrib/jam_data
> +
> --
> 2.5.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

Oops
Replying to my own message
I need to send a V2 of this patch, apologies, just realized match on first check of jam_host so 2nd check wont be met.
When testing only had 2nd check in code and only just saw it.

Back shortly
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux