+2026-07-19 Bruno Haible <bruno@clisp.org>
+
+ physmem: On NetBSD, consider the available swap space.
+ * lib/physmem.c (physmem_claimable): Also consider the number of
+ available swap pages.
+
2026-07-18 Bruno Haible <bruno@clisp.org>
diffseq: Restore gcc 17 -fanalyzer customization (regr. yesterday).
&& len == sizeof uvmexp)
{
double pagesize = getpagesize ();
- return (uvmexp.free + uvmexp.inactive) * pagesize;
+ /* On NetBSD, a process needs a number of memory pages and a comparable
+ number of swap pages. When not enough swap pages are available, the
+ process might be killed with "killed: out of swap", or the machine
+ might become unresponsive. */
+ double available_memory_pages = uvmexp.free + uvmexp.inactive;
+ double available_swap_pages =
+ (unsigned long long) ((uvmexp.swpages - uvmexp.swpginuse) * 0.85);
+ double available_pages =
+ (available_memory_pages < available_swap_pages
+ ? available_memory_pages
+ : available_swap_pages);
+ return available_pages * pagesize;
}
}
#endif