Date: Fri, 15 Feb 2013 16:05:18 +0000 (UTC) From: Attilio Rao <attilio@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r246840 - user/attilio/vmc-playground/sys/vm Message-ID: <201302151605.r1FG5Igd007765@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: attilio Date: Fri Feb 15 16:05:18 2013 New Revision: 246840 URL: http://svnweb.freebsd.org/changeset/base/246840 Log: On arches with VM_PHYSSEG_DENSE the vm_page_array is larger than the actual number of vm_page_t that will be derived, so v_page_count should be used appropriately. Besides that, add a panic condition in case UMA fails to properly restrict the area in a way to keep all the desired objects. Sponsored by: EMC / Isilon storage division Reported by: alc Modified: user/attilio/vmc-playground/sys/vm/vm_radix.c Modified: user/attilio/vmc-playground/sys/vm/vm_radix.c ============================================================================== --- user/attilio/vmc-playground/sys/vm/vm_radix.c Fri Feb 15 15:34:19 2013 (r246839) +++ user/attilio/vmc-playground/sys/vm/vm_radix.c Fri Feb 15 16:05:18 2013 (r246840) @@ -50,11 +50,11 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> +#include <sys/vmmeter.h> #include <vm/uma.h> #include <vm/vm.h> #include <vm/vm_param.h> -#include <vm/vm_extern.h> #include <vm/vm_page.h> #include <vm/vm_radix.h> @@ -383,7 +383,9 @@ vm_radix_init(void *arg __unused) NULL, #endif NULL, NULL, VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_NOFREE); - nitems = uma_zone_set_max(vm_radix_node_zone, vm_page_array_size); + nitems = uma_zone_set_max(vm_radix_node_zone, cnt.v_page_count); + if (nitems < cnt.v_page_count) + panic("%s: unexpected requested number of items", __func__); uma_prealloc(vm_radix_node_zone, nitems); boot_cache_cnt = VM_RADIX_BOOT_CACHE + 1; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302151605.r1FG5Igd007765>