Date: Sat, 14 Jul 2012 20:14:04 +0000 (UTC) From: Alan Cox <alc@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r238456 - head/sys/vm Message-ID: <201207142014.q6EKE44O005212@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: alc Date: Sat Jul 14 20:14:03 2012 New Revision: 238456 URL: http://svn.freebsd.org/changeset/base/238456 Log: If vm_contig_grow_cache() is allowed to sleep, then invoke the vm_lowmem handlers. Modified: head/sys/vm/vm_contig.c Modified: head/sys/vm/vm_contig.c ============================================================================== --- head/sys/vm/vm_contig.c Sat Jul 14 20:08:03 2012 (r238455) +++ head/sys/vm/vm_contig.c Sat Jul 14 20:14:03 2012 (r238456) @@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$"); #include <sys/param.h> #include <sys/systm.h> +#include <sys/eventhandler.h> #include <sys/lock.h> #include <sys/mount.h> #include <sys/mutex.h> @@ -189,6 +190,20 @@ vm_contig_grow_cache(int tries, vm_paddr { int actl, actmax, inactl, inactmax; + if (tries > 0) { + /* + * Decrease registered cache sizes. The vm_lowmem handlers + * may acquire locks and/or sleep, so they can only be invoked + * when "tries" is greater than zero. + */ + EVENTHANDLER_INVOKE(vm_lowmem, 0); + + /* + * We do this explicitly after the caches have been drained + * above. + */ + uma_reclaim(); + } vm_page_lock_queues(); inactl = 0; inactmax = tries < 1 ? 0 : cnt.v_inactive_count;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201207142014.q6EKE44O005212>