net/enic: use 64B completion queue entries if available
authorHyong Youb Kim <hyonkim@cisco.com>
Thu, 7 Jan 2021 14:01:54 +0000 (06:01 -0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 19 Jan 2021 02:30:32 +0000 (03:30 +0100)
commit8b428cb5a92efc5da2b48faec47528d06367cf4e
tree5dd119a02c6ccc0aa6ee17305a88cbcbddbd554f
parent26fe208ad81fc7439728d743bccd4b2a32701bfe
net/enic: use 64B completion queue entries if available

Latest VIC adapters support 64B CQ (completion queue) entries as well
as 16B entries available on all VIC models. 64B entries can greatly
reduce cache contention (CPU stall cycles) between DMA writes (Rx
packet descriptors) and polling CPU. The effect is very noticeable on
Intel platforms with DDIO. As most UCS servers are based on Intel
platforms, enable and use 64B CQ entries by default, if
available. Also, add devarg 'cq64' so the user can explicitly disable
64B CQ.

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
doc/guides/nics/enic.rst
doc/guides/rel_notes/release_21_02.rst
drivers/net/enic/base/cq_enet_desc.h
drivers/net/enic/base/vnic_dev.c
drivers/net/enic/base/vnic_dev.h
drivers/net/enic/base/vnic_devcmd.h
drivers/net/enic/enic.h
drivers/net/enic/enic_ethdev.c
drivers/net/enic/enic_main.c
drivers/net/enic/enic_res.c
drivers/net/enic/enic_rxtx.c