Skip to content

Commit 7c3bebc

Browse files
RajuRangojudavem330
authored andcommitted
cxgb4: request the TX CIDX updates to status page
For adapters which support the SGE Doorbell Queue Timer facility, we configured the Ethernet TX Queues to send CIDX Updates to the Associated Ethernet RX Response Queue with CPL_SGE_EGR_UPDATE messages to allow us to respond more quickly to the CIDX Updates. But, this was adding load to PCIe Link RX bandwidth and, potentially, resulting in higher CPU Interrupt load. This patch requests the HW to deliver the CIDX updates to the TX queue status page rather than generating an ingress queue message (as an interrupt). With this patch, the load on RX bandwidth is reduced and a substantial improvement in BW is noticed at lower IO sizes. Fixes: d429005 ("cxgb4/cxgb4vf: Add support for SGE doorbell queue timer") Signed-off-by: Raju Rangoju <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent d4e4fdf commit 7c3bebc

File tree

1 file changed

+2
-6
lines changed
  • drivers/net/ethernet/chelsio/cxgb4

1 file changed

+2
-6
lines changed

drivers/net/ethernet/chelsio/cxgb4/sge.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3791,15 +3791,11 @@ int t4_sge_alloc_eth_txq(struct adapter *adap, struct sge_eth_txq *txq,
37913791
* write the CIDX Updates into the Status Page at the end of the
37923792
* TX Queue.
37933793
*/
3794-
c.autoequiqe_to_viid = htonl((dbqt
3795-
? FW_EQ_ETH_CMD_AUTOEQUIQE_F
3796-
: FW_EQ_ETH_CMD_AUTOEQUEQE_F) |
3794+
c.autoequiqe_to_viid = htonl(FW_EQ_ETH_CMD_AUTOEQUEQE_F |
37973795
FW_EQ_ETH_CMD_VIID_V(pi->viid));
37983796

37993797
c.fetchszm_to_iqid =
3800-
htonl(FW_EQ_ETH_CMD_HOSTFCMODE_V(dbqt
3801-
? HOSTFCMODE_INGRESS_QUEUE_X
3802-
: HOSTFCMODE_STATUS_PAGE_X) |
3798+
htonl(FW_EQ_ETH_CMD_HOSTFCMODE_V(HOSTFCMODE_STATUS_PAGE_X) |
38033799
FW_EQ_ETH_CMD_PCIECHN_V(pi->tx_chan) |
38043800
FW_EQ_ETH_CMD_FETCHRO_F | FW_EQ_ETH_CMD_IQID_V(iqid));
38053801

0 commit comments

Comments
 (0)