forked from cilium/proxy
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Currently we must execute in all worker threads to be able to ACK the update back to Cilium agent. This has become a problem as Envoy logs show worker threads stalling for 10 seconds doing nothing, pausing the policy update progress long enough to cause problems for FQDN policies. Change to create a new policy map for each update, sharing it as a const map for all worker threads using an atomic swap. Deletion of the old map is coordinated with the worker threads in RCU fashion, waiting until each worker thread has processed a new posted function, proving that they no longer use the policy lookop results they may have obtained. This can be done after ACK is already sent back to Cilium Agent. There is a potentially significant functional change, we no longer wait at all for SDS secrets to be fetched. Network policy update is a node wide function, so it was questionable to stall it for a single secret used by some endpoint’s policy to begin with. Unless Envoy main thread is too busy, this change should eliminate toFQDNs policy proxy wait timeouts sometimes seen in Cilium Agent. Signed-off-by: Jarno Rajahalme <jarno@isovalent.com>
- Loading branch information
1 parent
fe62be6
commit 5aeb98c
Showing
8 changed files
with
218 additions
and
296 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.