Passing UMA_ZONE_NOFREE to uma_zcreate() for swpctrie_zone and swblk_zone is redundant, because uma_zone_reserve_kva() is performed on both zones and it sets this same flag on the zone.
Moreover, I don't see why the swap pager would require either zone to be UMA_ZONE_NOFREE.