svn commit: r322041 - head/sys/kern

Oliver Pinter oliver.pinter at hardenedbsd.org
Fri Aug 4 07:57:14 UTC 2017


On Friday, August 4, 2017, Alan Cox <alc at freebsd.org> wrote:

> Author: alc
> Date: Fri Aug  4 04:23:23 2017
> New Revision: 322041
> URL: 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 at rice.edu <javascript:;>>
>   Requested by: imp
>   Reviewed by:  imp
>   MFC after:    1 week
>   X-MFC after:  r321840
>   Differential Revision:        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?


>
>  #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 at freebsd.org <javascript:;> mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org
> <javascript:;>"
>


More information about the svn-src-all mailing list