RE: [PATCH] mpt2sas: Remove queuecommand wrapper

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

 



Matthew, I am fine with the patch, but just wanted to double check we do have included  changes related to below conversation.
Mpt2sas and mptsas driver wants IRQ and preemption disable when it enter in to qcmd callback.

http://140.211.166.79/mailarchive/linux-scsi/2010/12/23/6887919

~ Kashyap

> -----Original Message-----
> From: Matthew Wilcox [mailto:willy@xxxxxxxxxxxxxxx]
> Sent: Tuesday, July 05, 2011 12:57 AM
> To: linux-scsi@xxxxxxxxxxxxxxx
> Cc: DL-MPT Fusion Linux
> Subject: [PATCH] mpt2sas: Remove queuecommand wrapper
> 
> 
> Now that mpt2sas no longer uses the serial_number, we can remove the
> wrapper that acquires the host_lock around queuecommand.  This is the
> most contended lock for one benchmark, and on a 8-socket machine this
> patch leads to a 70% application-level improvement.
> 
> Signed-off-by: Matthew Wilcox <matthew.r.wilcox@xxxxxxxxx>
> 
> diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
> b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
> index a7dbc68..67708b3 100644
> --- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
> +++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
> @@ -3680,9 +3680,9 @@ _scsih_setup_direct_io(struct MPT2SAS_ADAPTER
> *ioc, struct scsi_cmnd *scmd,
>   * SCSI_MLQUEUE_HOST_BUSY if the entire host queue is full
>   */
>  static int
> -_scsih_qcmd_lck(struct scsi_cmnd *scmd, void (*done)(struct scsi_cmnd
> *))
> +_scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
>  {
> -	struct MPT2SAS_ADAPTER *ioc = shost_priv(scmd->device->host);
> +	struct MPT2SAS_ADAPTER *ioc = shost_priv(shost);
>  	struct MPT2SAS_DEVICE *sas_device_priv_data;
>  	struct MPT2SAS_TARGET *sas_target_priv_data;
>  	struct _raid_device *raid_device;
> @@ -3690,7 +3690,6 @@ _scsih_qcmd_lck(struct scsi_cmnd *scmd, void
> (*done)(struct scsi_cmnd *))
>  	u32 mpi_control;
>  	u16 smid;
> 
> -	scmd->scsi_done = done;
>  	sas_device_priv_data = scmd->device->hostdata;
>  	if (!sas_device_priv_data || !sas_device_priv_data->sas_target) {
>  		scmd->result = DID_NO_CONNECT << 16;
> @@ -3814,8 +3813,6 @@ _scsih_qcmd_lck(struct scsi_cmnd *scmd, void
> (*done)(struct scsi_cmnd *))
>  	return SCSI_MLQUEUE_HOST_BUSY;
>  }
> 
> -static DEF_SCSI_QCMD(_scsih_qcmd)
> -
>  /**
>   * _scsih_normalize_sense - normalize descriptor and fixed format sense
> data
>   * @sense_buffer: sense data returned by target
--
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