Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Aug 2017 10:25:49 -0500
From:      Alan Cox <alc@rice.edu>
To:        Oliver Pinter <oliver.pinter@hardenedbsd.org>, Alan Cox <alc@freebsd.org>
Cc:        "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r322041 - head/sys/kern
Message-ID:  <773de469-dc2f-d335-2506-bdf0a4db848a@rice.edu>
In-Reply-To: <CAPQ4ffu7ZG9EsQyhHJF%2BESLAn32VXFZ43qya05D2R-zrsMuu=A@mail.gmail.com>
References:  <201708040423.v744NOix022999@repo.freebsd.org> <CAPQ4ffu7ZG9EsQyhHJF%2BESLAn32VXFZ43qya05D2R-zrsMuu=A@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 08/04/2017 02:57, Oliver Pinter wrote:
>
>
> On Friday, August 4, 2017, Alan Cox <alc@freebsd.org
> <mailto:alc@freebsd.org>> wrote:
>
>     Author: alc
>     Date: Fri Aug  4 04:23:23 2017
>     New Revision: 322041
>     URL: https://svnweb.freebsd.org/changeset/base/322041
>     <https://svnweb.freebsd.org/changeset/base/322041>;
>
>     Log:
>       In case readers are misled by expressions that combine
>     multiplication and
>       division, add parentheses to make the precedence explicit.
>
>       Submitted by: Doug Moore <dougm@rice.edu <javascript:;>>
>       Requested by: imp
>       Reviewed by:  imp
>       MFC after:    1 week
>       X-MFC after:  r321840
>       Differential Revision:        https://reviews.freebsd.org/D11815
>     <https://reviews.freebsd.org/D11815>;
>
>     Modified:
>       head/sys/kern/subr_blist.c
>
>     Modified: head/sys/kern/subr_blist.c
>     ==============================================================================
>     --- head/sys/kern/subr_blist.c  Fri Aug  4 04:20:11 2017       
>     (r322040)
>     +++ head/sys/kern/subr_blist.c  Fri Aug  4 04:23:23 2017       
>     (r322041)
>     @@ -110,6 +110,7 @@ __FBSDID("$FreeBSD$");
>      #define        bitcount64(x)   __bitcount64((uint64_t)(x))
>      #define malloc(a,b,c)  calloc(a, 1)
>      #define free(a,b)      free(a)
>     +#define CTASSERT(expr)
>
>
> Is this dummy define intended? 
>  

Yes, it is for user-space, stand-alone compilation of this file.

>
>      #include <sys/blist.h>
>
>     @@ -142,6 +143,8 @@ static void blst_radix_print(blmeta_t *scan,
>     daddr_t b
>      static MALLOC_DEFINE(M_SWAP, "SWAP", "Swap space");
>      #endif
>
>     +CTASSERT(BLIST_BMAP_RADIX % BLIST_META_RADIX == 0);
>     +
>      /*
>       * For a subtree that can represent the state of up to 'radix'
>     blocks, the
>       * number of leaf nodes of the subtree is
>     L=radix/BLIST_BMAP_RADIX.  If 'm'
>     @@ -151,17 +154,19 @@ static MALLOC_DEFINE(M_SWAP, "SWAP", "Swap
>     space");
>       * in the 'meta' functions that process subtrees.  Since integer
>     division
>       * discards remainders, we can express this computation as
>       * skip = (m * m**h) / (m - 1)
>     - * skip = (m * radix / BLIST_BMAP_RADIX) / (m - 1)
>     - * and if m divides BLIST_BMAP_RADIX, we can simplify further to
>     - * skip = radix / (BLIST_BMAP_RADIX / m * (m - 1))
>     - * so that a simple integer division is enough for the calculation.
>     + * skip = (m * (radix / BLIST_BMAP_RADIX)) / (m - 1)
>     + * and since m divides BLIST_BMAP_RADIX, we can simplify further to
>     + * skip = (radix / (BLIST_BMAP_RADIX / m)) / (m - 1)
>     + * skip = radix / ((BLIST_BMAP_RADIX / m) * (m - 1))
>     + * so that simple integer division by a constant can safely be
>     used for the
>     + * calculation.
>       */
>      static inline daddr_t
>      radix_to_skip(daddr_t radix)
>      {
>
>             return (radix /
>     -           (BLIST_BMAP_RADIX / BLIST_META_RADIX *
>     (BLIST_META_RADIX - 1)));
>     +           ((BLIST_BMAP_RADIX / BLIST_META_RADIX) *
>     (BLIST_META_RADIX - 1)));
>      }
>
>      /*
>     _______________________________________________
>     svn-src-head@freebsd.org <javascript:;> mailing list
>     https://lists.freebsd.org/mailman/listinfo/svn-src-head
>     <https://lists.freebsd.org/mailman/listinfo/svn-src-head>;
>     To unsubscribe, send any mail to
>     "svn-src-head-unsubscribe@freebsd.org <javascript:;>"
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?773de469-dc2f-d335-2506-bdf0a4db848a>