IB/qib: Convert opcode counters to per-context
This fix changes the opcode relative counters for receive to per context. Profiling has shown that when mulitple contexts are being used there is a lot of cache activity associated with these counters. The code formerly kept these counters per port, but only provided the interface to read per HCA. This patch converts the read of counters to per HCA and adds the debugfs hooks to be able to read the file as a sequence of opcodes. Reviewed-by: Dean Luick <dean.luick@intel.com> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
committed by
Roland Dreier
parent
85caafe307
commit
ddb8876589
@@ -645,9 +645,11 @@ void qib_ib_rcv(struct qib_ctxtdata *rcd, void *rhdr, void *data, u32 tlen)
|
||||
} else
|
||||
goto drop;
|
||||
|
||||
opcode = be32_to_cpu(ohdr->bth[0]) >> 24;
|
||||
ibp->opstats[opcode & 0x7f].n_bytes += tlen;
|
||||
ibp->opstats[opcode & 0x7f].n_packets++;
|
||||
opcode = (be32_to_cpu(ohdr->bth[0]) >> 24) & 0x7f;
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
rcd->opstats->stats[opcode].n_bytes += tlen;
|
||||
rcd->opstats->stats[opcode].n_packets++;
|
||||
#endif
|
||||
|
||||
/* Get the destination QP number. */
|
||||
qp_num = be32_to_cpu(ohdr->bth[1]) & QIB_QPN_MASK;
|
||||
|
||||
Reference in New Issue
Block a user