Re: [PATCH 2/2] Add /proc controls for pdflush threads

From: Randy Dunlap
Date: Tue Dec 30 2008 - 22:31:16 EST


Peter W. Morreale wrote:
> On Tue, 2008-12-30 at 15:59 -0800, Randy Dunlap wrote:
>> Peter W Morreale wrote:
>>> From: \"Peter W. Morreale\" <pmorreale@xxxxxxxxxx>
>>>
>>> This patch adds /proc entries to give the admin the ability to
>>> control the minimum and maximum number of pdflush threads. This allows
>>> finer control of pdflush on both large and small machines.
>>>
>>> The patch adds '/proc/sys/vm/nr_pdflush_threads_min' and
>>> '/proc/sys/vm/nr_pdflush_threads_max' with r/w permissions.
>> These need to be documented in (ugh) either
>> Documentation/filesystems/proc.txt or
>> Documentation/sysctl/vm.txt. Hard to say which one, but I'd
>> recommend the latter (vm.txt) since they are sysctls.
>>
>>
>> It looks like there is a lot of duplication between them.
>> That's not good IMO.
>>
>
> Hummm... worse than that. Documentation/sysctl/vm.txt is missing 9
> proc/sys/vm entries and hasn't been updated since (ahem) 2.2.10.
>
> Documentation/file_systems/proc.txt is much more recent -
> 2.4.0-test11-pre4. My how time flies... :-)

Thanks for checking on those.

> I can take a stab at updating vm.txt. Would it be ok to remove the vm
> verbiage from proc.txt and replace it with a pointer to vm.txt?

Yes, sounds good to me (for sysctls). Thanks again.

>
> -PWM
>
>>> ---
>>>
>>> Signed-off-by: Peter W Morreale <pmorreale@xxxxxxxxxx>
>>>
>>> include/linux/sysctl.h | 2 ++
>>> include/linux/writeback.h | 2 ++
>>> kernel/sysctl.c | 16 ++++++++++++++++
>>> mm/pdflush.c | 19 ++++++++++++++-----
>>> 4 files changed, 34 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
>>> index d0437f3..9921e62 100644
>>> --- a/include/linux/sysctl.h
>>> +++ b/include/linux/sysctl.h
>>> @@ -205,6 +205,8 @@ enum
>>> VM_PANIC_ON_OOM=33, /* panic at out-of-memory */
>>> VM_VDSO_ENABLED=34, /* map VDSO into new processes? */
>>> VM_MIN_SLAB=35, /* Percent pages ignored by zone reclaim */
>>> + VM_NR_PDFLUSH_THREADS_MAX=36, /* nr_pdflush_threads_max */
>>> + VM_NR_PDFLUSH_THREADS_MIN=37, /* nr_pdflush_threads_min */
>>> };
>>>
>>>
>>> diff --git a/include/linux/writeback.h b/include/linux/writeback.h
>>> index 12b15c5..ee566a0 100644
>>> --- a/include/linux/writeback.h
>>> +++ b/include/linux/writeback.h
>>> @@ -150,6 +150,8 @@ void writeback_set_ratelimit(void);
>>> /* pdflush.c */
>>> extern int nr_pdflush_threads; /* Global so it can be exported to sysctl
>>> read-only. */
>>> +extern int nr_pdflush_threads_max; /* Global so it can be exported to sysctl */
>>> +extern int nr_pdflush_threads_min; /* Global so it can be exported to sysctl */
>>>
>>>
>>> #endif /* WRITEBACK_H */
>>> diff --git a/kernel/sysctl.c b/kernel/sysctl.c
>>> index 50ec088..6dae777 100644
>>> --- a/kernel/sysctl.c
>>> +++ b/kernel/sysctl.c
>>> @@ -948,6 +948,22 @@ static struct ctl_table vm_table[] = {
>>> .proc_handler = &proc_dointvec,
>>> },
>>> {
>>> + .ctl_name = VM_NR_PDFLUSH_THREADS_MIN,
>>> + .procname = "nr_pdflush_threads_min",
>>> + .data = &nr_pdflush_threads_min,
>>> + .maxlen = sizeof nr_pdflush_threads_min,
>>> + .mode = 0644 /* read-only*/,
>>> + .proc_handler = &proc_dointvec,
>>> + },
>>> + {
>>> + .ctl_name = VM_NR_PDFLUSH_THREADS_MAX,
>>> + .procname = "nr_pdflush_threads_max",
>>> + .data = &nr_pdflush_threads_max,
>>> + .maxlen = sizeof nr_pdflush_threads_max,
>>> + .mode = 0644 /* read-only*/,
>>> + .proc_handler = &proc_dointvec,
>>> + },
>>> + {
>>> .ctl_name = VM_SWAPPINESS,
>>> .procname = "swappiness",
>>> .data = &vm_swappiness,


--
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/