Re: [PATCH 1/9] lpfc: Check for active portpeerbeacon.

2015-05-25 Thread Hannes Reinecke
On 05/22/2015 04:42 PM, James Smart wrote: > > Check for active portpeerbeacon. > > LCB requests to set Beacon would fail if the beacon was already enabled > internally as the mailbox command used to query the state failes with > an already-set status. > > Correct by enhancing the check so we do

Re: [PATCH 2/9] lpfc: Fix vport deletion failure.

2015-05-25 Thread Hannes Reinecke
On 05/22/2015 04:42 PM, James Smart wrote: > > Fix vport deletion failure. > > If a vport was deleted while in the middle of discovery, we weren't > clearing the nport discovery flag. Correct by clearing the flag and > cancelling our discovery timeout timer. > > Signed-off-by: Dick Kennedy > Si

Re: [PATCH 3/9] lpfc: Devices are not discovered during takeaway/giveback testing

2015-05-25 Thread Hannes Reinecke
On 05/22/2015 04:42 PM, James Smart wrote: > > Devices are not discovered during takeaway/giveback testing > > When a remote nport changes it's DID, a new ndlp is used. > However, we left the old ndlp state unchanged and still in > a discovery state. The may stall discovery resulting in some > de

Re: [PATCH 4/9] lpfc: Add support for using block multi-queue

2015-05-25 Thread Hannes Reinecke
On 05/22/2015 04:42 PM, James Smart wrote: > > Add support for using block multi-queue > > With blk-mq support in the mid-layer, lpfc can do IO steering based > on the information in the request tag. This patch allows lpfc to use > blk-mq if enabled. If not enabled, we fall back into the emulex-

Re: [PATCH 5/9] lpfc: Fix scsi prep dma buf error.

2015-05-25 Thread Hannes Reinecke
On 05/22/2015 04:42 PM, James Smart wrote: > > Fix scsi prep dma buf error. > > Didn't check for less-than-or-equal zero. Means we may later call > scsi_dma_unmap() even though we don't have valid mappings. > > Signed-off-by: Dick Kennedy > Signed-off-by: James Smart > --- Reviewed-by: Hannes

Re: [PATCH 6/9] lpfc: Fix cq_id masking problem.

2015-05-25 Thread Hannes Reinecke
On 05/22/2015 04:42 PM, James Smart wrote: > > Fix cq_id masking problem. > > The driver inadvertainly constrained the id space to 8 bits, when its > a full 16 bits from hw. This resulted in bad id's being written to the > hardware. Resulted in symptoms such as incomplete initialization, no > det

Re: [PATCH 7/9] lpfc: Fix scsi task management error message.

2015-05-25 Thread Hannes Reinecke
On 05/22/2015 04:42 PM, James Smart wrote: > > Fix scsi task management error message. > > TMF's were getting error messages on FCP_RSP errors (underrun). Underruns > aren't meaningful in the scenario. Change the error message to filter out > these response check errors, and don't unconditionally

Re: [PATCH 9/9] lpfc: Update version to 10.7.0.0 for upstream patch set.

2015-05-25 Thread Hannes Reinecke
On 05/22/2015 04:42 PM, James Smart wrote: > > Update version to 10.7.0.0 for upstream patch set. > > Signed-off-by: Dick Kennedy > Signed-off-by: James Smart > --- Reviewed-by: Hannes Reinecke Cheers, Hannes -- Dr. Hannes Reinecke zSeries & Storage h...@suse.de

Re: [PATCH 8/9] lpfc: Fix to drop PLOGIs from fabric node till LOGO processing completes

2015-05-25 Thread Hannes Reinecke
On 05/22/2015 04:42 PM, James Smart wrote: > > Fix to drop PLOGIs from fabric node till LOGO processing completes > > The domain controller PLOGI's concurrent with prior LOGO's/unreg_rpi's > completing created a race condition where driver rpi ref count can > inadvertantly hit 0 and the rpi attem

