Date: Sat, 28 May 2016 00:01:48 +0300 From: Konstantin Belousov <kostikbel@gmail.com> To: Ivan Klymenko <fidaj@ukr.net> Cc: Alan Cox <alc@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r300865 - in head/sys: sys vm Message-ID: <20160527210148.GR38613@kib.kiev.ua> In-Reply-To: <20160527225103.67ae3547@nonamehost.local> References: <201605271915.u4RJFkEl013139@repo.freebsd.org> <20160527225103.67ae3547@nonamehost.local>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, May 27, 2016 at 10:51:03PM +0300, Ivan Klymenko wrote: > On Fri, 27 May 2016 19:15:46 +0000 (UTC) > Alan Cox <alc@FreeBSD.org> wrote: > > > Author: alc > > Date: Fri May 27 19:15:45 2016 > > New Revision: 300865 > > URL: https://svnweb.freebsd.org/changeset/base/300865 > > > > Log: > > The flag "vm_pages_needed" has long served two distinct purposes: > > (1) to indicate that threads are waiting for free pages to become > > available and (2) to indicate whether a wakeup call has been sent to > > the page daemon. The trouble is that a single flag cannot really > > serve both purposes, because we have two distinct targets for when to > > wakeup threads waiting for free pages versus when the page daemon has > > completed its work. In particular, the flag will be cleared by > > vm_page_free() before the page daemon has met its target, and this > > can lead to the OOM killer being invoked prematurely. To address this > > problem, a new flag "vm_pageout_wanted" is introduced. > > Discussed with: jeff > > Reviewed by: kib, markj > > Tested by: markj > > Sponsored by: EMC / Isilon Storage Division > > > > Modified: > > head/sys/sys/vmmeter.h > > head/sys/vm/vm_page.c > > head/sys/vm/vm_pageout.c > > head/sys/vm/vm_pageout.h > > > > Modified: head/sys/vm/vm_pageout.h > > ============================================================================== > > --- head/sys/vm/vm_pageout.h Fri May 27 18:52:58 2016 > > (r300864) +++ head/sys/vm/vm_pageout.h Fri May 27 19:15:45 > > 2016 (r300865) @@ -72,9 +72,10 @@ > > */ > > > > extern int vm_page_max_wired; > > -extern int vm_pages_needed; /* should be some "event" > > structure */ extern int vm_pageout_deficit; > > extern int vm_pageout_page_count; > > +extern bool vm_pageout_wanted; > > +extern bool vm_pages_needed; > > > > /* > > * Swap out requests > > _______________________________________________ > > svn-src-all@freebsd.org mailing list > > https://lists.freebsd.org/mailman/listinfo/svn-src-all > > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" > > ... > ===> lib/libalias/modules/smedia (obj) > --- cddl/lib__L --- > In file included > from /usr/src/cddl/lib/libzpool/../../../sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c:143: /media/da0s1/obj/usr/src/tmp/usr/include/vm/vm_pageout.h:77:8: > error: unknown type name 'bool' extern bool vm_pageout_wanted; > ^ > /media/da0s1/obj/usr/src/tmp/usr/include/vm/vm_pageout.h:78:8: error: > unknown type name 'bool' extern bool vm_pages_needed; > ^ > 2 errors generated. > *** [arc.So] Error code 1 Does it compile if you just remove the #include <vm/vm_pageout.h> line from arc.c and possibly zfs_vnops.c ? If not, try bracing the line with #ifdef _KERNEL, like this: diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c index c1a254a..74193d1 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c @@ -140,7 +140,9 @@ #include <zfs_fletcher.h> #include <sys/sdt.h> +#ifdef _KERNEL #include <vm/vm_pageout.h> +#endif #include <machine/vmparam.h> #ifdef illumos diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c index 6b25d39..c39e6a0 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c @@ -75,7 +75,9 @@ #include <sys/sched.h> #include <sys/acl.h> #include <vm/vm_param.h> +#ifdef _KERNEL #include <vm/vm_pageout.h> +#endif /* * Programming rules.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160527210148.GR38613>