The native mark sweep space only ever allocates fixed-sized blocks from the page resource. It is fully eligible for using BlockPageResource just like ImmixSpace.
The problem with using raw FreeListPageResource is that FreeListPageResource::release_pages needs to acquire a mutex (FreeListPageResource::sync). The more GC workers there are, the worse the problem becomes.
When using a single GC worker thread:

When using two GC worker threads (running the same workload):

When using 16 GC worker threads:

And it is taking up a significant proportion of the GC time when running multiple workers.
