2009-01-05 23:16:28

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: + mm-add-proc-controls-for-pdflush-threads.patch added to -mm tree

On Mon, Jan 05, 2009 at 02:53:03PM -0800, [email protected] wrote:
> Subject: mm: add /proc controls for pdflush threads

> @@ -1022,6 +1023,28 @@ static struct ctl_table vm_table[] = {
> .proc_handler = &proc_dointvec,
> },
> {
> + .ctl_name = CTL_UNNUMBERED,
> + .procname = "nr_pdflush_threads_min",
> + .data = &nr_pdflush_threads_min,
> + .maxlen = sizeof nr_pdflush_threads_min,
> + .mode = 0644 /* read-write */,
> + .proc_handler = &proc_dointvec_minmax,
> + .strategy = &sysctl_intvec,

.strategy isn't needed for /proc-only sysctls.

> + .extra1 = &one,
> + .extra2 = &nr_pdflush_threads_max,
> + },
> + {
> + .ctl_name = CTL_UNNUMBERED,
> + .procname = "nr_pdflush_threads_max",
> + .data = &nr_pdflush_threads_max,
> + .maxlen = sizeof nr_pdflush_threads_max,
> + .mode = 0644 /* read-write */,
> + .proc_handler = &proc_dointvec_minmax,
> + .strategy = &sysctl_intvec,

.strategy isn't needed for /proc-only sysctls.


2009-01-05 23:37:54

by Peter W. Morreale

[permalink] [raw]
Subject: Re: + mm-add-proc-controls-for-pdflush-threads.patch added to -mm tree

On Tue, 2009-01-06 at 02:21 +0300, Alexey Dobriyan wrote:
> On Mon, Jan 05, 2009 at 02:53:03PM -0800, [email protected] wrote:
> > Subject: mm: add /proc controls for pdflush threads
>
> > @@ -1022,6 +1023,28 @@ static struct ctl_table vm_table[] = {
> > .proc_handler = &proc_dointvec,
> > },
> > {
> > + .ctl_name = CTL_UNNUMBERED,
> > + .procname = "nr_pdflush_threads_min",
> > + .data = &nr_pdflush_threads_min,
> > + .maxlen = sizeof nr_pdflush_threads_min,
> > + .mode = 0644 /* read-write */,
> > + .proc_handler = &proc_dointvec_minmax,
> > + .strategy = &sysctl_intvec,
>
> .strategy isn't needed for /proc-only sysctls.
>

It is for checking the bounds of the new setting. Without it would be
possible to set the max thread count higher than the minimum and vice
versa. What you would actually wind up with would depend upon the
number of outstanding threads at the time of the sysctl change.

The specific limitations are that you cannot set max < min and min >
max. In addition, since the only way to get another pdflush thread is
via a pdflush thread, the minimum 'min' is 1. And the 'max' is an
arbitrary 1000.

Best,
-PWM



> > + .extra1 = &one,
> > + .extra2 = &nr_pdflush_threads_max,
> > + },
> > + {
> > + .ctl_name = CTL_UNNUMBERED,
> > + .procname = "nr_pdflush_threads_max",
> > + .data = &nr_pdflush_threads_max,
> > + .maxlen = sizeof nr_pdflush_threads_max,
> > + .mode = 0644 /* read-write */,
> > + .proc_handler = &proc_dointvec_minmax,
> > + .strategy = &sysctl_intvec,
>
> .strategy isn't needed for /proc-only sysctls.