IB/hfi1: Convert PortXmitWait/PortVLXmitWait counters to flit times
HFI's counters SendWaitCnt and SendWaitVlCnt are in units of TXE cycle time (at 805MHz). OPA counters PortXmitWait and PortVLXmtWait are in units of flit times. Convert the counter values to flit units using following conversion formula: PortXmitWait = SendWaitCnt * 2 * (4 /link_width) * (25 Gbps /link_speed) PortVLXmitWait = SendWaitVLCnt * 2 * (4 /link_width) * (25 Gbps /link_speed) At link up or downgrade events, the link width can change. To ensure accurate counter calculations, sample the counters after the events, during counter requests, and then aggregate the OPA counters. Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> Signed-off-by: Kamenee Arumugam <kamenee.arumugam@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
此提交包含在:
@@ -858,6 +858,13 @@ struct hfi1_pportdata {
|
||||
struct work_struct linkstate_active_work;
|
||||
/* Does this port need to prescan for FECNs */
|
||||
bool cc_prescan;
|
||||
/*
|
||||
* Sample sendWaitCnt & sendWaitVlCnt during link transition
|
||||
* and counter request.
|
||||
*/
|
||||
u64 port_vl_xmit_wait_last[C_VL_COUNT + 1];
|
||||
u16 prev_link_width;
|
||||
u64 vl_xmit_flit_cnt[C_VL_COUNT + 1];
|
||||
};
|
||||
|
||||
typedef int (*rhf_rcv_function_ptr)(struct hfi1_packet *packet);
|
||||
|
新增問題並參考
封鎖使用者