[SPR] Networking performance fix for concurrency with the dst_entry data structure
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
Jammy |
New
|
Undecided
|
Thibf |
Bug Description
This is a public version of https:/
Backport:
bc9d3a9f2afc (net: dst: Switch to rcuref_t reference counting, 2023-03-23)
d288a162dd1c (net: dst: Prevent false sharing vs. dst_entry:: __refcnt, 2023-03-23)
e5ab9eff46b0 (atomics: Provide atomic_
ee1ee6db0779 (atomics: Provide rcuref - scalable reference counting, 2023-03-23)
merged in 6.4 to jammy.
[Impact]
Address a bottleneck in the networking code related to struct dst_entry reference count, which results in networking performance loss with large number of connections, by adding rcuref as a scalable alternative solution.
Developers report in the patch: The overall gain of both changes for localhost memtier ranges from 1.2X to 3.2X and from +2% to %5% range for networked operations on a 1Gb connection. A micro benchmark which enforces maximized concurrency shows a gain between 1.2X and 4.7X.
[Fix]
Upstream patch:
bc9d3a9f2afc (net: dst: Switch to rcuref_t reference counting, 2023-03-23)
d288a162dd1c (net: dst: Prevent false sharing vs. dst_entry:: __refcnt, 2023-03-23)
e5ab9eff46b0 (atomics: Provide atomic_
ee1ee6db0779 (atomics: Provide rcuref - scalable reference counting, 2023-03-23)
[Test Plan]
I have tested this code.
[Where problems could occur]
TODO
Changed in linux (Ubuntu Jammy): | |
assignee: | nobody → Thibf (thibf) |