Turns out that the way the iterators are implemented in RawPageTablePart::free_lvl*() the compiler makes copies of entire pages on the stack, which overflows the 32 KiB stack pretty quickly.
Iterate over references only and significantly reduce stack usage of the page-table freeing code.
Turns out that the way the iterators are implemented in RawPageTablePart::free_lvl*() the compiler makes copies of entire pages on the stack, which overflows the 32 KiB stack pretty quickly.
Iterate over references only and significantly reduce stack usage of the page-table freeing code.