-O2 comes back & alloc_page_check is passed ~
The compiler itself is nothing to blame. And now it works normally.
Problem is also the constrained memory size. Only 64k, that is 16 pages in the situation using 4kb page.
So what should I do next?
Page size shrinking, or say goodbye to paging?
Anything except for asking for a chip with larger memory size...

That's it!