Re: git: 87384c51e047 - main - jemalloc: use symbolic definitions for bits in vm_overcommit when !defined(SWAP_RESERVE_FORCE_ON): lacks a return statement

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Fri, 16 Sep 2022 22:41:19 UTC
On Fri, Sep 16, 2022 at 02:00:36PM -0700, Mark Millard wrote:
> Konstantin Belousov <kib_at_FreeBSD.org> wrote on
> Date: Fri, 16 Sep 2022 20:25:35 UTC :
> 
> > The branch main has been updated by kib:
> > 
> > URL: https://cgit.FreeBSD.org/src/commit/?id=87384c51e047349fdbcf4f07fe52d900ce108040
> > 
> > commit 87384c51e047349fdbcf4f07fe52d900ce108040
> > Author:     Konstantin Belousov <kib@FreeBSD.org>
> > AuthorDate: 2022-09-15 09:59:42 +0000
> > Commit:     Konstantin Belousov <kib@FreeBSD.org>
> > CommitDate: 2022-09-16 20:23:19 +0000
> > 
> >     jemalloc: use symbolic definitions for bits in vm_overcommit
> >     
> >     Reviewed by:    brooks, imp (previous version)
> >     Discussed with: markj
> >     Sponsored by:   The FreeBSD Foundation
> >     MFC after:      2 weeks
> >     Differential revision:  https://reviews.freebsd.org/D36540
> > ---
> >  contrib/jemalloc/src/pages.c | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/contrib/jemalloc/src/pages.c b/contrib/jemalloc/src/pages.c
> > index 13de27a0087d..3600443e2cb5 100644
> > --- a/contrib/jemalloc/src/pages.c
> > +++ b/contrib/jemalloc/src/pages.c
> > @@ -12,6 +12,7 @@
> >  #include <sys/sysctl.h>
> >  #ifdef __FreeBSD__
> >  #include <vm/vm_param.h>
> > +#include <vm/vm.h>
> >  #endif
> >  #endif
> >  
> > @@ -455,7 +456,10 @@ os_overcommits_sysctl(void) {
> >  	}
> >  #endif
> >  
> > -	return ((vm_overcommit & 0x3) == 0);
> > +#ifdef SWAP_RESERVE_FORCE_ON
> > +	return ((vm_overcommit & (SWAP_RESERVE_FORCE_ON |
> > +	    SWAP_RESERVE_RLIMIT_ON)) == 0);
> > +#endif
> >  }
> >  #endif
> >  
> 
> It looks like the above:
> 
> +#ifdef SWAP_RESERVE_FORCE_ON
> +	return ((vm_overcommit & (SWAP_RESERVE_FORCE_ON |
> +	    SWAP_RESERVE_RLIMIT_ON)) == 0);
> +#endif
> 
> means that there is a path through the routine that does not
> execute a return . . . ; statment when
> !defined(SWAP_RESERVE_FORCE_ON) .
> 
> (Otherwise the #ifdef and #endif would not be necessary.)

I fixed this in 0e2af3b59a15, thanks.