Print this page
patch remove-as_swapout

@@ -2138,77 +2138,10 @@
         AS_LOCK_EXIT(as, &as->a_lock);
         return (0);
 }
 
 /*
- * Swap the pages associated with the address space as out to
- * secondary storage, returning the number of bytes actually
- * swapped.
- *
- * The value returned is intended to correlate well with the process's
- * memory requirements.  Its usefulness for this purpose depends on
- * how well the segment-level routines do at returning accurate
- * information.
- */
-size_t
-as_swapout(struct as *as)
-{
-        struct seg *seg;
-        size_t swpcnt = 0;
-
-        /*
-         * Kernel-only processes have given up their address
-         * spaces.  Of course, we shouldn't be attempting to
-         * swap out such processes in the first place...
-         */
-        if (as == NULL)
-                return (0);
-
-        AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
-
-        /* Prevent XHATs from attaching */
-        mutex_enter(&as->a_contents);
-        AS_SETBUSY(as);
-        mutex_exit(&as->a_contents);
-
-
-        /*
-         * Free all mapping resources associated with the address
-         * space.  The segment-level swapout routines capitalize
-         * on this unmapping by scavanging pages that have become
-         * unmapped here.
-         */
-        hat_swapout(as->a_hat);
-        if (as->a_xhat != NULL)
-                xhat_swapout_all(as);
-
-        mutex_enter(&as->a_contents);
-        AS_CLRBUSY(as);
-        mutex_exit(&as->a_contents);
-
-        /*
-         * Call the swapout routines of all segments in the address
-         * space to do the actual work, accumulating the amount of
-         * space reclaimed.
-         */
-        for (seg = AS_SEGFIRST(as); seg != NULL; seg = AS_SEGNEXT(as, seg)) {
-                struct seg_ops *ov = seg->s_ops;
-
-                /*
-                 * We have to check to see if the seg has
-                 * an ops vector because the seg may have
-                 * been in the middle of being set up when
-                 * the process was picked for swapout.
-                 */
-                if ((ov != NULL) && (ov->swapout != NULL))
-                        swpcnt += SEGOP_SWAPOUT(seg);
-        }
-        AS_LOCK_EXIT(as, &as->a_lock);
-        return (swpcnt);
-}
-
-/*
  * Determine whether data from the mappings in interval [addr, addr + size)
  * are in the primary memory (core) cache.
  */
 int
 as_incore(struct as *as, caddr_t addr,