Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751930AbbBVH6c (ORCPT ); Sun, 22 Feb 2015 02:58:32 -0500 Received: from mail-wg0-f50.google.com ([74.125.82.50]:55121 "EHLO mail-wg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751547AbbBVH6b (ORCPT ); Sun, 22 Feb 2015 02:58:31 -0500 Date: Sun, 22 Feb 2015 08:58:25 +0100 From: Ingo Molnar To: Heinrich Schuchardt Cc: Andrew Morton , Joe Perches , Peter Zijlstra , Oleg Nesterov , Vladimir Davydov , Thomas Gleixner , Kees Cook , David Rientjes , Johannes Weiner , "David S. Miller" , Andy Lutomirski , Michael Marineau , Aaron Tomlin , Prarit Bhargava , Steven Rostedt , Jens Axboe , "Paul E. McKenney" , Rik van Riel , Davidlohr Bueso , Guenter Roeck , linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/3 v3] kernel/fork.c: avoid division by zero Message-ID: <20150222075825.GA20626@gmail.com> References: <20150218122851.d1ae723ff12887f9ab919431@linux-foundation.org> <1424557146-29965-1-git-send-email-xypron.glpk@gmx.de> <1424557146-29965-2-git-send-email-xypron.glpk@gmx.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1424557146-29965-2-git-send-email-xypron.glpk@gmx.de> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1457 Lines: 41 * Heinrich Schuchardt wrote: > PAGE_SIZE is not guaranteed to be equal to or less than 8 times the > THREAD_SIZE. > > E.g. architecture hexagon may have page size 1M and thread size 4096. > This would lead to a division by zero in the calculation of max_threads. > > With 32-bit calculus there is no solution which delivers valid results > for all possible combinations of the parameters. > The code is only called once. > Hence a 64-bit calculation can be used as solution. > > The calculation of max_threads is moved to a separate function. > This allows future patches to use the same logic, e.g. when > - max_threads is set by writing to /proc/sys/kernel/threads-max > - when adding or removing memory. > > Signed-off-by: Heinrich Schuchardt > --- > kernel/fork.c | 59 ++++++++++++++++++++++++++++++++++++++++++----------------- > 1 file changed, 42 insertions(+), 17 deletions(-) So it would be nice to split this patch into two parts: first do a patch that splits out a version of set_max_threads() that matches current behavior (including the bug). Then a second patch that fixes the bug. This would make it much easier to review. Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/