Project

General

Profile

Bug #5251

emlxs sometimes panics once after switching to target mode

Added by Hans Rosenfeld almost 5 years ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
-
Start date:
2014-10-22
Due date:
% Done:

0%

Estimated time:
Difficulty:
Hard
Tags:
needs-triage

Description

We (Nexenta) have discovered that on some systems (SuperMicro), with some HBAs, emlxs will panic due to a corrupted fct_cmd_t on the first boot after switching from initiator to target mode. On subsequent reboots this doesn't happen again, so the HBA is usable as FC target.

It seems to a combination of a bad (or just odd) HBA board with bad/odd SuperMicro hardware/firmware.

>$c
emlxs_fct_cmd_acquire+0x3e(ffffff793aa9e858, ffffff7943463f80, 12)
emlxs_fct_pkt_comp+0x49(ffffff7962d81880)
emlxs_iodone+0x98(ffffff7962d819f0)
emlxs_pkt_complete+0x258(ffffff7962d819f0, 3, 2, 1)
emlxs_els_handle_event+0x387(ffffff793aa7a000, ffffff793aa9bd30, ffffff7962d81a40)
emlxs_proc_channel_event+0x596(ffffff793aa7a000, ffffff793aa9bd30, ffffff7962d81a40)
emlxs_sli4_process_wqe_cmpl+0x1a7(ffffff793aa7a000, ffffff793aa7bc20, ffffff0358e21a90)
emlxs_sli4_process_cq+0x1d1(ffffff793aa7a000, ffffff793aa7bc20)
emlxs_sli4_process_eq+0xdf(ffffff793aa7a000, ffffff793aa7b8b0)
emlxs_sli4_msi_intr+0x9e(ffffff793aa7a000, 7)
apix_dispatch_by_vector+0x8c(21)
apix_dispatch_lowlevel+0x25(21, 0)
switch_sp_and_call+0x13()
apix_do_interrupt+0x387(ffffff0358debae0, b)
_interrupt+0xba()
mach_cpu_idle+6()
cpu_idle+0x11a()
idle+0xa7()

> ffffff7962d81880::whatis
ffffff7962d81880 is allocated from kmem_alloc_896:
            ADDR          BUFADDR        TIMESTAMP           THREAD
                            CACHE          LASTLOG         CONTENTS
ffffff79639746f0 ffffff7962d81880       13474f64f3 ffffff0359ab4c40
                 ffffff741963a008 ffffff74cdd34a40                0
                 kmem_cache_alloc_debug+0x2e8
                 kmem_cache_alloc+0x2db
                 kmem_alloc+0x4b
                 emlxs_pkt_alloc+0x56
                 emlxs_fct_send_els_cmd+0x57
                 emlxs_fct_send_cmd+0x5d
                 fct_process_plogi+0x21d
                 fct_process_els+0x345
                 fct_walk_discovery_queue+0xd4
                 fct_port_worker+0xed
                 taskq_thread+0x2d0
                 thread_start+8

> ffffff7962d81880::print -at fc_packet_t pkt_fca_private
ffffff7962d81948 opaque_t pkt_fca_private = 0xffffff7962d819f0

> 0xffffff7962d819f0::whatis
ffffff7962d819f0 is ffffff7962d81880+170, allocated from kmem_alloc_896:
            ADDR          BUFADDR        TIMESTAMP           THREAD
                            CACHE          LASTLOG         CONTENTS
ffffff79639746f0 ffffff7962d81880       13474f64f3 ffffff0359ab4c40
                 ffffff741963a008 ffffff74cdd34a40                0
                 kmem_cache_alloc_debug+0x2e8
                 kmem_cache_alloc+0x2db
                 kmem_alloc+0x4b
                 emlxs_pkt_alloc+0x56
                 emlxs_fct_send_els_cmd+0x57
                 emlxs_fct_send_cmd+0x5d
                 fct_process_plogi+0x21d
                 fct_process_els+0x345
                 fct_walk_discovery_queue+0xd4
                 fct_port_worker+0xed
                 taskq_thread+0x2d0
                 thread_start+8

> 0xffffff7962d819f0::print -at emlxs_buf_t fct_cmd
ffffff7962d81b78 fct_cmd_t *fct_cmd = 0xffffff7943463f80
> 0xffffff7943463f80::whatis
ffffff7943463f80 is allocated from kmem_alloc_640:
            ADDR          BUFADDR        TIMESTAMP           THREAD
                            CACHE          LASTLOG         CONTENTS
ffffff7957a5ad30 ffffff7943463f80       198802f11e ffffff793308d7c0
                 ffffff7419639008 ffffff74e6d965c0 ffffff770aee34a0
                 kmem_cache_alloc_debug+0x2e8
                 kmem_cache_alloc+0xd4
                 kmem_zalloc+0x47
                 segvn_vpage+0x5f
                 segvn_advise+0x11a
                 as_ctl+0x191
                 memcntl+0x4b6
                 dtrace_systrace_syscall32+0xe4

> 0xffffff7943463f80::bufctl -v
            ADDR          BUFADDR        TIMESTAMP           THREAD
                            CACHE          LASTLOG         CONTENTS
ffffff7943463f80    d000d000d000d    d000d000d000d    d000d000d000d
                    d000d000d000d    d000d000d000d    d000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d
                 0xd000d000d000d

Also available in: Atom PDF