All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@linux.intel.com>
To: James Bottomley <James.Bottomley@suse.de>
Cc: "Nicholas A. Bellinger" <nab@linux-iscsi.org>,
	Mike Anderson <andmike@linux.vnet.ibm.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-scsi <linux-scsi@vger.kernel.org>,
	Vasu Dev <vasu.dev@linux.intel.com>,
	Tim Chen <tim.c.chen@linux.intel.com>,
	Matthew Wilcox <willy@linux.intel.com>,
	Mike Christie <michaelc@cs.wisc.edu>,
	Jens Axboe <jaxboe@fusionio.com>,
	James Smart <james.smart@emulex.com>,
	Andrew Vasquez <andrew.vasquez@qlogic.com>,
	FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>,
	Hannes Reinecke <hare@suse.de>, Joe Eykholt <jeykholt@cisco.com>,
	Christoph Hellwig <hch@lst.de>, Jon Hawley <warthog9@kernel.org>,
	Brian King <brking@linux.vnet.ibm.com>,
	Christof Schmitt <christof.schmitt@de.ibm.com>,
	Tejun Heo <tj@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	julia@diku.dk
Subject: Re: [ANNOUNCE] Status of unlocked_qcmds=1 operation for .37
Date: Thu, 28 Oct 2010 11:10:20 +0200	[thread overview]
Message-ID: <20101028091020.GA7906@gargoyle.fritz.box> (raw)
In-Reply-To: <1288189658.4692.13.camel@mulgrave.site>

On Wed, Oct 27, 2010 at 09:27:38AM -0500, James Bottomley wrote:
> On Wed, 2010-10-27 at 09:53 +0200, Andi Kleen wrote:
> > > This sounds like a pretty reasonable compromise that I think is slightly
> > > less risky for the LLDs with the ghosts and cob-webs hanging off of
> > > them.
> > 
> > They won't get tested either next release cycle. Essentially
> > near nobody uses them.
> > 
> > > 
> > > What do you think..?
> > 
> > Standard linux practice is to simply push the locks down. That's a pretty
> > mechanical operation and shouldn't be too risky
> > 
> > With some luck you could even do it with coccinelle.
> 
> Precisely ... if we can do the push down now as a mechanical
> transformation we can put it in the current merge window as a low risk
> API change.  This gives us optimal exposure to the rc sequence to sort
> out any problems that arise (or drivers that got missed) with the lowest
> risk of such problems actually arising.  Given the corner cases and the
> late arrival of fixes, the serial number changes are just too risky for
> the current merge window.  Having an API that changes depending on a
> flag is also a high risk process because it's prone to further sources
> of error.

Here's a coccinelle script I came up with that does the push down.
It still adds a bogus empty line in front of the irqflags declaration
which I haven't managed to avoid yet. Other than the it seems
to DTRT on the SCSI drivers I tried.

-Andi


@ rule1 @
struct scsi_host_template t;
identifier qc;
@@
t.queuecommand = qc;

@ rule2 @
identifier rule1.qc;
identifier cmnd;
expression E;
statement S, S2;
@@
int qc(struct scsi_cmnd *cmnd, ...) 
{
	... when != S
+	unsigned long irqflags;

+	spin_lock_irqsave(&cmnd->device->host->hostlock, irqflags);
	S2
	...
+	spin_unlock_irqrestore(&cmnd->device->host->hostlock, irqflags);
	return E;
}




  parent reply	other threads:[~2010-10-28  9:08 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-20 20:49 [ANNOUNCE] Status of unlocked_qcmds=1 operation for .37 Nicholas A. Bellinger
2010-10-20 20:49 ` Nicholas A. Bellinger
2010-10-21 19:26 ` Luben Tuikov
2010-10-21 19:26   ` Luben Tuikov
     [not found] ` <20101021150840.GA24309@linux.vnet.ibm.com>
2010-10-26 22:08   ` Nicholas A. Bellinger
2010-10-26 22:27     ` James Bottomley
2010-10-26 22:34       ` Nicholas A. Bellinger
2010-10-26 22:50         ` James Bottomley
2010-10-26 23:00           ` Nicholas A. Bellinger
2010-10-26 23:11             ` James Bottomley
2010-10-26 23:31               ` Nicholas A. Bellinger
2010-10-27  7:53                 ` Andi Kleen
2010-10-27 14:27                   ` James Bottomley
2010-10-27 18:06                     ` Nicholas A. Bellinger
2010-10-27 18:16                       ` James Bottomley
2010-10-27 19:20                       ` Mike Anderson
2010-10-27 19:55                         ` Nicholas A. Bellinger
2010-10-27 23:28                       ` Jeff Garzik
2010-10-28  9:10                     ` Andi Kleen [this message]
2010-10-28 11:18                       ` Boaz Harrosh
2010-10-28 11:18                         ` Boaz Harrosh
2010-10-28 18:26                         ` Andi Kleen
2010-10-28 18:26                           ` Andi Kleen
2010-10-31 12:14                           ` Boaz Harrosh
2010-10-31 12:14                             ` Boaz Harrosh
2010-11-01 11:45                             ` Andi Kleen
2010-11-01 11:45                               ` Andi Kleen
2010-10-28 20:27                         ` Nicholas A. Bellinger
2010-10-29  7:50                           ` Andi Kleen
2010-10-29 23:50                             ` Nicholas A. Bellinger
2010-10-29 23:50                               ` Nicholas A. Bellinger
2010-10-29 23:57                             ` Nicholas A. Bellinger
2010-10-27 18:03                   ` Nicholas A. Bellinger
     [not found] <C8E4BD3D.A1E3%giridhar.malavali@qlogic.com>
2010-10-20 23:19 ` Nicholas A. Bellinger
2010-10-21  0:30   ` Giridhar Malavali
2010-10-21  0:39     ` 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=20101028091020.GA7906@gargoyle.fritz.box \
    --to=ak@linux.intel.com \
    --cc=James.Bottomley@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=andmike@linux.vnet.ibm.com \
    --cc=andrew.vasquez@qlogic.com \
    --cc=brking@linux.vnet.ibm.com \
    --cc=christof.schmitt@de.ibm.com \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=hpa@zytor.com \
    --cc=james.smart@emulex.com \
    --cc=jaxboe@fusionio.com \
    --cc=jeykholt@cisco.com \
    --cc=julia@diku.dk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=michaelc@cs.wisc.edu \
    --cc=nab@linux-iscsi.org \
    --cc=tim.c.chen@linux.intel.com \
    --cc=tj@kernel.org \
    --cc=vasu.dev@linux.intel.com \
    --cc=warthog9@kernel.org \
    --cc=willy@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.