Print this page
OS-3088 need a lighterweight page invalidation mechanism for zone memcap
OS-881 To workaround OS-580 add support to only invalidate mappings from a single process
        
@@ -19,10 +19,11 @@
  * CDDL HEADER END
  */
 /*
  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ * Copyright 2014 Joyent, Inc.  All rights reserved.
  */
 
 /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
 /*        All Rights Reserved   */
 
@@ -267,12 +268,17 @@
  *      and non zero if enabled.  If flag specifes multiple attributs
  *      then returns 0 if ALL atriibutes are disabled.  This is an advisory
  *      call.
  *
  * int hat_pageunload(pp, forceflag)
- *      unload all translations attached to pp.
+ *      Unload all translations attached to pp. On x86 the bulk of the work is
+ *      done by hat_page_inval.
  *
+ * void hat_page_inval(pp, pgsz, curhat)
+ *      Unload translations attached to pp. If curhat is provided, only the
+ *      translation for that process is unloaded, otherwise all are unloaded.
+ *
  * uint_t hat_pagesync(pp, flags)
  *      get hw stats from hardware into page struct and reset hw stats
  *      returns attributes of page
  *
  * ulong_t hat_page_getshare(pp)
@@ -289,10 +295,11 @@
 
 void    hat_page_setattr(struct page *, uint_t);
 void    hat_page_clrattr(struct page *, uint_t);
 uint_t  hat_page_getattr(struct page *, uint_t);
 int     hat_pageunload(struct page *, uint_t);
+void    hat_page_inval(struct page *, uint_t, struct hat *);
 uint_t  hat_pagesync(struct page *, uint_t);
 ulong_t hat_page_getshare(struct page *);
 int     hat_page_checkshare(struct page *, ulong_t);
 faultcode_t hat_softlock(struct hat *, caddr_t, size_t *,
                         struct page **, uint_t);
@@ -458,10 +465,11 @@
 /*
  * Flag for hat_pageunload
  */
 #define HAT_ADV_PGUNLOAD        0x00
 #define HAT_FORCE_PGUNLOAD      0x01
+#define HAT_CURPROC_PGUNLOAD    0x02
 
 /*
  * Attributes for hat_page_*attr, hat_setstats and
  * returned by hat_pagesync.
  */