Skip to content

High URCU callback backlog may delay main-thread synchronization and cause Fast LACP flapping #379

Description

@danieldin95

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions