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,15 +180,11 @@
                 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).
+         * 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,11 +498,10 @@
         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);