svn commit: r300865 - in head/sys: sys vm

Ngie Cooper (yaneurabeya) yaneurabeya at gmail.com
Fri May 27 21:21:43 UTC 2016


> On May 27, 2016, at 14:03, Ngie Cooper (yaneurabeya) <yaneurabeya at gmail.com> wrote:
> 
>> 
>> On May 27, 2016, at 14:01, Konstantin Belousov <kostikbel at gmail.com> wrote:
>> 
>> 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 at 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 at freebsd.org mailing list
>>>> https://lists.freebsd.org/mailman/listinfo/svn-src-all
>>>> To unsubscribe, send any mail to "svn-src-all-unsubscribe at 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:
> 
> 	I added #include <sys/types.h> to zfs/arc.c in r300870 — it was missing from the file. Looking into drm2 and fed.

Oy. Bad test before I did the fix. The issue was libzpool -_- (just saw alc’s comment)… I’ll fix my commit..

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20160527/1e569100/attachment.sig>


More information about the svn-src-head mailing list