Skip to content

Commit

Permalink
dpif-netdev: Enter quiescent state after each offloading operation.
Browse files Browse the repository at this point in the history
If the offloading queue is big and filled continuously, offloading
thread may have no chance to quiesce blocking rcu callbacks and
other threads waiting for synchronization.

Fix that by entering momentary quiescent state after each operation
since we're not holding any rcu-protected memory here.

Fixes: 02bb282 ("dpif-netdev: do hw flow offload in a thread")
Reported-by: Eli Britstein <[email protected]>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2020-February/049768.html
Acked-by: Eli Britstein <[email protected]>
Signed-off-by: Ilya Maximets <[email protected]>
  • Loading branch information
igsilya committed Mar 15, 2020
1 parent 4e1ce6f commit ef32a1a
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions lib/dpif-netdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -2512,6 +2512,7 @@ dp_netdev_flow_offload_main(void *data OVS_UNUSED)
VLOG_DBG("%s to %s netdev flow\n",
ret == 0 ? "succeed" : "failed", op);
dp_netdev_free_flow_offload(offload);
ovsrcu_quiesce();
}

return NULL;
Expand Down

0 comments on commit ef32a1a

Please sign in to comment.