On Thu, 2 Dec 2021 15:58:59 +0800 Xin Hao <xhao@xxxxxxxxxxxxxxxxx> wrote: > damon_rand() is called in three files:damon/core.c, damon/ > paddr.c, damon/vaddr.c, i think there is no need to redefine > this twice, So move it to damon.h will be a good choice. Fair enough. > +/* Get a random number in [l, r) */ > +#define damon_rand(l, r) (l + prandom_u32_max(r - l)) This shouldn't be implemented as a macro, for all the usual reasons (typechecking, side-effects, ugliness, code-documentation site, etc). In particular, this expression references `l' twice, so calling damon_rand(a++, b); will increment `a' twice, surprise surprise. Can someone please send a followup patch to convert this (and any similar damon macros) into (probably static inlined) C functions?