Hi Peter, Ingo and Arnaldo, Could you help review this and have this fix merged in next RC? The perf is totaly broken now! Thanks. On Tue, Feb 12, 2019 at 11:52:21PM +0800, Changbin Du wrote: > Perf tool now is broken by commit 9dff0aa95a32 ("perf/core: Don't WARN() > for impossible ring-buffer sizes"). The get_order() should be used but not > the order_base_2(). This mistake makes mmap() on perf fd always fail. > > Fixes: 9dff0aa95a32 ("perf/core: Don't WARN() for impossible ring-buffer sizes") > Signed-off-by: Changbin Du <changbin.du@xxxxxxxxx> > Cc: Mark Rutland <mark.rutland@xxxxxxx> > Cc: Julien Thierry <julien.thierry@xxxxxxx> > Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > Cc: Jiri Olsa <jolsa@xxxxxxxxxx> > Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> > Cc: Ingo Molnar <mingo@xxxxxxxxxx> > Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> > --- > kernel/events/ring_buffer.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c > index 309ef5a64af5..55faafca4a6e 100644 > --- a/kernel/events/ring_buffer.c > +++ b/kernel/events/ring_buffer.c > @@ -734,7 +734,7 @@ struct ring_buffer *rb_alloc(int nr_pages, long watermark, int cpu, int flags) > size = sizeof(struct ring_buffer); > size += nr_pages * sizeof(void *); > > - if (order_base_2(size) >= MAX_ORDER) > + if (get_order(size) >= MAX_ORDER) > goto fail; > > rb = kzalloc(size, GFP_KERNEL); > -- > 2.19.1 > -- Cheers, Changbin Du