The code over-allocated the memory required for os_page_status, relying
on uint64 for its element size instead of an int, hence doubling what
was required. This could mean quite a lot of memory if dealing with a
lot of NUMA pages.
Oversight in
ba2a3c2302f1.
Author: David Geier <
[email protected]>
Discussion: https://postgr.es/m/
ad0748d4-3080-436e-b0bc-
ac8f86a3466a@gmail.com
Backpatch-through: 18
/* Used to determine the NUMA node for all OS pages at once */
os_page_ptrs = palloc0(sizeof(void *) * os_page_count);
- os_page_status = palloc(sizeof(uint64) * os_page_count);
+ os_page_status = palloc(sizeof(int) * os_page_count);
/*
* Fill pointers for all the memory pages. This loop stores and