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

David Rientjes
2015-02-24T22:16:26Z

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.