performance: mm/percpu-internal.h: Re-layout pcpu_chunk to mitigate false sharing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Undecided
|
Philip Cox | ||
Jammy |
Fix Released
|
Medium
|
Philip Cox |
Bug Description
This is a public version of https:/
[Description]
When running UnixBench/Execl throughput case, false sharing is observed due to frequent read on base_addr and write on free_bytes, chunk_md.
UnixBench/Execl represents a class of workload where bash scripts are spawned frequently to do some short jobs. It will do system call on execl frequently, and execl will call mm_init to initialize mm_struct of the process. mm_init will call __percpu_
In current pcpu_chunk layout, `base_addr' is in the same cache line with `free_bytes' and `chunk_md', and `base_addr' is at the last 8 bytes. This patch moves `bound_map' up to `base_addr', to let `base_addr' locate in a new cacheline.
[Hardware Information]
Architecture:
Intel / AMD (x86_64)
Platform(s):
Platform-
Date HW is expected at Canonical:
Component(s):
Performance and Scalability
[Software Information]
Target Version:
23.10
Target Kernel:
6.5
Commit IDs:
3a6358c0dbe6 percpu-
External Links:
[Business Justification]
[Testing guidance]
[External ID]
OSVE-5160
The following requested patch has been applied upstream for v6.5-rc1:
- 3a6358c0dbe6 percpu-
https:/
CVE References
Changed in linux (Ubuntu Jammy): | |
assignee: | nobody → Philip Cox (philcox) |
Changed in linux (Ubuntu): | |
status: | New → In Progress |
Changed in linux (Ubuntu Jammy): | |
status: | New → In Progress |
Changed in linux (Ubuntu Jammy): | |
status: | In Progress → Fix Committed |
Changed devel (main) task to fix-released since the proposed patch is upstream as of v6.5-rc1.