diff -urN oldtree/include/linux/sysctl.h newtree/include/linux/sysctl.h --- oldtree/include/linux/sysctl.h 2006-09-24 19:25:46.000000000 -0400 +++ newtree/include/linux/sysctl.h 2006-09-26 14:41:30.000000000 -0400 @@ -156,6 +156,8 @@ KERN_INTERACTIVE=77, /* interactive tasks can have cpu bursts */ KERN_COMPUTE=78, /* adjust timeslices for a compute server */ KERN_ISO_CPU=79, /* percent cpu SCHED_ISO tasks run SCHED_RR */ + KERN_STRCS_RR_SLICE=80, /* alter value of min RR slice */ + KERN_STRCS_RR_FACTOR=81, /* factor for default RR slice */ }; diff -urN oldtree/init/Kconfig newtree/init/Kconfig --- oldtree/init/Kconfig 2006-09-24 17:38:20.000000000 -0400 +++ newtree/init/Kconfig 2006-09-26 14:51:19.000000000 -0400 @@ -79,7 +79,9 @@ help This scheduler is an O(1) single priority array with a foreground- background interactive design. (default in no-sources) + endchoice +source "init/Kconfig.staircase" endmenu menu "General setup" diff -urN oldtree/init/Kconfig.staircase newtree/init/Kconfig.staircase --- oldtree/init/Kconfig.staircase 1969-12-31 19:00:00.000000000 -0500 +++ newtree/init/Kconfig.staircase 2006-09-26 14:54:06.000000000 -0400 @@ -0,0 +1,217 @@ +menu "Staircase Tunable Options" +choice + prompt "Staircase Kernel Tunable Preset: " + default STAIRCASE_DESKTOP + +config STAIRCASE_SERVER + bool "Server" + ---help--- + Best setting for servers. + + Setting: + sched_interactive = 0; + sched_compute = 0; + sched_iso_cpu = 0; + vm_mapped = 33; + vm_hardmaplimit = 0; + vm_tail_largefiles = 0; + vm_dirty_ratio = 66; + staircase_rr_slice = 6 + staircase_rr_factor = 19 + + config STAIRCASE_FILE_SERVER + bool "File Server" + ---help--- + Best setting for file servers. + + Setting: + sched_interactive = 0; + sched_compute = 0; + sched_iso_cpu = 0; + vm_mapped = 0; + vm_hardmaplimit = 0; + vm_tail_largefiles = 0; + vm_dirty_ratio = 66; + staircase_rr_slice = 6 + staircase_rr_factor = 19 + +config STAIRCASE_COMPUTE_SERVER + bool "Compute Server" + ---help--- + Best setting for compute servers. + + Setting: + sched_interactive = 0; + sched_compute = 1; + sched_iso_cpu = 0; + vm_mapped = 0; + vm_hardmaplimit = 0; + vm_tail_largefiles = 0; + vm_dirty_ratio = 66; + staircase_rr_slice = 6 + staircase_rr_factor = 19 + +config STAIRCASE_GAMING + bool "Gaming" + ---help--- + Best setting for strict gaming. + + Setting: + sched_interactive = 0; + sched_compute = 1; + sched_iso_cpu = 0; + vm_mapped = 33; + vm_hardmaplimit = 0; + vm_tail_largefiles = 0; + vm_dirty_ratio = 66; + staircase_rr_slice = 6 + staircase_rr_factor = 19 + +config STAIRCASE_DESKTOP + bool "Desktop" + ---help--- + Best setting for desktops. + + Setting: + sched_interactive = 1; + sched_compute = 0; + sched_iso_cpu = 80; + vm_mapped = 66; + vm_hardmaplimit = 1; + vm_tail_largefiles = 0; + vm_dirty_ratio = 0; + staircase_rr_slice = 6 + staircase_rr_factor = 19 + +config STAIRCASE_LL_DESKTOP + bool "Low Latency Desktop" + ---help--- + Best setting for lower latency desktops. + + Setting: + sched_interactive = 1; + sched_compute = 0; + sched_iso_cpu = 80; + vm_mapped = 66; + vm_hardmaplimit = 0; + vm_tail_largefiles = 0; + vm_dirty_ratio = 0; + staircase_rr_slice = 3 + staircase_rr_factor = 11 + +config STAIRCASE_CUSTOM + bool "Custom" +endchoice + +config STAIRCASE_RR_SLICE + depends on STAIRCASE_CUSTOM + int "Minimum Round Robin Timeslice (in milliseconds)" + range 2 50 + default 6 + ---help--- + This is the time all tasks within the same priority round robin. + Here we set the minimum value. + + Select '6' for default Staircase options. + +config STAIRCASE_RR_FACTOR + depends on STAIRCASE_CUSTOM + int "Factor For Default Value" + range 2 50 + default 19 + ---help--- + Factor For Default Value * Minimum Round Robin Timeslice + = Default Timeslice. + + Select '19' for default Staircase options. + +config SCHED_INTERACTIVE_SETTING + depends on STAIRCASE_CUSTOM + int "Interactive CPU Scheduling" + range 0 1 + default 1 + ---help--- + This is the interactive tunable for the staircase cpu scheduler. The default + behaviour is for nice value to determine cpu proportion only, and wakeup + latency is determined by the percentage of the cpu entitlement of a task. The + interactive tunable modifies this behaviour such that nice value determines + both cpu proportion and wakeup latency. + + Value is either '1' or '0' (Enable/Disable). + +config SCHED_COMPUTE_SETTING + depends on STAIRCASE_CUSTOM + int "Compute CPU Scheduling" + range 0 1 + default 0 + ---help--- + This setting makes round robin intervals much longer, delays task preemption + and disables interactive mode to optimise cpu cache usage - suitable for + computational intensive tasks. Enabling compute mode ignores the value of + interactive. It is not recommended to use compute mode if there is significant + network traffic or other workload that requires low latencies as it has extremely + bad latencies (intentionally). It is best suited to machines that do mainly cpu + work and very little I/O (eg rendering). + + Value is either '1' or '0' (Enable/Disable). + +config SCHED_ISO_CPU_SETTING + depends on STAIRCASE_CUSTOM + int "Percentage CPU For SCHED_ISO Tasks" + range 0 100 + default 80 + ---help--- + This sets the percentage cpu that the unprivileged SCHED_ISO tasks can + run effectively at realtime priority, averaged over a rolling 3 seconds. + + Select '80' for default CK option. + +config VM_MAPPED_SETTING + depends on STAIRCASE_CUSTOM + int "Percentage RAM Filled With Mapped Pages" + range 0 100 + default 66 + ---help--- + This is the percentage ram that is filled with mapped pages (applications) + before the vm will start reclaiming mapped pages by moving them to swap. + It is altered by the relative stress of the vm at the time so is not + strictly adhered to to prevent provoking out of memory kills. + + Select '66' for default CK option. + +config VM_HARDMAPLIMIT_SETTING + depends on STAIRCASE_CUSTOM + int "Hard Mapped Limit" + range 0 1 + default 1 + ---help--- + This flag makes the vm adhere to the mapped value as closely as possible + except in the most extreme vm stress where doing so would provoke an out + of memory condition. + + + Value is either '1' or '0' (Enable/Disable). + +config VM_TAIL_LARGEFILES_SETTING + depends on STAIRCASE_CUSTOM + int "Tail Large Files" + range 0 1 + default 1 + ---help--- + When enabled reads from large files to the tail end of the inactive lru list. + This means that any cache from reading large files is dropped very quickly, + preventing loss of mapped ram and useful pagecache when large files are read. + This does, however, make caching less effective when working with large files. + + Value is either '1' or '0' (Enable/Disable). + +config VM_DIRTY_RATIO_SETTING + depends on STAIRCASE_CUSTOM + int "Dirty Ratio" + range 0 100 + default 0 + ---help--- + The generator of dirty data starts writeback at this percentage. + + Select '0' for default CK option. +endmenu Files oldtree/scripts/kconfig/mconf and newtree/scripts/kconfig/mconf differ