diff options
| author | Akinobu Mita <akinobu.mita@gmail.com> | 2025-11-11 10:00:10 +0900 |
|---|---|---|
| committer | Mike Rapoport (Microsoft) <rppt@kernel.org> | 2025-11-11 18:15:35 +0200 |
| commit | c42af83c59b65d01c0f7a074e450bbbb43b22f0d (patch) | |
| tree | 29cdcbf4deda6ac9bf7c7c6ed5bcbb01269e4c60 /mm/pagewalk.c | |
| parent | e9a6fb0bcdd7609be6969112f3fbfcce3b1d4a7c (diff) | |
memblock: fix memblock_estimated_nr_free_pages() for soft-reserved memory
memblock_estimated_nr_free_pages() returns the difference between the total
size of the "memory" memblock type and the "reserved" memblock type.
The "soft-reserved" memory regions are added to the "reserved" memblock
type, but not to the "memory" memblock type. Therefore,
memblock_estimated_nr_free_pages() may return a smaller value than
expected, or if it underflows, an extremely large value.
/proc/sys/kernel/threads-max is determined by the value of
memblock_estimated_nr_free_pages(). This issue was discovered on machines
with CXL memory because kernel.threads-max was either smaller than expected
or extremely large for the installed DRAM size.
This fixes the issue by replacing memblock_reserved_size() with
memblock_reserved_kern_size() that tells how much memory was
reserved from the actual RAM.
Suggested-by: Mike Rapoport <rppt@kernel.org>
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Link: https://patch.msgid.link/20251111010010.7800-1-akinobu.mita@gmail.com
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Diffstat (limited to 'mm/pagewalk.c')
0 files changed, 0 insertions, 0 deletions
