From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756484Ab0J0Tx7 (ORCPT ); Wed, 27 Oct 2010 15:53:59 -0400 Received: from nm26.bullet.mail.ac4.yahoo.com ([98.139.52.223]:26318 "HELO nm26.bullet.mail.ac4.yahoo.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1752242Ab0J0Tx4 (ORCPT ); Wed, 27 Oct 2010 15:53:56 -0400 X-Yahoo-Newman-Id: 804469.1046.bm@omp1011.mail.ac4.yahoo.com X-Yahoo-SMTP: fzDSGlOswBCWnIOrNw7KwwK1j9PqyNbe5PtLKiS4dDU.UNl_t6bdEZu9tTLW X-YMail-OSG: cmkEkbUVM1mc1AC31agHg3.dmwPZKSQLcmvfNUyezaSTqce 8EtGS4AxSfChnS1UibZIBrNlhUkHHVcFs6ohJHef2.jnAyGwTyxKGyV4idQt pIxQuIKpOOxNE21xbK0FuLE7O3BJiPz3U65ezud.d1E2UzDmL52DcqLjo8yS UdxeeilmUPVP5zb6Xf0VrMj_8IXwRp.YfoELeBIt1tIUaaHuzX.UckTic3wN WEX_LWuf1JAc4mqJkeT3iFqG3ZCy3nJ2iduNgqkpQIk3HkIk- X-Yahoo-Newman-Property: ymail-3 Subject: Re: [PATCH] scsi: Add SHT->unlocked_qcmd for host_lock less SHT->queuecommand() dispatch From: "Nicholas A. Bellinger" To: Mike Christie Cc: linux-scsi , linux-kernel , Vasu Dev , Tim Chen , Andi Kleen , Matthew Wilcox , James Bottomley , Jens Axboe , James Smart , Andrew Vasquez , FUJITA Tomonori , Hannes Reinecke , Joe Eykholt , Christoph Hellwig , Jon Hawley , MPTFusionLinux , "eata.c maintainer" , Luben Tuikov , mvsas maintainer , pm8001 maintainer Jack Wang In-Reply-To: <4CC86E36.8060102@cs.wisc.edu> References: <1288139559-12019-1-git-send-email-nab@linux-iscsi.org> <4CC86E36.8060102@cs.wisc.edu> Content-Type: text/plain Date: Wed, 27 Oct 2010 12:48:57 -0700 Message-Id: <1288208937.5169.206.camel@haakon2.linux-iscsi.org> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 2010-10-27 at 13:23 -0500, Mike Christie wrote: > On 10/26/2010 07:32 PM, Nicholas A. Bellinger wrote: > > diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c > > index fec47de..f5933dd 100644 > > --- a/drivers/scsi/iscsi_tcp.c > > +++ b/drivers/scsi/iscsi_tcp.c > > @@ -882,6 +882,7 @@ static struct scsi_host_template iscsi_sw_tcp_sht = { > > .target_alloc = iscsi_target_alloc, > > .proc_name = "iscsi_tcp", > > .this_id = -1, > > + .unlocked_qcmd = 1, > > }; > > > > static struct iscsi_transport iscsi_sw_tcp_transport = { > > diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c > > index 633e090..7e4134e 100644 > > --- a/drivers/scsi/libiscsi.c > > +++ b/drivers/scsi/libiscsi.c > > @@ -1615,7 +1615,6 @@ int iscsi_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *)) > > > > host = sc->device->host; > > ihost = shost_priv(host); > > - spin_unlock(host->host_lock); > > > > cls_session = starget_to_session(scsi_target(sc->device)); > > session = cls_session->dd_data; > > @@ -1706,7 +1705,6 @@ int iscsi_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *)) > > > > session->queued_cmdsn++; > > spin_unlock(&session->lock); > > - spin_lock(host->host_lock); > > return 0; > > > > prepd_reject: > > @@ -1716,7 +1714,6 @@ reject: > > spin_unlock(&session->lock); > > ISCSI_DBG_SESSION(session, "cmd 0x%x rejected (%d)\n", > > sc->cmnd[0], reason); > > - spin_lock(host->host_lock); > > return SCSI_MLQUEUE_TARGET_BUSY; > > > > prepd_fault: > > @@ -1733,7 +1730,6 @@ fault: > > scsi_in(sc)->resid = scsi_in(sc)->length; > > } > > done(sc); > > - spin_lock(host->host_lock); > > return 0; > > } > > EXPORT_SYMBOL_GPL(iscsi_queuecommand); > > > Hey, > > iscsi_tcp, drivers/infiniband/ulp/iser/ib_iser, drivers/scsi/cxgb3i, > drivers/scsi/bnx2i, and drivers/scsi/be2iscsi use libiscsi's > iscsi_queuecommand function, so they should all use the same setting > unlocked_qcmd=1. Hmmm, that is what I was thinking too.. Thanks for confirming this. Respinning again to include this LLDs w/ the new SHT->queuecommad_unlocked() usage. Thanks Mike! --nab