Instead of the system sharing a common page size, the page size would be dependent on what the pmap for that address range wants. Note that different processes (vmspaces) could have different page sizes. The kernel could have a different page than user processes.
NBPG/PAGE_SIZE as globals would go away. Sharing of pages would become more difficult since sharing pages of different sizes would be difficult. Why would anyone want this? Say you have a system in which the MMU can have per translation table page sizes. a 16KB page size might be desirable for the kernel and for LP64 processes. If you are running a ILP32 process, possibly of an older architecture, you might want to use a 4KB page size. Just a thought for pondering...
