On 18-11-21 02:00:57, Oliver Pinter wrote:
> 
> 
> On Tuesday, November 20, 2018, Ben Widawsky <bwida...@freebsd.org> wrote:
> 
>     Author: bwidawsk
>     Date: Tue Nov 20 22:49:19 2018
>     New Revision: 340709
>     URL: https://svnweb.freebsd.org/changeset/base/340709
> 
>     Log:
>       linuxkpi: Add some basic swap functions
> 
>       These are used by kms-drm to determine various heuristics relate
>       memory conditions.
> 
>       The number of free swap pages is just a variable, and it can be
>       much cheaper by either adding a new getter, or simply extern'ing
>       swap_total. However, this patch opts to use the more expensive,
>       existing interface - since this isn't an operation in a high per
>       path.
> 
>       This allows us to remove some more gpl linuxkpi and do the follo
>       kms-drm:
>       git rm linuxkpi/gplv2/include/linux/swap.h
> 
>       Reviewed by:    mmacy, Johannes Lundberg <johal...@gmail.com>
>       Approved by:    emaste (mentor)
>       Differential Revision:  https://reviews.freebsd.org/D18052
> 
>     Added:
>       head/sys/compat/linuxkpi/common/include/linux/swap.h   (contents, props
>     changed)
>     Modified:
>       head/sys/vm/vm_pageout.h
>       head/sys/vm/vm_swapout.c
> 
>     Added: head/sys/compat/linuxkpi/common/include/linux/swap.h
>     
> ===========================================================================
>     ===
>     --- /dev/null   00:00:00 1970   (empty, because file is newly added)
>     +++ head/sys/compat/linuxkpi/common/include/linux/swap.h        Tue Nov 20
>     22:49:19 2018        (r340709)
>     @@ -0,0 +1,102 @@
>     +/*-
>     + * Copyright (c) 2018 Intel Corporation
>     + *
>     + * Redistribution and use in source and binary forms, with or without
>     + * modification, are permitted provided that the following conditions are
>     + * met:
>     + * 1. Redistributions of source code must retain the above copyright
>     + *    notice, this list of conditions and the following disclaimer.
>     + * 2. Redistributions in binary form must reproduce the above copyright
>     + *    notice, this list of conditions and the following disclaimer in
>     + *    the documentation and/or other materials provided with the
>     + *    distribution.
>     + *
>     + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
>     + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
>     + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
>     PURPOSE
>     + * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE 
> LIABLE
>     + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
>     CONSEQUENTIAL
>     + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 
> GOODS
>     + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
>     + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
>     STRICT
>     + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
>     WAY
>     + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>     + * SUCH DAMAGE.
>     + *
>     + * $FreeBSD$
>     + */
>     +
>     +#ifndef        _LINUX_SWAP_H_
>     +#define        _LINUX_SWAP_H_
>     +
>     +#include <vm/swap_pager.h>
>     +#include <vm/vm_pageout.h>
>     +
>     +static inline long
>     +get_nr_swap_pages(void)
>     +{
>     +       int i, j;
>     +
>     +       /* NB: This could be done cheaply by obtaining swap_total directly
>     */
>     +       swap_pager_status(&i, &j);
>     +       return i - j;
>     +}
>     +
>     +static inline int
>     +current_is_kswapd(void)
>     +{
>     +       return vm_curproc_is_vmproc();
>     +}
>     +
>     +#endif
> 
> 
> Probably I'm wrong, but this file contains twice the same intended content. 
>  

You are correct, but I have already fixed it. I have some problems with my
workflow still, apparently. :(

> 
>     +/*-
>     + * Copyright (c) 2018 Intel Corporation
>     + *
>     + * Redistribution and use in source and binary forms, with or without
>     + * modification, are permitted provided that the following conditions are
>     + * met:
>     + * 1. Redistributions of source code must retain the above copyright
>     + *    notice, this list of conditions and the following disclaimer.
>     + * 2. Redistributions in binary form must reproduce the above copyright
>     + *    notice, this list of conditions and the following disclaimer in
>     + *    the documentation and/or other materials provided with the
>     + *    distribution.
>     + *
>     + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
>     + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
>     + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
>     PURPOSE
>     + * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE 
> LIABLE
>     + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
>     CONSEQUENTIAL
>     + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 
> GOODS
>     + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
>     + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
>     STRICT
>     + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
>     WAY
>     + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>     + * SUCH DAMAGE.
>     + *
>     + * $FreeBSD$
>     + */
>     +
>     +#ifndef        _LINUX_SWAP_H_
>     +#define        _LINUX_SWAP_H_
>     +
>     +#include <vm/swap_pager.h>
>     +#include <vm/vm_pageout.h>
>     +
>     +static inline long
>     +get_nr_swap_pages(void)
>     +{
>     +       int i, j;
>     +
>     +       /* NB: This could be done cheaply by obtaining swap_total directly
>     */
>     +       swap_pager_status(&i, &j);
>     +       return i - j;
>     +}
>     +
>     +static inline int
>     +current_is_kswapd(void)
>     +{
>     +       return vm_curproc_is_vmproc();
>     +}
>     +
>     +#endif
> 
>     Modified: head/sys/vm/vm_pageout.h
>     
> ===========================================================================
>     ===
>     --- head/sys/vm/vm_pageout.h    Tue Nov 20 22:24:18 2018        (r340708)
>     +++ head/sys/vm/vm_pageout.h    Tue Nov 20 22:49:19 2018        (r340709)
>     @@ -106,5 +106,8 @@ void vm_pageout_oom(int shortage);
> 
>      void vm_swapout_run(void);
>      void vm_swapout_run_idle(void);
>     +
>     +bool vm_curproc_is_vmproc(void);
>     +
>      #endif /* _KERNEL */
>      #endif /* _VM_VM_PAGEOUT_H_ */
> 
>     Modified: head/sys/vm/vm_swapout.c
>     
> ===========================================================================
>     ===
>     --- head/sys/vm/vm_swapout.c    Tue Nov 20 22:24:18 2018        (r340708)
>     +++ head/sys/vm/vm_swapout.c    Tue Nov 20 22:49:19 2018        (r340709)
>     @@ -961,3 +961,10 @@ swapout(struct proc *p)
>             p->p_swtick = ticks;
>             return (0);
>      }
>     +
>     +/* Used to determine if the current process is itself the reaper. */
>     +bool
>     +vm_curproc_is_vmproc(void)
>     +{
>     +       return curproc == vmproc;
>     +}
>     _______________________________________________
>     svn-src-h...@freebsd.org mailing list
>     https://lists.freebsd.org/mailman/listinfo/svn-src-head
>     To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
> 
_______________________________________________
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-unsubscr...@freebsd.org"

Reply via email to