Re: [PATCH] be2iscsi change of ownership from Emulex to Avago Technologies recently. We like to get the following updates in: changed "Emulex" to "Avago Technologies", changed email addresses fro

2015-05-25 Thread James Bottomley
On Thu, 2015-05-14 at 23:16 -0700, Minh Tran wrote: > Signed-off-by: Minh Tran > Signed-off-by: Jayamohan Kallickal > --- > MAINTAINERS | 6 -- > drivers/scsi/be2iscsi/be.h | 6 +++--- > drivers/scsi/be2iscsi/be_cmds.c | 6 +++--- > drivers/scsi/be2iscsi/be_cmd

Re: [PATCH-v2 2/9] target/pr: Use atomic bitop for se_dev_entry->pr_reg reservation check

2015-05-25 Thread Nicholas A. Bellinger
On Fri, 2015-05-22 at 12:12 +0200, Bart Van Assche wrote: > On 05/22/15 08:11, Nicholas A. Bellinger wrote: > > diff --git a/include/target/target_core_base.h > > b/include/target/target_core_base.h > > index e2c0eaf..def5bc8 100644 > > --- a/include/target/target_core_base.h > > +++ b/include/tar

Re: [PATCH-v2 0/9] target: se_node_acl + se_lun RCU conversions

2015-05-25 Thread Nicholas A. Bellinger
On Fri, 2015-05-22 at 12:15 +0200, Bart Van Assche wrote: > On 05/22/15 08:11, Nicholas A. Bellinger wrote: > > Here is -v2 series for converting LIO target se_node_acl + se_lun > > mapping tables from fixed size arrays to dynamic RCU hlist_heads. > > The full list of new sparse warnings introduce

Re: [PATCH-v2 1/9] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-25 Thread Nicholas A. Bellinger
On Fri, 2015-05-22 at 13:31 +0200, Christoph Hellwig wrote: > On Fri, May 22, 2015 at 01:55:30AM -0700, Nicholas A. Bellinger wrote: > > > This update will now be racy, ditto for the read/write_bytes update > > > later. > > > > This should become an atomic_long_t increment, yes..? > > Yes. Conve

Re: [PATCH-v2 2/9] target/pr: Use atomic bitop for se_dev_entry->pr_reg reservation check

2015-05-25 Thread Nicholas A. Bellinger
On Fri, 2015-05-22 at 13:34 +0200, Christoph Hellwig wrote: > On Fri, May 22, 2015 at 02:05:57AM -0700, Nicholas A. Bellinger wrote: > > On Fri, 2015-05-22 at 10:26 +0200, Christoph Hellwig wrote: > > > On Fri, May 22, 2015 at 06:11:04AM +, Nicholas A. Bellinger wrote: > > > > + clear_bit

Re: [PATCH-v2 2/9] target/pr: Use atomic bitop for se_dev_entry->pr_reg reservation check

