The FDP team is no longer accepting new bugs in Bugzilla. Please report your issues under FDP project in Jira. Thanks.
Bug 1944220 - [OVN-SCALE] ovn-controller: pinctrl_run takes 30% of CPU time without pinctrl config related changes
Summary: [OVN-SCALE] ovn-controller: pinctrl_run takes 30% of CPU time without pinctrl...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux Fast Datapath
Classification: Red Hat
Component: ovn2.13
Version: FDP 20.H
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: ---
Assignee: lorenzo bianconi
QA Contact: Ehsan Elahi
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-03-29 14:38 UTC by Dumitru Ceara
Modified: 2023-03-13 07:21 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-03-13 07:21:28 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
OVN NB database. (8.66 MB, text/plain)
2021-03-29 14:38 UTC, Dumitru Ceara
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker FD-1171 0 None None None 2021-10-11 02:58:56 UTC

Description Dumitru Ceara 2021-03-29 14:38:26 UTC
Created attachment 1767379 [details]
OVN NB database.

Description of problem:

With the attached OVN NB database extracted from a scale test run, and with the following interfaces bound to a single node OVN deployment:

lports=(lp_17.1.0.9 lp_17.1.0.10 lp_17.1.0.11 lp_17.1.0.12 lp_17.1.0.13 lp_17.1.0.14 lp_17.1.0.15 lp_17.1.0.16 lp_17.1.0.17 lp_17.1.0.18)
for lp in ${lports[@]}; do
    ovs-vsctl add-port br-int $lp \
        -- set interface $lp type=internal \
        -- set interface $lp external_ids:iface-id=$lp
done

To avoid SB/OVS disconnects also increase timeouts:
ovn-sbctl set connection . inactivity_probe=180000
ovs-vsctl set open . external_ids:ovn-openflow-probe-interval=180
ovs-vsctl set open . external_ids:ovn-remote-probe-interval=180000

Perf reports:
-   31.82%     3.53%  ovn-controller  ovn-controller  [.] pinctrl_run
   - 28.29% pinctrl_run
      + 17.33% smap_get_bool
      + 8.46% datapath_is_switch
        0.93% __strcasecmp_l_avx

This happens even though there's no real pinctrl config related change.

Based on initial analysis, the following functions seem to contribute to the CPU usage:
- prepare_ipv6_prefixd() iterates on all local datapath peer ports and checks if ipv6_prefix_delegation is enabled.  It's probably beneficial to maintain a list of port bindings with options.ipv6_prefix_delegation=true.
- prepare_ipv6_ras() iterates on all local datapath peer ports and checks if ipv6_ra_send_periodic is enabled.  It's probably beneficial to maintain a list of port bindings with options.ipv6_ra_send_periodic=true.


Note You need to log in before you can comment on or make changes to this bug.