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...@gmail.com> > Cc: Mark Rutland <mark.rutl...@arm.com> > Cc: Julien Thierry <julien.thie...@arm.com> > Cc: Linus Torvalds <torva...@linux-foundation.org> > Cc: Jiri Olsa <jo...@redhat.com> > Cc: Peter Zijlstra <pet...@infradead.org> > Cc: Ingo Molnar <mi...@redhat.com> > Cc: Alexander Shishkin <alexander.shish...@linux.intel.com> > Cc: <sta...@vger.kernel.org> > --- > 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