Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S941462AbcKOIsV (ORCPT ); Tue, 15 Nov 2016 03:48:21 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:36623 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755336AbcKOIsS (ORCPT ); Tue, 15 Nov 2016 03:48:18 -0500 Date: Tue, 15 Nov 2016 09:48:14 +0100 From: Ingo Molnar To: Takao Indoh Cc: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Alexander Shishkin , linux-kernel@vger.kernel.org Subject: Re: [PATCH] perf/ring_buffer: Fix invalid page order Message-ID: <20161115084814.GB6130@gmail.com> References: <20161115071559.3756-1-indou.takao@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20161115071559.3756-1-indou.takao@jp.fujitsu.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1084 Lines: 35 * Takao Indoh wrote: > In rb_alloc_aux_page(), a page order is set to MAX_ORDER when order is > greater than MAX_ORDER, but page order should be less than MAX_ORDER, > therefore alloc_pages_node fails at least once. This patch fixes page > order so that it can be always less than MAX_ORDER. > > Signed-off-by: Takao Indoh > --- > kernel/events/ring_buffer.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c > index 257fa46..3f76fdd 100644 > --- a/kernel/events/ring_buffer.c > +++ b/kernel/events/ring_buffer.c > @@ -502,8 +502,8 @@ static struct page *rb_alloc_aux_page(int node, int order) > { > struct page *page; > > - if (order > MAX_ORDER) > - order = MAX_ORDER; > + if (order >= MAX_ORDER) > + order = MAX_ORDER - 1; > > do { > page = alloc_pages_node(node, PERF_AUX_GFP, order); I'm wondering under what circumstances this allocation failure was seen in practice - why did others not hit this? Thanks, Ingo