Messages in this thread | | | From | SeongJae Park <> | Subject | Re: [PATCH RESEND MERGE REQUEST] mm/damon: move damon_rand() definition into damon.h | Date | Fri, 3 Dec 2021 09:19:36 +0000 |
| |
On Thu, 2 Dec 2021 15:12:13 -0800 Andrew Morton <akpm@linux-foundation.org> wrote:
> On Thu, 2 Dec 2021 15:58:59 +0800 Xin Hao <xhao@linux.alibaba.com> 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).
Yes, agreed.
> > In particular, this expression references `l' twice, so calling > > damon_rand(a++, b); > > will increment `a' twice, surprise surprise.
Thank you for this nice explanation.
> > Can someone please send a followup patch to convert this (and any > similar damon macros) into (probably static inlined) C functions?
Sure, I will do, unless someone shows interest here.
Thanks, SJ
| |