On 6/28/2021 6:19 PM, Balazs Nemeth wrote:
External email: Use caution opening links or attachments
The call to recirc_depth_get involves accessing a TLS value. So read
that once, and store it on the stack for re-use while processing the
batch. The same goes for reading netdev_is_flow_api_enabled(), a
non-inlined function.
A small further suggestion:
The config other_config:hw-offload is read only once upon init, so for
netdev_is_flow_api_enabled(), we can have a global static variable to be
set only at init (dpif_netdev_set_config) by the non-inline function.
Then, we can replace all other calls with this variable.
Other than that, LGTM.
Signed-off-by: Balazs Nemeth <[email protected]>
Acked-by: Gaetan Rivet <[email protected]>
Acked-by: Paolo Valerio <[email protected]>
---
lib/dpif-netdev.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index c5ab35d2a..bf2112ead 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -7165,6 +7165,8 @@ dfc_processing(struct dp_netdev_pmd_thread *pmd,
struct dp_packet *packet;
const size_t cnt = dp_packet_batch_size(packets_);
uint32_t cur_min = pmd->ctx.emc_insert_min;
+ const uint32_t recirc_depth = *recirc_depth_get();
+ const bool netdev_flow_api = netdev_is_flow_api_enabled();
int i;
uint16_t tcp_flags;
bool smc_enable_db;
@@ -7196,7 +7198,7 @@ dfc_processing(struct dp_netdev_pmd_thread *pmd,
pkt_metadata_init(&packet->md, port_no);
}
- if (netdev_is_flow_api_enabled() && *recirc_depth_get() == 0) {
+ if (netdev_flow_api && recirc_depth == 0) {
if (OVS_UNLIKELY(dp_netdev_hw_flow(pmd, port_no, packet, &flow)))
{
/* Packet restoration failed and it was dropped, do not
* continue processing.
--
2.31.1
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev