From: Christoph Hellwig <hch@infradead.org>
To: "Nicholas A. Bellinger" <nab@daterainc.com>
Cc: target-devel <target-devel@vger.kernel.org>,
linux-scsi <linux-scsi@vger.kernel.org>,
Hannes Reinecke <hare@suse.de>, Christoph Hellwig <hch@lst.de>,
Sagi Grimberg <sagig@mellanox.com>,
Nicholas Bellinger <nab@linux-iscsi.org>,
Andy Grover <agrover@redhat.com>
Subject: Re: [RFC 00/22] target: se_node_acl LUN list RCU conversion
Date: Mon, 30 Mar 2015 05:08:23 -0700 [thread overview]
Message-ID: <20150330120823.GA20193@infradead.org> (raw)
In-Reply-To: <1427443512-8925-1-git-send-email-nab@daterainc.com>
I went through this in detail, and the odd patch split that splits
one change up into muliple patches, but then also mixes up other
changes makes it hard to read.
So I started rebasing the tree to understand it moving your various
cleanups to the front of the series. Of coure while reading through
it the number of cleanups grew, so there are a few more now.
Based on that I don't think this series will work very well, RCU works
when replacing strutures in a lookup data structure, but not when
changing the content of it, so the new locking scheme doesn't work
very well, as the device_list array is static, it's just the content
that changes.
Fortunately there is the old patch from Andy to make the se_dev_entry
dynamically allocated, which comes in useful here. With that we might
only change the rdonly flag on a live dev entry, or assign an ACL when
it previously was NULL, something that RCU can handle nicely.
I've pushed a git tree to
git://git.infradead.org/users/hch/scsi.git target-rcu-hch
Gitweb:
http://git.infradead.org/users/hch/scsi.git/shortlog/refs/heads/target-rcu-hch
that implements this scheme. Note that I dropped the percpu refcount
changes - the reference is only taken in the SCSI3-PR slow path, and the
percpu refcount API is extremly cumbersome.
This survives I/O testing nicely, but I couldn't find a good test suite
for the control path.
next prev parent reply other threads:[~2015-03-30 12:08 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-27 8:04 [RFC 00/22] target: se_node_acl LUN list RCU conversion Nicholas A. Bellinger
2015-03-27 8:04 ` [RFC 01/22] target: Convert transport_lookup_*_lun to RCU reader Nicholas A. Bellinger
2015-03-29 6:38 ` Sagi Grimberg
2015-03-27 8:04 ` [RFC 02/22] target: Convert enable/disable ->device_list to RCU updater Nicholas A. Bellinger
2015-03-29 6:51 ` Sagi Grimberg
2015-03-27 8:04 ` [RFC 03/22] target/device: Convert se_node_acl->device_list access to RCU reader Nicholas A. Bellinger
2015-03-27 8:04 ` [RFC 04/22] target/configfs: Convert mappedlun link/unlink " Nicholas A. Bellinger
2015-03-27 8:04 ` [RFC 05/22] target/configfs: Convert SCSI MIB attrs " Nicholas A. Bellinger
2015-03-27 8:04 ` [RFC 06/22] target/spc: Convert REPORT_LUN + MODE_SENSE " Nicholas A. Bellinger
2015-03-27 8:04 ` [RFC 07/22] target/pscsi: Convert MODE_SENSE special case " Nicholas A. Bellinger
2015-03-27 8:04 ` [RFC 08/22] target/pr: Convert se_dev_entry to percpu-refcount for RCU Nicholas A. Bellinger
2015-03-27 8:04 ` [RFC 09/22] target/pr: Convert registration check to RCU pointer Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 10/22] target/pr: Change alloc_registration to avoid pr_reg_tg_pt_lun Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 11/22] target: Convert UNIT_ATTENTION logic to RCU reader Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 12/22] target: Convert se_tpg->tpg_lun_lock to ->tpg_lun_mutex Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 13/22] target: Convert se_tpg->acl_node_lock to ->acl_node_mutex Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 14/22] target: Convert se_node_acl->lun_entry_lock to ->lun_entry_mutex Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 15/22] target: Convert core_tpg_deregister to use list splice Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 16/22] target: Drop se_lun->lun_acl_list Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 17/22] target: Drop core_tpg_clear_object_luns Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 18/22] target: Rename TPG initiator_node_acl to target_* prefix Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 19/22] target: Rename TPG register/deregister " Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 20/22] target: Rename LUN lookup/add/remove " Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 21/22] target: Rename se_node_acl->lun_entry_hlist " Nicholas A. Bellinger
2015-03-27 8:05 ` [RFC 22/22] target: Rename se_port/se_device export " Nicholas A. Bellinger
2015-03-30 12:08 ` Christoph Hellwig [this message]
2015-03-30 19:16 ` [RFC 00/22] target: se_node_acl LUN list RCU conversion Andy Grover
2015-03-30 19:21 ` Christoph Hellwig
2015-03-30 19:35 ` Andy Grover
2015-03-31 9:23 ` Christoph Hellwig
2015-04-01 6:51 ` Nicholas A. Bellinger
2015-04-01 7:04 ` Christoph Hellwig
2015-04-02 5:37 ` Nicholas A. Bellinger
2015-04-02 8:56 ` Christoph Hellwig
2015-04-02 20:57 ` Nicholas A. Bellinger
2015-04-07 6:17 ` Christoph Hellwig
2015-04-08 6:31 ` 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=20150330120823.GA20193@infradead.org \
--to=hch@infradead.org \
--cc=agrover@redhat.com \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=linux-scsi@vger.kernel.org \
--cc=nab@daterainc.com \
--cc=nab@linux-iscsi.org \
--cc=sagig@mellanox.com \
--cc=target-devel@vger.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 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).