Print this page
remove xhat
The xhat infrastructure was added to support hardware such as the zulu
graphics card - hardware which had on-board MMUs. The VM used the xhat code
to keep the CPU's and Zulu's page tables in-sync. Since the only xhat user
was zulu (which is gone), we can safely remove it simplifying the whole VM
subsystem.
Assorted notes:
- AS_BUSY flag was used solely by xhat
@@ -1922,32 +1922,22 @@
hat_memload_array(sptseg->s_as->a_hat,
a, pgsz, &ppa[pidx], sptd->spt_prot,
HAT_LOAD_LOCK | HAT_LOAD_SHARE);
}
} else {
- if (hat == seg->s_as->a_hat) {
-
/*
* Migrate pages marked for migration
*/
if (lgrp_optimizations())
- page_migrate(seg, shm_addr, ppa,
- npages);
+ page_migrate(seg, shm_addr, ppa, npages);
- /* CPU HAT */
- for (; pidx < npages;
- a += pgsz, pidx += pgcnt) {
+ for (; pidx < npages; a += pgsz, pidx += pgcnt) {
hat_memload_array(sptseg->s_as->a_hat,
a, pgsz, &ppa[pidx],
sptd->spt_prot,
HAT_LOAD_SHARE);
}
- } else {
- /* XHAT. Pass real address */
- hat_memload_array(hat, shm_addr,
- size, ppa, sptd->spt_prot, HAT_LOAD_SHARE);
- }
/*
* And now drop the SE_SHARED lock(s).
*/
if (dyn_ism_unmap) {
@@ -2182,33 +2172,22 @@
hat_memload_array(sptseg->s_as->a_hat, a,
sz, &ppa[pidx], sptd->spt_prot,
HAT_LOAD_LOCK | HAT_LOAD_SHARE);
}
} else {
- if (hat == seg->s_as->a_hat) {
-
/*
* Migrate pages marked for migration.
*/
if (lgrp_optimizations())
- page_migrate(seg, shm_addr, ppa,
- npages);
+ page_migrate(seg, shm_addr, ppa, npages);
- /* CPU HAT */
- for (; pidx < npages;
- a += pgsz, pidx += pgcnt) {
+ for (; pidx < npages; a += pgsz, pidx += pgcnt) {
sz = MIN(pgsz, ptob(npages - pidx));
hat_memload_array(sptseg->s_as->a_hat,
a, sz, &ppa[pidx],
sptd->spt_prot, HAT_LOAD_SHARE);
}
- } else {
- /* XHAT. Pass real address */
- hat_memload_array(hat, shm_addr,
- ptob(npages), ppa, sptd->spt_prot,
- HAT_LOAD_SHARE);
- }
/*
* And now drop the SE_SHARED lock(s).
*/
for (i = 0; i < npages; i++)