Re: [PATCH v1 00/21] iser target fixes for 3.19

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/20/2014 8:09 AM, Nicholas A. Bellinger wrote:
Hi Sagi & Co,

On Wed, 2014-11-19 at 19:18 +0200, Sagi Grimberg wrote:
Hey Nic & Co,

This series mainly consists of error flow fixes:
Patches 1-2: Some logging refactoring. It is much easier to
	instruct a user to increase the log level in this case.
Patches 3-10: Some error flow fixes for live target stack shutdown
	and cable pull with stress IO scenarios.
Patches 11-15: Remove t10_pi attribute and fix a crash in due to a bad
	dereference.
Patches 16-19: Fixes in the area of bond failover scenarios
Patch 20: Workaround for live target stack unload in the presence
	of multiple (50+) of active sessions.
Patch 21: Get rid of redundant wait for logout completion.

While this set makes things better, there is still some work
left to do especially in the area of multi-session error flows.

The set applies cleanly on master branch (with or without the isert
patch from Chris Moore).

Changes from v0:
- Fix CHAP and mutual CHAP login breakage introduced in patch #9
   kudos to Slava for staying alert
- Fix mthca/mlx4 HCAs breakage introduced in patch #13 (non supporting PI)
   kudos to Adam for finding this quickly
- Removed patch "Remove t10_pi attribute altogether".
   Instead, included patch "Expose supported protection ops according to t10_pi"
   if t10_pi is not set we fall to SW mode.
- Added patch #21 to get rid of redundant wait for logout completion

Sagi Grimberg (21):
   iser-target: Use debug_level parameter to control logging level
   iser-target: Adjust log levels and prettify some prints
   iscsi-target: Add call to wait_conn in establishment error flow
   iser-target: Destroy the connection when getting a connect error
     event
   iser-target: Initiate connection termination only once
   iser-target: Don't deffer disconnected handler to a work
   iser-target: Reject connect request in failure path
   iser-target: Introduce state ISER_CONN_FULL_FEATURE
   iser-target: Parallelize CM connection establishment
   iser-target: Use kref_get_unless_zero in connected_handler
   iser-target: Move pi context allocation to a function
   iser-target: Move protection information handling to a routine
   iser-target: Allocate PI contexts dynamically
   iser-target: Fix NULL dereference in SW mode DIF
   iscsi,iser-target: Expose supported protection ops according to
     t10_pi
   iser-target: Acquire conn_mutex when changing connection state
   iser-target: Move cma_id setup to a function
   iser-target: Handle ADDR_CHANGE event for listener cm_id
   iser-target: Deffer the last part of wait_conn to a work
   iser-target: Work-around live target stack shutdown resource cleanup
   iser-target: Get rid of redundant wait for logout_comp

  drivers/infiniband/ulp/isert/ib_isert.c   | 1030 +++++++++++++++++------------
  drivers/infiniband/ulp/isert/ib_isert.h   |   42 ++-
  drivers/target/iscsi/iscsi_target_login.c |   10 +-
  3 files changed, 670 insertions(+), 412 deletions(-)


Thanks for this detailed series of active I/O shutdown fixes, and
apologies for the delayed response to -v0 posting.

So which patches would you consider as >= v3.14.y + v3.10.y material..?

I would say that all patches that don't refer to PI which are:

iser-target: Move pi context allocation to a function
iser-target: Move protection information handling to a routine
iser-target: Allocate PI contexts dynamically
iser-target: Fix NULL dereference in SW mode DIF
iscsi,iser-target: Expose supported protection ops according to t10_pi


My only immediate concern is that a fair amount of these patches will
need to be CC'ed for stable, so a re-spin without patch #1 + #2 would
make life easier for myself and stable maintainers when applying these
fixes to future stable versions.  Would you mind posting a -v2..?

Hmmm, given the fact I have ~25 more patches piped on top of this
would be a bit of a hassle...


To the logging changes themselves, I'd prefer sticking with
CONFIG_DYNAMIC_DEBUG to match iscsi_target_mod + friends instead of a
new module parameter unless there is something you need for debugging
these tough shutdown cases that pr_debug can't otherwise do..?

There are a couple of reason why I suggested the logging changes:

1. I find it easier to get end users to provide additional info in this
way.

2. I desperately need log levels rather the all-or-nothing existing
way. pr_debug adds too much noise when working on control plain flows,
and it is just not feasible (for me at least) to inspect logs with
pr_debug on for 100+ active sessions doing IO. And pr_info will be
logged by default so I can't use it for "debug info".

3. I find __func__ print extremely useful and would like to avoid
explicitly adding it to each print in the code. Moreover I am thinking
of adding some identifier to the prints in the multi-connection case
where it is important to distinguish between connections. Currently I
print the pointer, but I was thinking of something nicer like what
iscsi/drbd is doing.

Would it help if I try and break patches 1+2 to stable-applicable
and not-stable-applicable?

Having said that, I'll lose these changes if you have a strong
objection here.

Cheers,
Sagi.
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux