From: Lee Duncan <lduncan@suse.com>
To: Sagi Grimberg <sagig@dev.mellanox.co.il>, linux-scsi@vger.kernel.org
Cc: hare@suse.com, JBottomley@Parallels.com,
Johannes Thumshirn <jthumshirn@suse.com>
Subject: Re: [PATCH] Update scsi host to use ida for host number
Date: Tue, 1 Sep 2015 10:26:32 -0700 [thread overview]
Message-ID: <55E5DFC8.2060300@suse.com> (raw)
In-Reply-To: <55E56068.2090605@dev.mellanox.co.il>
On 09/01/2015 01:23 AM, Sagi Grimberg wrote:
> On 8/31/2015 11:28 PM, leeman.duncan@gmail.com wrote:
>> From: Lee Duncan <lduncan@suse.com>
>>
>> Each Scsi_host instance gets a host number starting
>> at 0, but this is implemented with an atomic integer,
>> and rollover doesn't seem to have been considered.
>> Another side-effect of this design is that scsi host
>> numbers used by iscsi are never reused, thereby making
>> rollover more likely. This patch converts Scsi_host
>> instances to use ida to manage their instance
>> numbers.
>>
>> This also means that host instance numbers will be
>> reused, when available.
>>
>> Signed-off-by: Lee Duncan <lduncan@suse.com>
>> ---
>> drivers/scsi/hosts.c | 43 +++++++++++++++++++++++++++++++++++--------
>> 1 file changed, 35 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
>> index 8bb173e01084..dade75478541 100644
>> --- a/drivers/scsi/hosts.c
>> +++ b/drivers/scsi/hosts.c
>> @@ -33,7 +33,7 @@
>> #include <linux/transport_class.h>
>> #include <linux/platform_device.h>
>> #include <linux/pm_runtime.h>
>> -
>> +#include <linux/idr.h>
>> #include <scsi/scsi_device.h>
>> #include <scsi/scsi_host.h>
>> #include <scsi/scsi_transport.h>
>> @@ -42,7 +42,8 @@
>> #include "scsi_logging.h"
>>
>>
>> -static atomic_t scsi_host_next_hn = ATOMIC_INIT(0); /* host_no for
>> next new host */
>> +static DEFINE_SPINLOCK(host_index_lock);
>> +static DEFINE_IDA(host_index_ida);
>>
>>
>> static void scsi_host_cls_release(struct device *dev)
>> @@ -337,6 +338,10 @@ static void scsi_host_dev_release(struct device
>> *dev)
>>
>> kfree(shost->shost_data);
>>
>> + spin_lock(&host_index_lock);
>> + ida_remove(&host_index_ida, shost->host_no);
>> + spin_unlock(&host_index_lock);
>
> Why not get it in a symmetrical host_put_index()
Seems like a reasonable suggestion. Since it's only 3 statements, I'll
make it an inline.
I will resubmit the patch, adding the two reviewed-by lines from Hannes
and Johannes, since the code will essentially be the same.
--
Lee Duncan
SUSE Labs
prev parent reply other threads:[~2015-09-01 17:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-31 20:28 [PATCH] Update scsi host to use ida for host number leeman.duncan
2015-09-01 7:16 ` Hannes Reinecke
2015-09-01 8:13 ` Johannes Thumshirn
2015-09-01 8:23 ` Sagi Grimberg
2015-09-01 17:26 ` Lee Duncan [this message]
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=55E5DFC8.2060300@suse.com \
--to=lduncan@suse.com \
--cc=JBottomley@Parallels.com \
--cc=hare@suse.com \
--cc=jthumshirn@suse.com \
--cc=linux-scsi@vger.kernel.org \
--cc=sagig@dev.mellanox.co.il \
/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;
as well as URLs for NNTP newsgroup(s).