From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752761AbbBYHWZ (ORCPT ); Wed, 25 Feb 2015 02:22:25 -0500 Received: from mout.gmx.net ([212.227.15.15]:55031 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750777AbbBYHWY (ORCPT ); Wed, 25 Feb 2015 02:22:24 -0500 Message-ID: <54ED77E8.8090001@gmx.de> Date: Wed, 25 Feb 2015 08:21:12 +0100 From: Heinrich Schuchardt User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.4.0 MIME-Version: 1.0 To: Ingo Molnar CC: David Rientjes , Andrew Morton , Aaron Tomlin , Andy Lutomirski , Davidlohr Bueso , "David S. Miller" , Fabian Frederick , Guenter Roeck , "H. Peter Anvin" , Jens Axboe , Joe Perches , Johannes Weiner , Kees Cook , Michael Marineau , Oleg Nesterov , "Paul E. McKenney" , Peter Zijlstra , Prarit Bhargava , Rik van Riel , Rusty Russell , Steven Rostedt , Thomas Gleixner , Vladimir Davydov , linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/3 v5] kernel/fork.c: new function for max_threads References: <1424722477-23758-1-git-send-email-xypron.glpk@gmx.de> <1424806701-30099-1-git-send-email-xypron.glpk@gmx.de> <1424806701-30099-2-git-send-email-xypron.glpk@gmx.de> <54ECEBD0.9060800@gmx.de> In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:9qExa0y1mAMdH7TCL8OUrrM7nE51XQlwhX6AYtYl/oNmrQ7eHNP CfPL1a2LPJdgUe25LumBTNKZPHI8S952wLiD9e2Bx8ZFELbOf/xuMxUyXr0jTKnaYP3ymPR QKnn7n9R34PFdhZ9KXccxKFbSw82PWZYcZBvK2Kob4aTtlDnVwabBQgUcH6K5aIXmOpr76j x5l7mgtbB7RFO34uf14oA== X-UI-Out-Filterresults: notjunk:1; Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 24.02.2015 23:16, David Rientjes wrote: > On Tue, 24 Feb 2015, Heinrich Schuchardt wrote: > >>> I'm afraid I don't understand this. The intent of the patch is to >>> separate the max_threads logic into a new function, correct? If that's >>> true, then I don't understand why UINT_MAX is being introduced into this >>> path and passed to the new function when it is ignored. >>> >>> I think it would be better to simply keep passing mempages to fork_init() >>> and then pass it to set_max_threads() where max_threads actually gets set >>> using the argument passed. At least, the code would then match the intent >>> of the patch. >>> >> Please, read patch 2/3 which provides support for the argument, >> and patch 3/3 that finally needs it. >> > > The problem is with the structure of your patchset. You want three > patches. There's one bugfix patch, a preparation patch, and a feature > patch. The bugfix patch should come first so that it can be applied, > possibly, to stable kernels and doesn't depend on unnecessary preparation > patches for features. > > 1/3: change the implementation of fork_init(), with commentary, to avoid > the divide by zero on certain arches, enforce the limits, and deal with > variable types to prevent overflow. This is the most urgent patch and > fixes a bug. > > 2/3: simply extract the fixed fork_init() implementation into a new > set_max_threads() in preparation to use it for threads-max, (hint: > UINT_MAX and ignored arguments should not appear in this patch), > > 3/3: use the new set_max_threads() implementation for threads-max with an > update to the documentation. > Hello Ingo, the current structure of the patch set is based on your suggestion in https://lkml.org/lkml/2015/2/22/22 Would you agree with the sequence of patches proposed by David? Best regards Heinrich