Messages in this thread Patch in this message |  | | | Subject | Re: [2.6.16-mm1 patch] throttling tree patches | | From | Mike Galbraith <> | | Date | Fri, 24 Mar 2006 12:28:48 +0100 |
| |
patch 6/6
This patch exports throttling tuning knobs to userland. Should be useful for testing, and in easily discarded should my throttling stuff make it into mm, and survive the experience.
Signed-off-by: Mike Galbraith <efauklt@gmx.de>
--- linux-2.6.16-mm1/include/linux/sysctl.h.org 2006-03-24 09:43:37.000000000 +0100 +++ linux-2.6.16-mm1/include/linux/sysctl.h 2006-03-24 09:47:49.000000000 +0100 @@ -148,6 +148,8 @@ KERN_SPIN_RETRY=70, /* int: number of spinlock retries */ KERN_ACPI_VIDEO_FLAGS=71, /* int: flags for setting up video after ACPI sleep */ KERN_IA64_UNALIGNED=72, /* int: ia64 unaligned userland trap enable */ + KERN_SCHED_THROTTLE1=73, /* int: throttling credit period 1 in secs */ + KERN_SCHED_THROTTLE2=74, /* int: throttling credit period 2 in secs */ }; --- linux-2.6.16-mm1/kernel/sysctl.c.org 2006-03-24 09:43:14.000000000 +0100 +++ linux-2.6.16-mm1/kernel/sysctl.c 2006-03-24 09:47:49.000000000 +0100 @@ -73,6 +73,9 @@ extern int pid_max_min, pid_max_max; extern int sysctl_drop_caches; extern int percpu_pagelist_fraction; +extern int credit_c1; +extern int credit_c2; +extern int credit_max; #if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86) int unknown_nmi_panic; @@ -230,6 +233,11 @@ { .ctl_name = 0 } }; +/* Constants for minimum and maximum testing in vm_table and + * kern_table. We use these as one-element integer vectors. */ +static int zero; +static int one_hundred = 100; + static ctl_table kern_table[] = { { .ctl_name = KERN_OSTYPE, @@ -684,15 +692,31 @@ .proc_handler = &proc_dointvec, }, #endif + { + .ctl_name = KERN_SCHED_THROTTLE1, + .procname = "credit_c1", + .data = &credit_c1, + .maxlen = sizeof (int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &zero, + .extra2 = &credit_max, + }, + { + .ctl_name = KERN_SCHED_THROTTLE2, + .procname = "credit_c2", + .data = &credit_c2, + .maxlen = sizeof (int), + .mode = 0644, + .proc_handler = &proc_dointvec_minmax, + .strategy = &sysctl_intvec, + .extra1 = &zero, + .extra2 = &credit_max, + }, { .ctl_name = 0 } }; -/* Constants for minimum and maximum testing in vm_table. - We use these as one-element integer vectors. */ -static int zero; -static int one_hundred = 100; - - static ctl_table vm_table[] = { { .ctl_name = VM_OVERCOMMIT_MEMORY, --- linux-2.6.16-mm1/kernel/sched.c-5.slice_accounting 2006-03-24 09:40:33.000000000 +0100 +++ linux-2.6.16-mm1/kernel/sched.c 2006-03-24 09:51:06.000000000 +0100 @@ -220,11 +220,12 @@ * credit that fits in 32 bits jiffies is 42949 seconds. */ -#define CREDIT_C1 10 -#define CREDIT_C2 14400 +int credit_c1 = 10; +int credit_c2 = 14400; +int credit_max = 42949; -#define C1 (CREDIT_C1 * MAX_BONUS * HZ) -#define C2 (CREDIT_C2 * MAX_BONUS * HZ + C1) +#define C1 (credit_c1 * MAX_BONUS * HZ) +#define C2 (credit_c2 * MAX_BONUS * HZ + C1) #define C3 (MAX_BONUS * C2) #define credit_exhausted(p, credit) \
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |