From: Bart Van Assche <bvanassche@acm.org>
To: Hannes Reinecke <hare@suse.de>,
"Martin K. Petersen" <martin.petersen@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>,
Doug Gilbert <dgilbert@interlog.com>,
Daniel Wagner <daniel.wagner@suse.com>,
James Bottomley <james.bottomley@hansenpartnership.com>,
linux-scsi@vger.kernel.org
Subject: Re: [RFC PATCH 0/4] scsi: use xarray for devices and targets
Date: Wed, 27 May 2020 09:36:40 -0700 [thread overview]
Message-ID: <f1cb4faf-816e-9f71-aa74-ddf023b197f4@acm.org> (raw)
In-Reply-To: <20200527141400.58087-1-hare@suse.de>
On 2020-05-27 07:13, Hannes Reinecke wrote:
> Hi all,
>
> based on the ideas from Doug Gilbert here's now my take on using
> xarrays for devices and targets.
> It revolves around two ideas:
> - 'channel' and 'id' are never ever used to the full 32 bit range;
> 'channels' are well below 10, and no driver is using more than
> 16 bits for the id. So we can reduce the type of 'channel' and
> 'id' to 16 bits, and use the 32 bit value 'channel << 16 | id'
> as the index into the target xarray.
> - Most SCSI LUNs are below 256 (to ensure compability with older
> systems). So there we can use the LUN number as the index into
> the xarray; for larger LUN numbers we'll allocate a separate
> index.
>
> With these change we can implement an efficient lookup mechanism,
> devolving into direct lookup for most cases.
> And iteration should be as efficient as the current, list-based,
> approach.
>
> This is compile-tested only, to give you an impression of the
> overall idea and to get the discussion rolling.
Hi Hannes,
My understanding of the xarray concept is that it provides two
advantages over using linked lists:
- Faster lookups.
- Requires less memory.
Will we benefit from any of these advantages in the SCSI code? Hadn't
James Bottomley already brought up that lookup by (channel, target, lun)
only happens from some LLDs and from the procfs code?
Are there any use cases where the number of SCSI devices is large enough
to benefit from the memory reduction?
Thanks,
Bart.
next prev parent reply other threads:[~2020-05-27 16:36 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-27 14:13 [RFC PATCH 0/4] scsi: use xarray for devices and targets Hannes Reinecke
2020-05-27 14:13 ` [PATCH 1/4] scsi: convert target lookup to xarray Hannes Reinecke
2020-05-27 14:57 ` Johannes Thumshirn
2020-05-27 15:06 ` Hannes Reinecke
2020-05-28 7:24 ` Daniel Wagner
2020-05-28 7:52 ` Hannes Reinecke
2020-05-28 16:28 ` Bart Van Assche
2020-05-29 5:01 ` kbuild test robot
2020-05-31 9:10 ` Dan Carpenter
2020-05-27 14:13 ` [PATCH 2/4] target_core_pscsi: use __scsi_device_lookup() Hannes Reinecke
2020-05-27 15:05 ` Johannes Thumshirn
2020-05-27 14:13 ` [PATCH 3/4] scsi: move target device list to xarray Hannes Reinecke
2020-05-27 15:34 ` Johannes Thumshirn
2020-05-27 20:13 ` kbuild test robot
2020-05-30 2:47 ` kbuild test robot
2020-05-27 14:14 ` [PATCH 4/4] scsi: remove direct device lookup per host Hannes Reinecke
2020-05-28 8:00 ` kbuild test robot
2020-05-27 16:36 ` Bart Van Assche [this message]
2020-05-27 16:59 ` [RFC PATCH 0/4] scsi: use xarray for devices and targets Hannes Reinecke
2020-05-28 3:59 ` Douglas Gilbert
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=f1cb4faf-816e-9f71-aa74-ddf023b197f4@acm.org \
--to=bvanassche@acm.org \
--cc=daniel.wagner@suse.com \
--cc=dgilbert@interlog.com \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=james.bottomley@hansenpartnership.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox