From: Boaz Harrosh <bharrosh@panasas.com>
To: linux-iscsi-target-dev@googlegroups.com
Cc: "Nicholas A. Bellinger" <nab@linux-iscsi.org>,
linux-scsi <linux-scsi@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
James Bottomley <James.Bottomley@suse.de>,
Jeff Garzik <jeff@garzik.org>, Christoph Hellwig <hch@lst.de>,
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>,
Hannes Reinecke <hare@suse.de>,
Mike Christie <michaelc@cs.wisc.edu>,
Mike Anderson <andmike@linux.vnet.ibm.com>,
Tejun Heo <tj@kernel.org>, Vasu Dev <vasu.dev@linux.intel.com>,
Tim Chen <tim.c.chen@linux.intel.com>,
Andi Kleen <ak@linux.intel.com>,
Ravi Anand <ravi.anand@qlogic.com>,
Andrew Vasquez <andrew.vasquez@qlogic.com>,
Joe Eykholt <jeykholt@cisco.com>,
James Smart <james.smart@emulex.com>,
Douglas Gilbert <dgilbert@interlog.com>,
adam radford <aradford@gmail.com>,
Kashyap Desai <Kashyap.Desai@lsi.com>,
MPTFusionLinux <DL-MPTFusionLinux@lsi.com>
Subject: Re: [PATCH 03/12] libsas: Convert to host_lock less w/ interrupts disabled externally
Date: Mon, 20 Dec 2010 10:58:01 +0200 [thread overview]
Message-ID: <4D0F1A99.8000703@panasas.com> (raw)
In-Reply-To: <1292793727-31957-4-git-send-email-nab@linux-iscsi.org>
On 12/19/2010 11:21 PM, Nicholas A. Bellinger wrote:
> From: Nicholas Bellinger <nab@linux-iscsi.org>
>
> This patch converts the libsas queuecommand to run in host_lock less mode
> w/ the new IRQ_DISABLE_SCSI_QCMD() that disables interrupts while calling
> ->queuecommand() dispatch.
>
> Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
> ---
> drivers/scsi/libsas/sas_scsi_host.c | 12 ++----------
> 1 files changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
> index 29251fa..011580f 100644
> --- a/drivers/scsi/libsas/sas_scsi_host.c
> +++ b/drivers/scsi/libsas/sas_scsi_host.c
> @@ -185,24 +185,17 @@ int sas_queue_up(struct sas_task *task)
> /**
> * sas_queuecommand -- Enqueue a command for processing
> * @parameters: See SCSI Core documentation
> - *
> - * Note: XXX: Remove the host unlock/lock pair when SCSI Core can
> - * call us without holding an IRQ spinlock...
> */
> -static int sas_queuecommand_lck(struct scsi_cmnd *cmd,
> +static int sas_queuecommand_irq_disable(struct scsi_cmnd *cmd,
> void (*scsi_done)(struct scsi_cmnd *))
> - __releases(host->host_lock)
> __acquires(dev->sata_dev.ap->lock)
> __releases(dev->sata_dev.ap->lock)
> - __acquires(host->host_lock)
> {
> int res = 0;
> struct domain_device *dev = cmd_to_domain_dev(cmd);
> struct Scsi_Host *host = cmd->device->host;
> struct sas_internal *i = to_sas_internal(host->transportt);
>
> - spin_unlock_irq(host->host_lock);
> -
> {
> struct sas_ha_struct *sas_ha = dev->port->ha;
> struct sas_task *task;
> @@ -250,11 +243,10 @@ static int sas_queuecommand_lck(struct scsi_cmnd *cmd,
> }
> }
> out:
> - spin_lock_irq(host->host_lock);
> return res;
> }
>
> -DEF_SCSI_QCMD(sas_queuecommand)
> +IRQ_DISABLE_SCSI_QCMD(sas_queuecommand)
>
I hate this new macro. It is so simple by now. And anyway you are
doing them one by one and auditing the code. Please completely drop
this macro and open code it. There is no "safety" argument to this
ugliness, any more.
(Completely drop the [PATCH 02/12] scsi: Add IRQ_DISABLE_SCSI_QCMD wrapper
patch and redo the users)
Thanks
Boaz
> static void sas_eh_finish_cmd(struct scsi_cmnd *cmd)
> {
next prev parent reply other threads:[~2010-12-20 8:58 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-19 21:21 [PATCH 00/12] LLD host_lock-less conversion status for .38 Nicholas A. Bellinger
2010-12-19 21:21 ` [PATCH 01/12] libiscsi: Convert to host_lock less w/ interrupts disabled internally Nicholas A. Bellinger
2010-12-19 23:38 ` Matthew Wilcox
2010-12-20 1:15 ` Nicholas A. Bellinger
2010-12-20 1:22 ` Nicholas A. Bellinger
2010-12-20 2:07 ` Matthew Wilcox
2010-12-20 9:30 ` Nicholas A. Bellinger
2010-12-21 0:36 ` Mike Christie
2010-12-23 21:23 ` Nicholas A. Bellinger
2010-12-27 3:44 ` Mike Christie
2010-12-21 0:42 ` Mike Christie
2010-12-21 10:53 ` Boaz Harrosh
2010-12-21 23:43 ` Mike Christie
2010-12-23 21:33 ` Nicholas A. Bellinger
2010-12-19 21:21 ` [PATCH 02/12] scsi: Add IRQ_DISABLE_SCSI_QCMD wrapper Nicholas A. Bellinger
2010-12-20 10:48 ` Christoph Hellwig
2010-12-19 21:21 ` [PATCH 03/12] libsas: Convert to host_lock less w/ interrupts disabled externally Nicholas A. Bellinger
2010-12-20 8:58 ` Boaz Harrosh [this message]
2010-12-20 9:33 ` Nicholas A. Bellinger
2010-12-19 21:21 ` [PATCH 04/12] message: " Nicholas A. Bellinger
2010-12-19 21:22 ` [PATCH 05/12] fnic: " Nicholas A. Bellinger
2010-12-19 21:22 ` [PATCH 06/12] lpfc: " Nicholas A. Bellinger
2010-12-19 21:22 ` [PATCH 07/12] qla2xxx: " Nicholas A. Bellinger
2010-12-19 23:11 ` Matthew Wilcox
2010-12-20 0:19 ` Jeff Garzik
2010-12-20 1:07 ` Nicholas A. Bellinger
2010-12-20 9:23 ` Nicholas A. Bellinger
2010-12-21 0:37 ` Madhu Iyengar
2010-12-23 21:49 ` Nicholas A. Bellinger
2010-12-19 21:22 ` [PATCH 08/12] qla4xxx: " Nicholas A. Bellinger
2010-12-19 21:22 ` [PATCH 09/12] scsi_debug: Convert to host_lock less Nicholas A. Bellinger
2010-12-19 21:22 ` [PATCH 10/12] megaraid_sas: Add smp_mb__after_atomic_*() for instance->fw_outstanding Nicholas A. Bellinger
2010-12-19 21:22 ` [PATCH 11/12] megaraid_sas: Convert instance->issuepend_done to atomic_t Nicholas A. Bellinger
2010-12-19 21:22 ` [PATCH 12/12] megaraid_sas: Convert SHT->queuecommand() to run host_lock-less Nicholas A. Bellinger
2010-12-20 15:08 ` [PATCH 00/12] LLD host_lock-less conversion status for .38 Desai, Kashyap
2010-12-20 19:33 ` adam radford
2010-12-23 21:17 ` Nicholas A. Bellinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D0F1A99.8000703@panasas.com \
--to=bharrosh@panasas.com \
--cc=DL-MPTFusionLinux@lsi.com \
--cc=James.Bottomley@suse.de \
--cc=Kashyap.Desai@lsi.com \
--cc=ak@linux.intel.com \
--cc=andmike@linux.vnet.ibm.com \
--cc=andrew.vasquez@qlogic.com \
--cc=aradford@gmail.com \
--cc=dgilbert@interlog.com \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=james.smart@emulex.com \
--cc=jeff@garzik.org \
--cc=jeykholt@cisco.com \
--cc=linux-iscsi-target-dev@googlegroups.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=michaelc@cs.wisc.edu \
--cc=nab@linux-iscsi.org \
--cc=ravi.anand@qlogic.com \
--cc=tim.c.chen@linux.intel.com \
--cc=tj@kernel.org \
--cc=vasu.dev@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox