Hi OVS community,
We added some statistics in ovsrcu_call_postponed() to help analyze URCU callback processing capacity. With this instrumentation, we observed logs like the following:
2026-07-03T16:07:42.318Z|1982161|ovs_rcu(urcu2)|INFO|callback 55494 times with 1682 ms
2026-07-03T16:07:24.733Z|1982156|ovs_rcu(urcu2)|INFO|callback 88984 times with 1655 ms
2026-07-03T16:02:41.086Z|1982077|ovs_rcu(urcu2)|INFO|callback 55056 times with 1639 ms
In our environment, when the URCU callback backlog reaches around 50k callbacks, processing them can take about 1.6 seconds.
This seems unfriendly to the main thread. If the main thread triggers URCU synchronization during this period, it may delay the sending of LACP packets. In Fast LACP mode, this delay can cause LACP state flapping.
We would like to ask for suggestions from the community:
- Is this callback processing time expected when the backlog reaches this size?
- Are there recommended ways to reduce URCU callback backlog or improve callback processing efficiency?
- Would it make sense to process callbacks in smaller batches to avoid long blocking periods?
- Is there any existing tuning or design recommendation for avoiding impact on time-sensitive protocols such as Fast LACP?
Any advice or direction would be appreciated.
The following table summarizes the hourly URCU callback processing statistics from the OVS logs on 2026-07-03, including the total callback count, total elapsed time, normalized processing time per 40k callbacks, and the maximum single callback processing time.
| Hour |
Log Entries |
Total Callbacks |
Total Elapsed Time |
Avg Callbacks per Entry |
Avg Time per 40k Callbacks |
Max Single Elapsed Time |
| 2026-07-03 19:00 |
62 |
2,604,624 |
58,556 ms |
42,010 |
899.3 ms |
1,781 ms |
| 2026-07-03 20:00 |
212 |
9,062,478 |
205,491 ms |
42,748 |
907.0 ms |
1,997 ms |
| 2026-07-03 21:00 |
36 |
1,132,193 |
26,823 ms |
31,450 |
947.6 ms |
1,340 ms |
| 2026-07-03 22:00 |
47 |
1,519,919 |
35,448 ms |
32,339 |
932.9 ms |
1,339 ms |
| 2026-07-03 23:00 |
36 |
1,175,051 |
27,492 ms |
32,640 |
935.9 ms |
1,345 ms |
Hi OVS community,
We added some statistics in
ovsrcu_call_postponed()to help analyze URCU callback processing capacity. With this instrumentation, we observed logs like the following:In our environment, when the URCU callback backlog reaches around 50k callbacks, processing them can take about 1.6 seconds.
This seems unfriendly to the main thread. If the main thread triggers URCU synchronization during this period, it may delay the sending of LACP packets. In Fast LACP mode, this delay can cause LACP state flapping.
We would like to ask for suggestions from the community:
Any advice or direction would be appreciated.
The following table summarizes the hourly URCU callback processing statistics from the OVS logs on 2026-07-03, including the total callback count, total elapsed time, normalized processing time per 40k callbacks, and the maximum single callback processing time.