2015-05-25 Thread Nicholas A. Bellinger
On Fri, 2015-05-22 at 13:52 +0200, Christoph Hellwig wrote: > > > > -/* > > - * this function can be called with struct se_device->dev_reservation_lock > > - * when register_move = 1 > > - */ > > static void __core_scsi3_add_registration( > > struct se_device *dev, > > struct se_node_acl

Re: [PATCH 2/4] target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage

2015-05-25 Thread Nicholas A. Bellinger
On Fri, 2015-05-22 at 13:56 +0200, Christoph Hellwig wrote: > > @@ -683,7 +679,7 @@ void core_tpg_remove_lun( > > dev->export_count--; > > spin_unlock(&dev->se_port_lock); > > > > - lun->lun_se_dev = NULL; > > + rcu_assign_pointer(lun->lun_se_dev, NULL)

Re: [PATCH-v2 1/9] target: Convert se_node_acl->device_list[] to RCU hlist

2015-05-25 Thread Nicholas A. Bellinger
On Mon, 2015-05-25 at 15:14 -0700, Nicholas A. Bellinger wrote: > On Fri, 2015-05-22 at 13:31 +0200, Christoph Hellwig wrote: > > On Fri, May 22, 2015 at 01:55:30AM -0700, Nicholas A. Bellinger wrote: > > > > > + kref_put(&orig->pr_kref, target_pr_kref_release); > > > > > +

[PATCH-v3 04/10] target/pr: cleanup core_scsi3_pr_seq_non_holder

2015-05-25 Thread Nicholas A. Bellinger
From: Christoph Hellwig Clean up the mess of registered variables, and pass the isid mismatch flag explicitly instead of overloading the registration type. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger --- drivers/target/target_core_pr.c | 44 +

[PATCH-v3 06/10] target: Convert se_tpg->acl_node_lock to ->acl_node_mutex

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch converts se_tpg->acl_node_lock to struct mutex, so that ->acl_node_acl walkers in core_clear_lun_from_tpg() can block when calling core_disable_device_list_for_node(). It also updates core_dev_add_lun() to hold ->acl_node_mutex when calling core_tpg_add_node_t

[PATCH-v3 10/10] target: Drop left-over se_lun->lun_status

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger Now that se_portal_group->tpg_lun_hlist is a RCU protected hlist, go ahead and drop the left-over lun->lun_status usage. Reported-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger --- drivers/target/target_core_tpg.c | 6 -- include/target/target_core_base.

[PATCH-v3 00/10] target: se_node_acl + se_lun RCU conversions

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger Hi all, Here is -v3 series for converting LIO target se_node_acl + se_lun mapping tables from fixed size arrays to dynamic RCU hlist_heads. This turns fast-path I/O into a lock-less RCU reader using existing percpu based se_lun->lun_ref logic, and converts the RCU updat

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

2015-05-25 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. It converts transport_lookup_*_lun() fast-path code to use RCU read path primitives when looking up se_dev

[PATCH-v3 09/10] target: Only reset specific dynamic entries during lun_group creation

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch changes core_tpg_add_node_to_devs() to avoid unnecessarly resetting every se_dev_entry in se_node_acl->tpg_lun_hlist when the operation is driven by an explicit configfs se_lun->lun_group creation via core_dev_add_lun() to only update a single se_lun. Otherwis

[PATCH-v3 04/10] target/pr: cleanup core_scsi3_pr_seq_non_holder

2015-05-25 Thread Nicholas A. Bellinger
From: Christoph Hellwig Clean up the mess of registered variables, and pass the isid mismatch flag explicitly instead of overloading the registration type. Signed-off-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger --- drivers/target/target_core_pr.c | 44 +

[PATCH-v3 07/10] target: Convert core_tpg_deregister to use list splice

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch converts core_tpg_deregister() to perform a list splice for any remaining dynamically generated se_node_acls attached to se_tpg, before calling kfree(nacl) to free memory. Cc: Hannes Reinecke Cc: Christoph Hellwig Cc: Sagi Grimberg Signed-off-by: Nicholas B

Re: [PATCH-v3 00/10] target: se_node_acl + se_lun RCU conversions

2015-05-25 Thread Nicholas A. Bellinger
Please ignore this resend.. On Tue, 2015-05-26 at 06:40 +, Nicholas A. Bellinger wrote: > From: Nicholas Bellinger > > Hi all, > > Here is -v3 series for converting LIO target se_node_acl + se_lun > mapping tables from fixed size arrays to dynamic RCU hlist_heads. > > This turns fast-path

[PATCH-v3 05/10] target: Convert se_portal_group->tpg_lun_list[] to RCU hlist

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch converts the fixed size se_portal_group->tpg_lun_list[] to use modern RCU with hlist_head in order to support an arbitary number of se_lun ports per target endpoint. It includes dropping core_tpg_alloc_lun() from core_dev_add_lun(), and calling it directly fro

[PATCH-v3 08/10] target: Drop unused se_lun->lun_acl_list

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger Cc: Hannes Reinecke Cc: Christoph Hellwig Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger --- drivers/target/target_core_device.c | 15 --- drivers/target/target_core_tpg.c| 4 include/target/target_core_base.h | 3 --- 3 files changed, 2

[PATCH-v3 03/10] target/pr: Change alloc_registration to avoid pr_reg_tg_pt_lun

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch changes __core_scsi3_do_alloc_registration() code to drop pr_reg->pr_reg_tg_pt_lun pointer usage in favor of a new pr_reg RPTI + existing target_lun. It also includes changes to REGISTER, REGISTER_AND_MOVE and APTPL feature bit codepaths. Cc: Hannes Reinecke

[PATCH-v3 06/10] target: Convert se_tpg->acl_node_lock to ->acl_node_mutex

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch converts se_tpg->acl_node_lock to struct mutex, so that ->acl_node_acl walkers in core_clear_lun_from_tpg() can block when calling core_disable_device_list_for_node(). It also updates core_dev_add_lun() to hold ->acl_node_mutex when calling core_tpg_add_node_t

[PATCH-v3 02/10] target/pr: Use atomic bitop for se_dev_entry->deve_flags reservation check

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch converts the core_scsi3_pr_seq_non_holder() check for non reservation holding registrations to use an atomic bitop in ->deve_flags to determine if a registration is currently active. It also includes associated a set_bit() in __core_scsi3_add_registration() an

[PATCH-v3 03/10] target/pr: Change alloc_registration to avoid pr_reg_tg_pt_lun

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch changes __core_scsi3_do_alloc_registration() code to drop pr_reg->pr_reg_tg_pt_lun pointer usage in favor of a new pr_reg RPTI + existing target_lun. It also includes changes to REGISTER, REGISTER_AND_MOVE and APTPL feature bit codepaths. Cc: Hannes Reinecke

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

2015-05-25 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. It converts transport_lookup_*_lun() fast-path code to use RCU read path primitives when looking up se_dev

[PATCH-v3 10/10] target: Drop left-over se_lun->lun_status

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger Now that se_portal_group->tpg_lun_hlist is a RCU protected hlist, go ahead and drop the left-over lun->lun_status usage. Reported-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger --- drivers/target/target_core_tpg.c | 6 -- include/target/target_core_base.

[PATCH-v3 09/10] target: Only reset specific dynamic entries during lun_group creation

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch changes core_tpg_add_node_to_devs() to avoid unnecessarly resetting every se_dev_entry in se_node_acl->tpg_lun_hlist when the operation is driven by an explicit configfs se_lun->lun_group creation via core_dev_add_lun() to only update a single se_lun. Otherwis

[PATCH-v3 02/10] target/pr: Use atomic bitop for se_dev_entry->deve_flags reservation check

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch converts the core_scsi3_pr_seq_non_holder() check for non reservation holding registrations to use an atomic bitop in ->deve_flags to determine if a registration is currently active. It also includes associated a set_bit() in __core_scsi3_add_registration() an

[PATCH-v3 07/10] target: Convert core_tpg_deregister to use list splice

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger This patch converts core_tpg_deregister() to perform a list splice for any remaining dynamically generated se_node_acls attached to se_tpg, before calling kfree(nacl) to free memory. Cc: Hannes Reinecke Cc: Christoph Hellwig Cc: Sagi Grimberg Signed-off-by: Nicholas B

[PATCH-v3 08/10] target: Drop unused se_lun->lun_acl_list

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger Cc: Hannes Reinecke Cc: Christoph Hellwig Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger --- drivers/target/target_core_device.c | 15 --- drivers/target/target_core_tpg.c| 4 include/target/target_core_base.h | 3 --- 3 files changed, 2

[PATCH-v3 00/10] target: se_node_acl + se_lun RCU conversions

2015-05-25 Thread Nicholas A. Bellinger
From: Nicholas Bellinger Hi all, Here is -v3 series for converting LIO target se_node_acl + se_lun mapping tables from fixed size arrays to dynamic RCU hlist_heads. This turns fast-path I/O into a lock-less RCU reader using existing percpu based se_lun->lun_ref logic, and converts the RCU updat