svn commit: r365841 - head/sys/vm

Mark Johnston markj at FreeBSD.org
Thu Sep 17 16:49:29 UTC 2020


Author: markj
Date: Thu Sep 17 16:49:28 2020
New Revision: 365841
URL: https://svnweb.freebsd.org/changeset/base/365841

Log:
  Increase the default vm.max_user_wired value.
  
  Since r347532 (merged to stable/12) we only count user-wired pages
  towards the system limit.  However, we now also treat pages wired by
  hypervisors (bhyve and virtualbox) as user-wired, so starting VMs with
  large amounts of RAM tends to fail due to the low limit.
  
  The purpose of the limit is to provide a seatbelt, not to impose some
  policy on the use of wired memory.  Thus, increase the default limit to
  allow reasonable VM configurations to work without tuning.
  
  Reviewed by:	kib
  Discussed with:	dougm
  MFC after:	3 days
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D26424

Modified:
  head/sys/vm/vm_pageout.c

Modified: head/sys/vm/vm_pageout.c
==============================================================================
--- head/sys/vm/vm_pageout.c	Thu Sep 17 16:44:12 2020	(r365840)
+++ head/sys/vm/vm_pageout.c	Thu Sep 17 16:49:28 2020	(r365841)
@@ -2295,7 +2295,7 @@ vm_pageout_init_domain(int domain)
 static void
 vm_pageout_init(void)
 {
-	u_int freecount;
+	u_long freecount;
 	int i;
 
 	/*
@@ -2328,8 +2328,13 @@ vm_pageout_init(void)
 	if (vm_pageout_update_period == 0)
 		vm_pageout_update_period = 600;
 
+	/*
+	 * Set the maximum number of user-wired virtual pages.  Historically the
+	 * main source of such pages was mlock(2) and mlockall(2).  Hypervisors
+	 * may also request user-wired memory.
+	 */
 	if (vm_page_max_user_wired == 0)
-		vm_page_max_user_wired = freecount / 3;
+		vm_page_max_user_wired = 4 * freecount / 5;
 }
 
 /*


More information about the svn-src-head mailing list