Two free functions.
uvm_pmr_freepages:
- used for contiguous page free
- used at boot
average case complexity:log(s) log(r)
worst case complexity:log(s) log(r)
uvm_pmr_freepageq:
- used for page lists
- collates sequences of pages in a single free
worst case complexity:n log(s) log(r)
average case complexity:n log(s) log(r)
s = number of segments
n = number of pages to be freed
r = number of memory fragments