All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nicholas A. Bellinger" <nab@linux-iscsi.org>
To: James Bottomley <James.Bottomley@suse.de>
Cc: Andi Kleen <ak@linux.intel.com>,
	linux-scsi <linux-scsi@vger.kernel.org>,
	linux-kernel <linux-kernel@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>,
	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>
Subject: Re: [PATCH 1/8] scsi: Drop struct Scsi_Host->host_lock around SHT->queuecommand()
Date: Fri, 17 Sep 2010 09:37:58 -0700	[thread overview]
Message-ID: <1284741478.13344.154.camel@haakon2.linux-iscsi.org> (raw)
In-Reply-To: <1284735438.26423.81.camel@mulgrave.site>

On Fri, 2010-09-17 at 10:57 -0400, James Bottomley wrote:
> On Fri, 2010-09-17 at 16:22 +0200, Andi Kleen wrote:
> > > I don't disagree with the idea of removing it, especially as it has so
> > > few users, but replacing the host lock with an atomic here would still
> > > vastly reduce the contention, which is the initial complaint.  The
> > 
> > Actually the complaint is the overhead of the spin lock. This can be 
> > either caused
> > by contention or by cache line bounce time.
> 
> The original complaint was contention.  My desire is to reduce the
> locked path coverage, so I saw an opportunity.
> 
> What I was actually thinking of for the atomic is that we'd let it range
> [1..INT_MAX] so a zero was an indicator of no use of this.  Then the
> actual code could become
> 
> if (atomic_read(x)) {
> 	do {
> 		y = atomic_add_return(1, x);
> 	} while (y == 0);
> }

The conversion of struct scsi_cmnd->serial_number to atomic_t and the
above code for scsi_cmd_get_serial() sounds perfectly reasonable to me.

I will take a look at this conversion and respin a complete set of
patches for review a bit later today.

Thanks!

--nab

> 
> So "fast" cards not using the serial number set a zero there (we'd
> default initialise to one), the line is shared so no bouncing (because
> it's never updated).  This should satisfy everyone.
> 
> > > contention occurs because the host lock is so widely used for other
> > > things.  The way to reduce that contention is firstly to reduce the
> > > length of code covered by the lock and also reduce the actual number of
> > > places where the lock is taken.  Compared with host lock's current vast
> > > footprint, and atomic here is tiny.
> > 
> > That assumes that it's contention that is the problem and not simply 
> > bounce time.
> 
> That's what the patch and data that started this whole thread showed,
> yes ... but I think actual bounce in the spinlock is also a problem ...
> we just don't have data to show it.
> 
> James
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


  reply	other threads:[~2010-09-17 16:42 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-16 22:35 [PATCH 1/8] scsi: Drop struct Scsi_Host->host_lock around SHT->queuecommand() Nicholas A. Bellinger
2010-09-16 22:35 ` Nicholas A. Bellinger
2010-09-17  2:46 ` James Bottomley
2010-09-17  3:02   ` Nicholas A. Bellinger
2010-09-17  3:20   ` Christoph Hellwig
2010-09-17  7:20   ` Andi Kleen
2010-09-17 12:13     ` James Bottomley
2010-09-17 14:22       ` Andi Kleen
2010-09-17 14:57         ` James Bottomley
2010-09-17 16:37           ` Nicholas A. Bellinger [this message]
2010-09-17 16:41             ` Nicholas A. Bellinger
2010-09-17 17:49               ` Tim Chen
2010-09-17 18:21                 ` Nicholas A. Bellinger
2010-09-17 17:24             ` Joe Eykholt

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=1284741478.13344.154.camel@haakon2.linux-iscsi.org \
    --to=nab@linux-iscsi.org \
    --cc=James.Bottomley@suse.de \
    --cc=ak@linux.intel.com \
    --cc=andrew.vasquez@qlogic.com \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=james.smart@emulex.com \
    --cc=jeykholt@cisco.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=michaelc@cs.wisc.edu \
    --cc=tim.c.chen@linux.intel.com \
    --cc=vasu.dev@linux.intel.com \
    --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.