Re: [PATCH 1/3 v5] kernel/fork.c: new function for max_threads

Heinrich Schuchardt
2015-02-25T07:22:25Z

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