Currently we use a single bit to indicate whether the virtual page is
part of a superpage. With the introduction of non-transparent 1GB
mappings I think it's useful to use some unused bits in the mincore()
vector to return more precise information. In particular, I wrote some
tests which aim to verify that the large page mapping does what it's
supposed to.
The change turns MINCORE_SUPER into a mask from which the corresponding
psind can be extracted. In this diff only two bits are reserved,
allowing for up to four page sizes, leaving one bit available. I am not
sure whether the last bit should be reserved for this purpose as well;
features like arm64's ATTR_CONTIGUOUS could result in extra page sizes
beyond the ones corresponding to page table levels.