diff options
| author | Navdeep Parhar <np@FreeBSD.org> | 2019-03-28 21:22:28 +0000 |
|---|---|---|
| committer | Navdeep Parhar <np@FreeBSD.org> | 2019-03-28 21:22:28 +0000 |
| commit | dd3b96ecec20ba1770da5ee8ed6c94f01730717c (patch) | |
| tree | 528911bce6efbf06d766e859c0b483a3865ec8e7 /sys/dev | |
| parent | 841613dcdc0d7d7ef96cdcb7f461ffb9574dc500 (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/cxgbe/adapter.h | 2 | ||||
| -rw-r--r-- | sys/dev/cxgbe/t4_main.c | 3 | ||||
| -rw-r--r-- | sys/dev/cxgbe/t4_sge.c | 7 |
3 files changed, 12 insertions, 0 deletions
diff --git a/sys/dev/cxgbe/adapter.h b/sys/dev/cxgbe/adapter.h index 806f1faea0a3..e8eeb3333ac0 100644 --- a/sys/dev/cxgbe/adapter.h +++ b/sys/dev/cxgbe/adapter.h @@ -895,6 +895,8 @@ struct adapter { const char *last_op; const void *last_op_thr; int last_op_flags; + + int swintr; }; #define ADAPTER_LOCK(sc) mtx_lock(&(sc)->sc_lock) diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c index e3c0c5fe2755..99c287a689ee 100644 --- a/sys/dev/cxgbe/t4_main.c +++ b/sys/dev/cxgbe/t4_main.c @@ -6031,6 +6031,9 @@ t4_sysctls(struct adapter *sc) CTLTYPE_STRING | CTLFLAG_RD, sc, INTR_CPUS, sysctl_cpus, "A", "preferred CPUs for interrupts"); + SYSCTL_ADD_INT(ctx, children, OID_AUTO, "swintr", CTLFLAG_RW, + &sc->swintr, 0, "software triggered interrupts"); + /* * dev.t4nex.X.misc. Marked CTLFLAG_SKIP to avoid information overload. */ diff --git a/sys/dev/cxgbe/t4_sge.c b/sys/dev/cxgbe/t4_sge.c index df7e3f43a8b9..f69d0b4b9a06 100644 --- a/sys/dev/cxgbe/t4_sge.c +++ b/sys/dev/cxgbe/t4_sge.c @@ -1394,11 +1394,18 @@ void t4_intr_err(void *arg) { struct adapter *sc = arg; + uint32_t v; const bool verbose = (sc->debug_flags & DF_VERBOSE_SLOWINTR) != 0; if (sc->flags & ADAP_ERR) return; + v = t4_read_reg(sc, MYPF_REG(A_PL_PF_INT_CAUSE)); + if (v & F_PFSW) { + sc->swintr++; + t4_write_reg(sc, MYPF_REG(A_PL_PF_INT_CAUSE), v); + } + t4_slow_intr_handler(sc, verbose); } |
