Date: Wed, 20 Jun 2012 23:25:47 +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: r237346 - head/sys/vm Message-ID: <201206202325.q5KNPl6p073878@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: alc Date: Wed Jun 20 23:25:47 2012 New Revision: 237346 URL: http://svn.freebsd.org/changeset/base/237346 Log: Selectively inline vm_page_dirty(). Modified: head/sys/vm/vm_page.c head/sys/vm/vm_page.h Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Wed Jun 20 22:21:02 2012 (r237345) +++ head/sys/vm/vm_page.c Wed Jun 20 23:25:47 2012 (r237346) @@ -783,7 +783,7 @@ vm_page_sleep(vm_page_t m, const char *m } /* - * vm_page_dirty: + * vm_page_dirty_KBI: [ internal use only ] * * Set all bits in the page's dirty field. * @@ -791,11 +791,14 @@ vm_page_sleep(vm_page_t m, const char *m * call is made from the machine-independent layer. * * See vm_page_clear_dirty_mask(). + * + * This function should only be called by vm_page_dirty(). */ void -vm_page_dirty(vm_page_t m) +vm_page_dirty_KBI(vm_page_t m) { + /* These assertions refer to this operation by its public name. */ KASSERT((m->flags & PG_CACHED) == 0, ("vm_page_dirty: page in cache!")); KASSERT(!VM_PAGE_IS_FREE(m), Modified: head/sys/vm/vm_page.h ============================================================================== --- head/sys/vm/vm_page.h Wed Jun 20 22:21:02 2012 (r237345) +++ head/sys/vm/vm_page.h Wed Jun 20 23:25:47 2012 (r237346) @@ -360,7 +360,6 @@ void vm_page_hold(vm_page_t mem); void vm_page_unhold(vm_page_t mem); void vm_page_free(vm_page_t m); void vm_page_free_zero(vm_page_t m); -void vm_page_dirty(vm_page_t m); void vm_page_wakeup(vm_page_t m); void vm_pageq_remove(vm_page_t m); @@ -414,6 +413,7 @@ void vm_page_cowfault (vm_page_t); int vm_page_cowsetup(vm_page_t); void vm_page_cowclear (vm_page_t); +void vm_page_dirty_KBI(vm_page_t m); void vm_page_lock_KBI(vm_page_t m, const char *file, int line); void vm_page_unlock_KBI(vm_page_t m, const char *file, int line); int vm_page_trylock_KBI(vm_page_t m, const char *file, int line); @@ -429,6 +429,28 @@ void vm_page_object_lock_assert(vm_page_ #endif /* + * vm_page_dirty: + * + * Set all bits in the page's dirty field. + * + * The object containing the specified page must be locked if the + * call is made from the machine-independent layer. + * + * See vm_page_clear_dirty_mask(). + */ +static __inline void +vm_page_dirty(vm_page_t m) +{ + + /* Use vm_page_dirty_KBI() under INVARIANTS to save memory. */ +#if defined(KLD_MODULE) || defined(INVARIANTS) + vm_page_dirty_KBI(m); +#else + m->dirty = VM_PAGE_BITS_ALL; +#endif +} + +/* * vm_page_sleep_if_busy: * * Sleep and release the page queues lock if VPO_BUSY is set or,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206202325.q5KNPl6p073878>