]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r343666, r343861-r343862, r343923, r343968, r345660, and r345810.
authorNavdeep Parhar <np@FreeBSD.org>
Sat, 13 Apr 2019 19:23:11 +0000 (19:23 +0000)
committerNavdeep Parhar <np@FreeBSD.org>
Sat, 13 Apr 2019 19:23:11 +0000 (19:23 +0000)
commitaea5adec8a2cbf38c1b11689df30217b7830a444
tree50ab411cfab61d86282349765eabf00c53a79ac6
parentea235a20afe1ac666a42be87edd736183c3405e2
MFC r343666, r343861-r343862, r343923, r343968, r345660, and r345810.

r343666:
cxgbe(4): Improved error reporting and diagnostics.

"slow" interrupt handler:
- Expand the list of INT_CAUSE registers known to the driver.
- Add decode information for many more bits but decouple it from the
  rest of intr_info so that it is entirely optional.
- Call t4_fatal_err exactly once, and from the top level PL intr handler.

t4_fatal_err:
- Use t4_shutdown_adapter from the common code to stop the adapter.
- Stop servicing slow interrupts after the first fatal one.

Driver/firmware interaction:
- CH_DUMP_MBOX: note whether the mailbox being dumped is a command or a
  reply or something else.
- Log the raw value of pcie_fw for some errors.
- Use correct log levels (debug vs. error).

Sponsored by: Chelsio Communications

r343861:
cxgbe(4): Auto-dump the device log on a mailbox timeout or when the
firmware reports an error in pcie_fw.

Sponsored by: Chelsio Communications

r343862:
cxgbe(4): Auto-dump the CIM block's logic analyzer on a TIMER0 interrupt.

Sponsored by: Chelsio Communications

r343923:
cxgbe(4): Delay the panic due to a fatal error by 30s.

This lets information logged by the interrupt handler reach the system
log before the system goes down.

r343968:
cxgbe(4): Ignore unused interrupts.

Sponsored by: Chelsio Communications

r345660:
cxgbe(4): Count and clear interrupts generated at the software's request.

An interrupt can be requested by setting the F_SWINT bit in PL_PF_CTL.

Sponsored by: Chelsio Communications

r345810:
cxgbe(4): Add a flag to indicate that bits in interrupt cause but not in
interrupt enable are not fatal.

The firmware sets up all the interrupt enables based on run time
configuration, which means the information in the enables is more
accurate than what's compiled into the driver.  This change also allows
the fatal bits to be updated without any changes in the driver in some
cases.

Sponsored by: Chelsio Communications
sys/dev/cxgbe/adapter.h
sys/dev/cxgbe/common/common.h
sys/dev/cxgbe/common/t4_hw.c
sys/dev/cxgbe/t4_main.c
sys/dev/cxgbe/t4_sge.c