Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-21 Thread Nicholas A. Bellinger
On Thu, 2015-05-21 at 19:03 +0200, Christoph Hellwig wrote: > On Tue, May 19, 2015 at 08:22:31AM +0200, Christoph Hellwig wrote: > > On Mon, May 18, 2015 at 11:05:47PM -0700, Nicholas A. Bellinger wrote: > > > > [ 12.830576] kernel BUG at ../drivers/target/target_core_device.c:337! > > > > > > >

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-21 Thread Christoph Hellwig
On Tue, May 19, 2015 at 08:22:31AM +0200, Christoph Hellwig wrote: > On Mon, May 18, 2015 at 11:05:47PM -0700, Nicholas A. Bellinger wrote: > > > [ 12.830576] kernel BUG at ../drivers/target/target_core_device.c:337! > > > > > > > How did you hit this..? > > tcm_node --block iblock_0/array /de

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-18 Thread Christoph Hellwig
On Mon, May 18, 2015 at 11:05:47PM -0700, Nicholas A. Bellinger wrote: > > [ 12.830576] kernel BUG at ../drivers/target/target_core_device.c:337! > > > > How did you hit this..? tcm_node --block iblock_0/array /dev/sda line=$(tcm_loop --createnexus=0) wwn=$(echo $line | awk '{print $15}') tcm

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-18 Thread Nicholas A. Bellinger
(resending) On Mon, 2015-05-18 at 10:01 +0200, Christoph Hellwig wrote: > On Mon, May 18, 2015 at 09:41:02AM +0200, Christoph Hellwig wrote: > > > Here's a first pass at this along with kref + completion conversion for > > > the special case PR ALL_TGT_PT=1 pointer dereference. > > > > Btw, I sta

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-18 Thread Christoph Hellwig
On Mon, May 18, 2015 at 09:41:02AM +0200, Christoph Hellwig wrote: > > Here's a first pass at this along with kref + completion conversion for > > the special case PR ALL_TGT_PT=1 pointer dereference. > > Btw, I started hacking up a patch to merge se_port and > t10_alua_tg_pt_gp_member > in se_lu

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-18 Thread Christoph Hellwig
On Mon, May 18, 2015 at 12:17:24AM -0700, Nicholas A. Bellinger wrote: > On Sun, 2015-05-17 at 18:51 +0200, Christoph Hellwig wrote: > > On Wed, May 13, 2015 at 01:46:11AM -0700, Nicholas A. Bellinger wrote: > > > Updated to use a mirror lun->lun_rtpi, with the assignment from sep_rtpi > > > occuri

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-18 Thread Nicholas A. Bellinger
On Sun, 2015-05-17 at 18:51 +0200, Christoph Hellwig wrote: > On Wed, May 13, 2015 at 01:46:11AM -0700, Nicholas A. Bellinger wrote: > > Updated to use a mirror lun->lun_rtpi, with the assignment from sep_rtpi > > occuring in core_dev_export() code. > > From looking at your current tree I suspect

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-17 Thread Christoph Hellwig
On Wed, May 13, 2015 at 01:46:11AM -0700, Nicholas A. Bellinger wrote: > Updated to use a mirror lun->lun_rtpi, with the assignment from sep_rtpi > occuring in core_dev_export() code. >From looking at your current tree I suspect freeing the se_port structure using kfree_rcu might be a better idea.

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-13 Thread Nicholas A. Bellinger
On Wed, 2015-05-13 at 08:35 +0200, Christoph Hellwig wrote: > Onemore comments from looking oer the RCU usage with all the patches > applied: > > In core_get_se_deve_from_rtpi we dereference lun->lun_sep, so > either struct se_port needs to be switched to kfree_rcu, > or we need to mirror the rtpi

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-12 Thread Christoph Hellwig
On Tue, May 12, 2015 at 11:20:12PM -0700, Nicholas A. Bellinger wrote: > Ugh, yes. Fixing up clear_lun_from_tpg + free_device_list_for_node to > use a common caller acquiring se_node_acl->lun_entry_mutex during > se_dev_entry release. > > Fixing up target_fabric_mappedlun_unlink() as well. Good

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-12 Thread Christoph Hellwig
Onemore comments from looking oer the RCU usage with all the patches applied: In core_get_se_deve_from_rtpi we dereference lun->lun_sep, so either struct se_port needs to be switched to kfree_rcu, or we need to mirror the rtpi value into the se_lun. -- To unsubscribe from this list: send the line

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-12 Thread Nicholas A. Bellinger
On Wed, 2015-05-13 at 07:46 +0200, Christoph Hellwig wrote: > On Tue, May 12, 2015 at 09:25:25AM +, Nicholas A. Bellinger wrote: > > @@ -240,18 +237,12 @@ int core_free_device_list_for_node( > > { > > struct se_dev_entry *deve; > > struct se_lun *lun; > > - u32 i; > > - > > - if (!

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-12 Thread Christoph Hellwig
On Tue, May 12, 2015 at 09:25:25AM +, Nicholas A. Bellinger wrote: > @@ -240,18 +237,12 @@ int core_free_device_list_for_node( > { > struct se_dev_entry *deve; > struct se_lun *lun; > - u32 i; > - > - if (!nacl->device_list) > - return 0; > - > - spin_lock_i

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-12 Thread Nicholas A. Bellinger
On Wed, 2015-05-13 at 07:32 +0200, Christoph Hellwig wrote: > On Tue, May 12, 2015 at 10:08:51PM -0700, Nicholas A. Bellinger wrote: > > The series is bisectable. With patch #1 in place ->device_list[] is > > still kzalloc()'ed, but new RCU pointer assignments are made into > > lun_entry_hlist[].

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-12 Thread Christoph Hellwig
On Tue, May 12, 2015 at 10:08:51PM -0700, Nicholas A. Bellinger wrote: > The series is bisectable. With patch #1 in place ->device_list[] is > still kzalloc()'ed, but new RCU pointer assignments are made into > lun_entry_hlist[]. > > Squashing the RCU reader paths (#2-6) for merge is OK, but it's

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-12 Thread Nicholas A. Bellinger
On Tue, 2015-05-12 at 13:58 -0700, Andy Grover wrote: > On 05/12/2015 02:25 AM, Nicholas A. Bellinger wrote: > > From: Nicholas Bellinger > > > > This patch converts se_node_acl->device_list[] table for mappedluns > > to modern RCU hlist_head usage in order to support an arbitrary number > > of no

Re: [PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-12 Thread Andy Grover
On 05/12/2015 02:25 AM, Nicholas A. Bellinger wrote: From: Nicholas Bellinger This patch converts se_node_acl->device_list[] table for mappedluns to modern RCU hlist_head usage in order to support an arbitrary number of node_acl lun mappings. This includes changes to core_[enable,disable]_devi

[PATCH 01/12] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-12 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch converts se_node_acl->device_list[] table for mappedluns to modern RCU hlist_head usage in order to support an arbitrary number of node_acl lun mappings. This includes changes to core_[enable,disable]_device_list_for_node() rcu_assign_pointer() and invokes cal