memsup: prefer platform-specifc used memory calculation over sysconf #10030
+13
−15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes an issue where the
system_memory_high_watermark
alarm was being set on Linux sinceget_basic_mem
was using the less accurate sysconf strategy. Despite the comments,__SC_AVPHYS_PAGES
is defined in glibc (but not musl libc).Here's an example from before the change.
memsup:get_memory_data()
calls the Cget_basic_mem
function. The second element in the return tuple is the used memory (~222 MB) that it was reporting. It should have returned ~140 MB (254 MB - 114 MB) which also would not have set thesystem_memory_high_watermark
alarm.For consistency, the
__SC_AVPHYS_PAGES
check is done after the platform-specific checks in both places.