All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Tejun Heo <tj@kernel.org>
Cc: Lee Duncan <lduncan@suse.com>,
	linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
	Hannes Reinecke <hare@suse.com>,
	Johannes Thumshirn <jthumshirn@suse.de>,
	Christoph Hellwig <hch@infradead.org>
Subject: Re: [PATCH 01/17] Add ida and idr helper routines.
Date: Tue, 15 Sep 2015 11:38:42 -0700	[thread overview]
Message-ID: <1442342322.2177.13.camel@HansenPartnership.com> (raw)
In-Reply-To: <20150915182755.GA31484@htj.duckdns.org>

On Tue, 2015-09-15 at 14:27 -0400, Tejun Heo wrote:
> Hello,
> 
> On Tue, Sep 15, 2015 at 09:46:01AM -0700, Lee Duncan wrote:
> > +/**
> > + * ida_get_index - allocate a ida index value
> > + * @ida		idr handle
> > + * @lock	spinlock handle protecting this index
> > + * @p_id	pointer to allocated index value
> > + *
> > + * A helper function for safely allocating an index value (id),
> > + * returning a negative errno value on failure, else 0.
> > + */
> > +static inline int ida_get_index(struct ida *ida, spinlock_t *lock, int *p_id)
> > +{
> > +	int error = -ENOMEM;
> > +
> > +	do {
> > +		if (!ida_pre_get(ida, GFP_KERNEL))
> > +			break;
> > +		spin_lock(lock);
> > +		error = ida_get_new(ida, p_id);
> > +		spin_unlock(lock);
> > +	} while (error == -EAGAIN);
> > +
> > +	return error;
> > +}
> 
> Obviously ida allocation doesn't need to be synchronized against
> anything else.  Why not just use ida_simple_get/remove()?

For most of the SCSI stuff, yes.  I'm less sure about the sd numbers.
They go up very high and get hammered a lot during system bring up and
hot plug.  I think having their own lock rather than wrapping everything
around simple_ida_lock makes more sense here just because the system is
heavily contended on getting indexes at bring up.

To continue the thought, why not move simple_ida_lock into struct ida so
we don't have to worry about the contention and can sue ida_simple_...
everywhere?

James

  reply	other threads:[~2015-09-15 18:38 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-15 16:46 [PATCH 00/17] Create and use ida and idr helper routines Lee Duncan
2015-09-15 16:46 ` Lee Duncan
2015-09-15 16:46 ` [PATCH 01/17] Add " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 18:20   ` James Bottomley
2015-09-15 18:27   ` Tejun Heo
2015-09-15 18:38     ` James Bottomley [this message]
2015-09-15 18:41       ` Tejun Heo
2015-09-18 15:42         ` Lee Duncan
2015-09-18 15:49           ` Tejun Heo
2015-09-15 16:46 ` [PATCH 02/17] Update scsi hosts to use idr for host number mgmt Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 03/17] Update the st driver to use idr helper functions Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 04/17] Update the ch " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 05/17] Update the md " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 18:05   ` Mike Snitzer
2015-09-17 20:51     ` Lee Duncan
2015-09-15 16:46 ` [PATCH 06/17] Update the infiniband uverbs " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 07/17] Update the memstick " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 08/17] Update the mmc " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-16  6:48   ` Ulf Hansson
2015-09-15 16:46 ` [PATCH 09/17] Update the virtgpu " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 10/17] Update the DCA DMA " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 11/17] Update the rtsx multifunction " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 12/17] Update the TI Flash Media " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 13/17] Update the SCSI disk driver to use ida " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 14/17] Update the rsxx flash adapter " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 15/17] Update the NVMe SSD " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 16/17] Update the Micron PCIe " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
2015-09-15 16:46 ` [PATCH 17/17] Update the ARM soc base " Lee Duncan
2015-09-15 16:46   ` Lee Duncan
  -- strict thread matches above, loose matches on Subject: below --
2015-09-16 17:50 [PATCH 00/17] Create and use ida and idr helper routines [RESEND] Lee Duncan
2015-09-16 17:50 ` [PATCH 01/17] Add ida and idr helper routines Lee Duncan

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=1442342322.2177.13.camel@HansenPartnership.com \
    --to=james.bottomley@hansenpartnership.com \
    --cc=hare@suse.com \
    --cc=hch@infradead.org \
    --cc=jthumshirn@suse.de \
    --cc=lduncan@suse.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=tj@kernel.org \
    /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.