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

*** 180,194 **** return (0); /* * as->a_wpage can only be changed while the process is totally stopped. * Don't grab p_lock here. Holding p_lock while grabbing the address ! * space lock leads to deadlocks with the clock thread. Note that if an ! * as_fault() is servicing a fault to a watched page on behalf of an ! * XHAT provider, watchpoint will be temporarily cleared (and wp_prot ! * will be set to wp_oprot). Since this is done while holding as writer ! * lock, we need to grab as lock (reader lock is good enough). * * p_maplock prevents simultaneous execution of this function. Under * normal circumstances, holdwatch() will stop all other threads, so the * lock isn't really needed. But there may be multiple threads within * stop() when SWATCHOK is set, so we need to handle multiple threads --- 180,190 ---- return (0); /* * as->a_wpage can only be changed while the process is totally stopped. * Don't grab p_lock here. Holding p_lock while grabbing the address ! * space lock leads to deadlocks with the clock thread. * * p_maplock prevents simultaneous execution of this function. Under * normal circumstances, holdwatch() will stop all other threads, so the * lock isn't really needed. But there may be multiple threads within * stop() when SWATCHOK is set, so we need to handle multiple threads
*** 502,512 **** int rv; if ((as == &kas) || avl_numnodes(&as->a_wpage) == 0) return (0); - /* Grab the lock because of XHAT (see comment in pr_mappage()) */ AS_LOCK_ENTER(as, &as->a_lock, RW_READER); rv = pr_is_watchpage_as(addr, rw, as); AS_LOCK_EXIT(as, &as->a_lock); return (rv); --- 498,507 ----