Re: [PATCH v2 00/32] [NEW] efct: Broadcom (Emulex) FC Target driver

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

 



James Smart wrote:
> This patch set is a request to incorporate the new Broadcom
> (Emulex) FC target driver, efct, into the kernel source tree.
>
> The driver source has been Announced a couple of times, the last
> version on 12/18/2018. The driver has been hosted on gitlab for
> review has had contributions from the community.
>   gitlab (git@xxxxxxxxxx:jsmart/efct-Emulex_FC_Target.git)
>
> The driver integrates into the source tree at the (new)
> drivers/scsi/elx subdirectory.
>
> The driver consists of the following components:
> - A libefc_sli subdirectory: This subdirectory contains a library that
>   encapsulates common definitions and routines for an Emulex SLI-4
>   adapter.
> - A libefc subdirectory: This subdirectory contains a library of
>   common routines. Of major import is a number of routines that
>   implement a FC Discovery engine for target mode.
> - An efct subdirectory: This subdirectory contains the efct target
>   mode device driver. The driver utilizes the above librarys and
>   plugs into the SCSI LIO interfaces. The driver is SCSI only at
>   this time.
>
> The patches populate the libraries and device driver and can only
> be compiled as a complete set.
>
> This driver is completely independent from the lpfc device driver
> and there is no overlap on PCI ID's.
>
> The patches have been cut against the 5.6/scsi-queue branch.
>
> Thank you to those that have contributed to the driver in the past.
>
> Review comments welcome!
>
> -- james
>
>
> V2 modifications:
>
> Contains the following modifications based on prior review comments:
>   Indentation/Alignment/Spacing changes
>   Comments: format cleanup; removed obvious or unnecessary comments;
>     Added comments for clarity.
>   Headers use #ifndef comparing for prior inclusion
>   Cleanup structure names (remove _s suffix)
>   Encapsulate use of macro arguments
>   Refactor to remove static function declarations for static local
> routines Removed unused variables
>   Fix SLI4_INTF_VALID_MASK for 32bits
>   Ensure no BIT() use
>   Use __ffs() in page count macro
>   Reorg to move field defines out of structure definition
>   Commonize command building routines to reduce duplication
>   LIO interface:
>     Removed scsi initiator includes
>     Cleaned up interface defines
>     Removed lio WWN version attribute.
>     Expanded macros within logging macros
>     Cleaned up lio state setting macro
>     Remove __force use
>     Modularized session debugfs code so can be easily replaced.
>     Cleaned up abort task handling. Return after initiating.
>     Modularized where possible to reduce duplication
>     Convert from kthread to workqueue use
>     Remove unused macros
>   Add missing TARGET_CORE build attribute
>   Fix kbuild test robot warnings
>
> Comments not addressed:
>   Use of __packed: not believed necessary
>   Session debugfs code remains. There is not yet a common lio
>     mechanism to replace with.

There seems to be an issue with this version and also the code from
October on my setup. I am running 5.5.0-rc3 but it also happens
on earlier kernel versions.

While shutting down the target after some testing I execute

rmdir /sys/kernel/config/target/efct/10:00:00:90:fa:f0:89:ba/tpgt_0/acls/10:00:00:90:fa:f0:89:bb

but this command never returns and the shutdown script hangs.

The code from August [1] and a refactored version [2] do not exhibit
this problem.

[  245.485090] efct_TPG[0]_LUN[0] - Removed ACL for InitiatorNode: 10:00:00:90:fa:f0:89:bb Mapped LUN: 0
[  245.497691] efct_TPG[0] - Freeing ACL for efct InitiatorNode: 10:00:00:90:fa:f0:89:bb Mapped LUN: 0

[  385.687531] sysrq: Show Blocked State
[  385.687547]   task                PC stack   pid father
[  385.687610] efct:0:0        D    0  3241      2 0x80004000
[  385.687615] Call Trace:
[  385.687628]  __schedule+0x28e/0x7a0
[  385.687635]  ? try_to_del_timer_sync+0x45/0x70
[  385.687639]  ? _raw_spin_lock_irqsave+0x14/0x40
[  385.687643]  schedule+0x46/0xb0
[  385.687646]  schedule_timeout+0x118/0x2d0
[  385.687650]  ? __next_timer_interrupt+0xb0/0xb0
[  385.687653]  wait_for_completion_timeout+0x87/0xf0
[  385.687657]  ? wake_up_q+0x90/0x90
[  385.687682]  efct_intr_thread+0x5a/0xa0 [efct]
[  385.687695]  ? efct_device_detach+0x110/0x110 [efct]
[  385.687700]  kthread+0xdc/0x110
[  385.687713]  ? efct_device_detach+0x110/0x110 [efct]
[  385.687716]  ? kthread_park+0xa0/0xa0
[  385.687720]  ret_from_fork+0x2e/0x40
[  385.687726] rmdir           D    0  3368   3365 0x00000000
[  385.687730] Call Trace:
[  385.687735]  __schedule+0x28e/0x7a0
[  385.687739]  schedule+0x46/0xb0
[  385.687742]  schedule_timeout+0x1bd/0x2d0
[  385.687762]  ? efct_lio_close_session+0x3e/0xd0 [efct]
[  385.687780]  ? efct_lio_close_session+0x3e/0xd0 [efct]
[  385.687783]  ? wait_for_completion+0x2a/0xe0
[  385.687786]  wait_for_completion+0x8f/0xe0
[  385.687789]  ? wake_up_q+0x90/0x90
[  385.687820]  core_tpg_del_initiator_node_acl+0x73/0x100 [target_core_mod]
[  385.687827]  ? config_item_put.part.0+0x57/0xe0 [configfs]
[  385.687845]  target_fabric_nacl_base_release+0x20/0x30 [target_core_mod]
[  385.687851]  config_item_put.part.0+0x78/0xe0 [configfs]
[  385.687856]  config_item_put+0x11/0x20 [configfs]
[  385.687861]  configfs_rmdir+0x299/0x300 [configfs]
[  385.687866]  vfs_rmdir+0x6a/0x150
[  385.687869]  do_rmdir+0x16d/0x1a0
[  385.687873]  sys_rmdir+0x15/0x20
[  385.687876]  do_fast_syscall_32+0x87/0x280
[  385.687880]  entry_SYSENTER_32+0xaa/0x102
[  385.687884] EIP: 0xb7eebb89
[  385.687888] Code: ff 00 06 fc ff 30 06 fc ff 60 06 fc ff 90 06 fc ff d0 06 fc ff 00 07 fc ff 30 07 fc ff 70 07 fc ff 15 06 fc ff 35 06 fc ff 55 <06> fc ff 75 06 fc ff 12 06 fc ff 32 06 fc ff 52 06 fc ff 72 06 fc
[  385.687891] EAX: ffffffda EBX: bf9ea909 ECX: 00000000 EDX: bf9ea909
[  385.687893] ESI: bf9e9114 EDI: 00000002 EBP: bf9e9078 ESP: bf9e901c
[  385.687895] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b EFLAGS: 00000292

[1]
https://repo.or.cz/efct-Emulex_FC_Target/sherbszt.git/shortlog/refs/heads/v2-20190804
[2]
https://repo.or.cz/efct-Emulex_FC_Target/sherbszt.git/shortlog/refs/heads/v2-20191125

Sebastian




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux