linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* 2.5.64-mm2
@ 2003-03-08  2:51 Andrew Morton
  2003-03-08  3:44 ` [patch] updated scheduler-tunables for 2.5.64-mm2 Robert Love
  2003-03-08  3:49 ` 2.5.64-mm2 Shawn
  0 siblings, 2 replies; 13+ messages in thread
From: Andrew Morton @ 2003-03-08  2:51 UTC (permalink / raw)
  To: linux-kernel, linux-mm

http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.64/2.5.64-mm2/

Just lots of little stuff here.  Mainly a resync with various people.

Note: there is a change to the console handling code in Linus's tree which
means that if you have both VT console and serial console enabled in kernel
config, the serial console now wins.  Nothing comes out on the screen during
bootup.  It used to be the case that the VT console was initialised first.

If this happens you will need to specify the console device on the boot
command line.

We appear to have at least three use-after-free bugs.  One is fixed here, and
there are extra debugging goodies which may help us find the others.  Please
enable memory debugging and keep an eye open.



Changes since 2.5.64-mm1:


 linus.patch

 Latest -bk

-balance_irq-cleanup.patch
-balance_irq-fix.patch
-rpc_rmdir-fix.patch
-aic-makefile-fix.patch
-flock-fix.patch
-rtc-locking-fix.patch
-sk98-build-fix.patch
-cciss-pci-hotplug-fix.patch
-export-pfn_to_nid.patch
-move-CONFIG_SWAP.patch
-random-stack-use.patch
-inode-pruning-fix.patch
-remove-__pgd_offset.patch
-remove-__pmd_offset.patch
-remove-__pte_offset.patch
-htree-lock_kernel-fix.patch
-pci-1.patch
-pci-2.patch
-pci-3.patch
-pci-4.patch
-pci-5.patch
-elf_core_dump-stack-size-reduction.patch
-uninline-binfmt_elf.patch

 Merged

+register_blkdev-cleanups.patch

 Toward 32-bit dev-t.

-shared-irq-warning.patch

 Dropped.  Need to do something different here.

+as-state-tracking-and-debug.patch
+as-state-tracking-fix.patch
+as-nr_dispatched-atomic-fix.patch

 Anticipatory scheduler work.

-sched-b3.patch

 Sort-of merged.

+vm_area-use-after-free-fix.patch

 Fix the use-after-free in the vma slab cache.

+slab-caller-tracking.patch

 Record the calling function inside slab objects, and report that on
 use-after-free erfors.

+slab-caller-tracking-symbolic.patch

 Teach the above about kallsyms.

+CONFIG_SWAP-fix.patch

 Fix up CONFIG_SWAP menus

+hugh-nonlinear-fixes.patch

 Try to make nonlinear VMAs and objrmap play better together.

+readdir-usercopy-check.patch

 Add some missing copy_to_user() checks.

+gcc3-inline-fix.patch

 Apply a club to gcc-3.x's head.

+pirq_enable_irq-warning-fix.patch

 Fix a compiler warning

+hugetlb-unmap_vmas-fix.patch

 Fix an oops with hugetlb pages, CONFIG_SMP && CONFIG_PREEMPT

+ext2-double-free-bug.patch

 Fix an error-path double-free.

+load_elf_binary-memleak-fix.patch

 Fix an error-path memory leak

+xattr-bug-fixes.patch

 Extended Attribute fixes

+noirqbalance-fix.patch

 Make the noirqalance boot option work

+show_interrupts-locking-fix.patch

 Put some locking into the /proc/interrupts handler code.

+eepro100-lockup-fix.patch

 Fix an eepro100 deadlock

+task_prio-fix.patch

 Scheduler fix for SCHED_RR tasks

+remove-kernel_flag.patch

 Eliminate lock_kernel()



All 79 patches:

linus.patch
  Latest from Linus

register_blkdev-cleanups.patch
  register_blkdev cleanups

mm.patch
  add -mmN to EXTRAVERSION

ppc64-reloc_hide.patch

ppc64-pci-patch.patch
  Subject: pci patch

ppc64-aio-32bit-emulation.patch
  32/64bit emulation for aio

ppc64-64-bit-exec-fix.patch
  Subject: 64bit exec

ppc64-scruffiness.patch
  Fix some PPC64 compile warnings

sym-do-160.patch
  make the SYM driver do 160 MB/sec

kgdb.patch

nfsd-disable-softirq.patch
  Fix race in svcsock.c in 2.5.61

report-lost-ticks.patch
  make lost-tick detection more informative

ptrace-flush.patch
  cache flushing in the ptrace code

buffer-debug.patch
  buffer.c debugging

warn-null-wakeup.patch

ext3-truncate-ordered-pages.patch
  ext3: explicitly free truncated pages

limit-write-latency.patch
  fix possible latency in balance_dirty_pages()

reiserfs_file_write-5.patch

tcp-wakeups.patch
  Use fast wakeups in TCP/IPV4

lockd-lockup-fix-2.patch
  Subject: Re: Fw: Re: 2.4.20 NFS server lock-up (SMP)

rcu-stats.patch
  RCU statistics reporting

ext3-journalled-data-assertion-fix.patch
  Remove incorrect assertion from ext3

nfs-speedup.patch

nfs-oom-fix.patch
  nfs oom fix

sk-allocation.patch
  Subject: Re: nfs oom

nfs-more-oom-fix.patch

nfs-sendfile.patch
  Implement sendfile() for NFS

rpciod-atomic-allocations.patch
  Make rcpiod use atomic allocations

linux-isp.patch

isp-update-1.patch

remove-unused-congestion-stuff.patch
  Subject: [PATCH] remove unused congestion stuff

atm_dev_sem.patch
  convert atm_dev_lock from spinlock to semaphore

as-iosched.patch
  anticipatory I/O scheduler

as-random-fixes.patch
  Subject: [PATCH] important fixes

as-comment-fix.patch
  AS: comment fix

as-naming-comments-BUG.patch
  AS: fix up naming, comments, add more BUGs

as-unnecessary-test.patch

as-atomicity-fix.patch

as-state-tracking-and-debug.patch
  AS: state tracking fix and debug additions

as-state-tracking-fix.patch
  AS: state tracking fix

as-nr_dispatched-atomic-fix.patch

readahead-shrink-to-zero.patch
  Allow VFS readahead to fall to zero

cfq-2.patch
  CFQ scheduler, #2

smalldevfs.patch
  smalldevfs

objrmap-2.5.62-5.patch
  object-based rmap

objrmap-X-fix.patch
  objrmap fix for X

objrmap-nr_mapped-fix.patch
  objrmap: fix /proc/meminfo:Mapped

objrmap-mapped-mem-fix-2.patch
  fix objrmap mapped mem accounting again

objrmap-atomic_t-fix.patch
  Make objrmap mapcount non-atomic

per-cpu-disk-stats.patch
  Make diskstats per-cpu using kmalloc_percpu

scheduler-tunables.patch
  scheduler tunables

show_task-free-stack-fix.patch
  show_task() fix and cleanup

vm_area-use-after-free-fix.patch
  Fix vm_area_struct slab corruption

use-after-free-check.patch
  slab use-after-free detector

slab-caller-tracking.patch
  slab debug: track caller program counter

slab-caller-tracking-symbolic.patch
  slab debug: symbolic output in caller tracking

reiserfs-fix-memleaks.patch
  ReiserFS: fix memleaks on journal opening failures

copy_page_range-invalid-page-fix.patch
  Fix copy_page_range()'s handling of invalid pages

yellowfin-set_bit-fix.patch
  yellowfin driver set_bit fix

CONFIG_SWAP-fix.patch
  move CONFIG_SWAP around

remap-file-pages-2.5.63-a1.patch
  Subject: [patch] remap-file-pages-2.5.63-A1

pte_file-always.patch
  enable file-offset-in-pte's for all mappings

hugh-nonlinear-fixes.patch
  Fix nonlinear oddities

htree-nfs-fix.patch
  Fix ext3 htree / NFS compatibility problems

bonding-zerodiv-fix.patch
  Subject: [PATCH][bonding] division by zero bug

update_atime-ng.patch
  inode a/c/mtime modification speedup

one-sec-times.patch
  Implement a/c/time speedup in ext2 & ext3

readdir-usercopy-check.patch
  usercopy checks in old_readdir()

gcc3-inline-fix.patch
  work around gcc-3.x inlining bugs

pirq_enable_irq-warning-fix.patch
  fix return value in arch/i386/pci/irq.c

hugetlb-unmap_vmas-fix.patch
  hugetlb unmap_vmas() SMP && PREEMPT fix

ext2-double-free-bug.patch
  ext2: fix error-path double-free

load_elf_binary-memleak-fix.patch
  fix memory leak in load_elf_binary()

xattr-bug-fixes.patch
  Extended attribute sharing and debug macro typo fixes

noirqbalance-fix.patch
  Fix noirqbalance

show_interrupts-locking-fix.patch
  protect 'action' in show_interrupts

eepro100-lockup-fix.patch
  fix SMP lockup in eepro100 with ethtool on unused interface

task_prio-fix.patch
  simple task_prio() fix

remove-kernel_flag.patch
  no need for kernel_flag on UP



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [patch] updated scheduler-tunables for 2.5.64-mm2
  2003-03-08  2:51 2.5.64-mm2 Andrew Morton
@ 2003-03-08  3:44 ` Robert Love
  2003-03-08  3:50   ` Robert Love
  2003-03-08 18:25   ` Martin J. Bligh
  2003-03-08  3:49 ` 2.5.64-mm2 Shawn
  1 sibling, 2 replies; 13+ messages in thread
From: Robert Love @ 2003-03-08  3:44 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Fri, 2003-03-07 at 21:51, Andrew Morton wrote:

> Just lots of little stuff here.  Mainly a resync with various people.

Whoops.  Someone edited the scheduler-tunables.patch so it applied on
top of the interactivity changes, but then did not carry over those
changes to the tunable parameters in the patch ;)

So we end up with the usual values, and not the tuned parameters from
mainline.  Which is a shame, you know?

Attached patch is a complete replacement for the old patch.  It defaults
the tunable parameters to the new values in 2.5-bk.  I also added a
tuning knob for the NUMA node threshold stuff.

So we end up with:

        [22:42:31]rml@phantasy:~$ pef /proc/sys/sched
        child_penalty=50
        exit_weight=3
        interactive_delta=2
        max_sleep_avg=10000
        max_timeslice=200
        min_timeslice=10
        node_threshold=125
        parent_penalty=100
        prio_bonus_ratio=25
        starvation_limit=10000

Which looks good to me.

Andrew, please replace this for that stinky old one.  Thanks.

	Robert Love


 Documentation/filesystems/proc.txt |   87 +++++++++++++++++++++++++++++++++++++
 include/linux/sysctl.h             |   16 ++++++
 kernel/sched.c                     |   34 ++++++++++----
 kernel/sysctl.c                    |   48 +++++++++++++++++++-
 4 files changed, 173 insertions(+), 12 deletions(-)


diff -urN linux-2.5.64-mm2/Documentation/filesystems/proc.txt linux/Documentation/filesystems/proc.txt
--- linux-2.5.64-mm2/Documentation/filesystems/proc.txt	2003-03-07 22:40:27.885874664 -0500
+++ linux/Documentation/filesystems/proc.txt	2003-03-07 22:02:58.000000000 -0500
@@ -37,6 +37,7 @@
   2.8	/proc/sys/net/ipv4 - IPV4 settings
   2.9	Appletalk
   2.10	IPX
+  2.11  /proc/sys/sched - scheduler tunables
 
 ------------------------------------------------------------------------------
 Preface
@@ -1667,6 +1668,92 @@
 gives the  destination  network, the router node (or Directly) and the network
 address of the router (or Connected) for internal networks.
 
+2.11 /proc/sys/sched - scheduler tunables
+-----------------------------------------
+
+Useful knobs for tuning the scheduler live in /proc/sys/sched.
+
+child_penalty
+-------------
+
+Percentage of the parent's sleep_avg that children inherit.  sleep_avg is
+a running average of the time a process spends sleeping.  Tasks with high
+sleep_avg values are considered interactive and given a higher dynamic
+priority and a larger timeslice.  You typically want this some value just
+under 100.
+
+exit_weight
+-----------
+
+When a CPU hog task exits, its parent's sleep_avg is reduced by a factor of
+exit_weight against the exiting task's sleep_avg.
+
+interactive_delta
+-----------------
+
+If a task is "interactive" it is reinserted into the active array after it
+has expired its timeslice, instead of being inserted into the expired array.
+How "interactive" a task must be in order to be deemed interactive is a
+function of its nice value.  This interactive limit is scaled linearly by nice
+value and is offset by the interactive_delta.
+
+max_sleep_avg
+-------------
+
+max_sleep_avg is the largest value (in ms) stored for a task's running sleep
+average.  The larger this value, the longer a task needs to sleep to be
+considered interactive (maximum interactive bonus is a function of
+max_sleep_avg).
+
+max_timeslice
+-------------
+
+Maximum timeslice, in milliseconds.  This is the value given to tasks of the
+highest dynamic priority.
+
+min_timeslice
+-------------
+
+Minimum timeslice, in milliseconds.  This is the value given to tasks of the
+lowest dynamic priority.  Every task gets at least this slice of the processor
+per array switch.
+
+parent_penalty
+--------------
+
+Percentage of the parent's sleep_avg that it retains across a fork().
+sleep_avg is a running average of the time a process spends sleeping.  Tasks
+with high sleep_avg values are considered interactive and given a higher
+dynamic priority and a larger timeslice.  Normally, this value is 100 and thus
+task's retain their sleep_avg on fork.  If you want to punish interactive
+tasks for forking, set this below 100.
+
+prio_bonus_ratio
+----------------
+
+Middle percentage of the priority range that tasks can receive as a dynamic
+priority.  The default value of 25% ensures that nice values at the
+extremes are still enforced.  For example, nice +19 interactive tasks will
+never be able to preempt a nice 0 CPU hog.  Setting this higher will increase
+the size of the priority range the tasks can receive as a bonus.  Setting
+this lower will decrease this range, making the interactivity bonus less
+apparent and user nice values more applicable.
+
+starvation_limit
+----------------
+
+Sufficiently interactive tasks are reinserted into the active array when they
+run out of timeslice.  Normally, tasks are inserted into the expired array.
+Reinserting interactive tasks into the active array allows them to remain
+runnable, which is important to interactive performance.  This could starve
+expired tasks, however, since the interactive task could prevent the array
+switch.  To prevent starving the tasks on the expired array for too long. the
+starvation_limit is the longest (in ms) we will let the expired array starve
+at the expense of reinserting interactive tasks back into active.  Higher
+values here give more preferance to running interactive tasks, at the expense
+of expired tasks.  Lower values provide more fair scheduling behavior, at the
+expense of interactivity.  The units are in milliseconds.
+
 ------------------------------------------------------------------------------
 Summary
 ------------------------------------------------------------------------------
diff -urN linux-2.5.64-mm2/include/linux/sysctl.h linux/include/linux/sysctl.h
--- linux-2.5.64-mm2/include/linux/sysctl.h	2003-03-07 22:40:27.000000000 -0500
+++ linux/include/linux/sysctl.h	2003-03-07 22:08:19.000000000 -0500
@@ -66,7 +66,8 @@
 	CTL_DEV=7,		/* Devices */
 	CTL_BUS=8,		/* Busses */
 	CTL_ABI=9,		/* Binary emulation */
-	CTL_CPU=10		/* CPU stuff (speed scaling, etc) */
+	CTL_CPU=10,		/* CPU stuff (speed scaling, etc) */
+	CTL_SCHED=11,		/* scheduler tunables */
 };
 
 /* CTL_BUS names: */
@@ -157,6 +158,19 @@
 	VM_LOWER_ZONE_PROTECTION=20,/* Amount of protection of lower zones */
 };
 
+/* Tunable scheduler parameters in /proc/sys/sched/ */
+enum {
+	SCHED_MIN_TIMESLICE=1,		/* minimum process timeslice */
+	SCHED_MAX_TIMESLICE=2,		/* maximum process timeslice */
+	SCHED_CHILD_PENALTY=3,		/* penalty on fork to child */
+	SCHED_PARENT_PENALTY=4,		/* penalty on fork to parent */
+	SCHED_EXIT_WEIGHT=5,		/* penalty to parent of CPU hog child */
+	SCHED_PRIO_BONUS_RATIO=6,	/* percent of max prio given as bonus */
+	SCHED_INTERACTIVE_DELTA=7,	/* delta used to scale interactivity */
+	SCHED_MAX_SLEEP_AVG=8,		/* maximum sleep avg attainable */
+	SCHED_STARVATION_LIMIT=9,	/* no re-active if expired is starved */
+	SCHED_NODE_THRESHOLD=10,	/* NUMA node rebalance threshold */
+};
 
 /* CTL_NET names: */
 enum
diff -urN linux-2.5.64-mm2/kernel/sched.c linux/kernel/sched.c
--- linux-2.5.64-mm2/kernel/sched.c	2003-03-07 22:40:27.000000000 -0500
+++ linux/kernel/sched.c	2003-03-07 22:10:00.000000000 -0500
@@ -57,17 +57,31 @@
  * Minimum timeslice is 10 msecs, default timeslice is 100 msecs,
  * maximum timeslice is 200 msecs. Timeslices get refilled after
  * they expire.
+ *
+ * They are configurable via /proc/sys/sched
  */
-#define MIN_TIMESLICE		( 10 * HZ / 1000)
-#define MAX_TIMESLICE		(200 * HZ / 1000)
-#define CHILD_PENALTY		50
-#define PARENT_PENALTY		100
-#define EXIT_WEIGHT		3
-#define PRIO_BONUS_RATIO	25
-#define INTERACTIVE_DELTA	2
-#define MAX_SLEEP_AVG		(10*HZ)
-#define STARVATION_LIMIT	(10*HZ)
-#define NODE_THRESHOLD		125
+
+int min_timeslice = (10 * HZ) / 1000;
+int max_timeslice = (200 * HZ) / 1000;
+int child_penalty = 50;
+int parent_penalty = 100;
+int exit_weight = 3;
+int prio_bonus_ratio = 25;
+int interactive_delta = 2;
+int max_sleep_avg = 10 * HZ;
+int starvation_limit = 10 * HZ;
+int node_threshold = 125;
+
+#define MIN_TIMESLICE		(min_timeslice)
+#define MAX_TIMESLICE		(max_timeslice)
+#define CHILD_PENALTY		(child_penalty)
+#define PARENT_PENALTY		(parent_penalty)
+#define EXIT_WEIGHT		(exit_weight)
+#define PRIO_BONUS_RATIO	(prio_bonus_ratio)
+#define INTERACTIVE_DELTA	(interactive_delta)
+#define MAX_SLEEP_AVG		(max_sleep_avg)
+#define STARVATION_LIMIT	(starvation_limit)
+#define NODE_THRESHOLD		(node_threshold)
 
 /*
  * If a task is 'interactive' then we reinsert it in the active
diff -urN linux-2.5.64-mm2/kernel/sysctl.c linux/kernel/sysctl.c
--- linux-2.5.64-mm2/kernel/sysctl.c	2003-03-07 22:40:27.000000000 -0500
+++ linux/kernel/sysctl.c	2003-03-07 22:09:19.000000000 -0500
@@ -55,6 +55,16 @@
 extern int cad_pid;
 extern int pid_max;
 extern int sysctl_lower_zone_protection;
+extern int min_timeslice;
+extern int max_timeslice;
+extern int child_penalty;
+extern int parent_penalty;
+extern int exit_weight;
+extern int prio_bonus_ratio;
+extern int interactive_delta;
+extern int max_sleep_avg;
+extern int starvation_limit;
+extern int node_threshold;
 
 /* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */
 static int maxolduid = 65535;
@@ -112,6 +122,7 @@
 
 static ctl_table kern_table[];
 static ctl_table vm_table[];
+static ctl_table sched_table[];
 #ifdef CONFIG_NET
 extern ctl_table net_table[];
 #endif
@@ -156,6 +167,7 @@
 	{CTL_FS, "fs", NULL, 0, 0555, fs_table},
 	{CTL_DEBUG, "debug", NULL, 0, 0555, debug_table},
         {CTL_DEV, "dev", NULL, 0, 0555, dev_table},
+	{CTL_SCHED, "sched", NULL, 0, 0555, sched_table},
 	{0}
 };
 
@@ -358,7 +370,41 @@
 
 static ctl_table dev_table[] = {
 	{0}
-};  
+};
+
+static ctl_table sched_table[] = {
+	{SCHED_MAX_TIMESLICE, "max_timeslice", &max_timeslice,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &one, NULL},
+	{SCHED_MIN_TIMESLICE, "min_timeslice", &min_timeslice,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &one, NULL},
+	{SCHED_CHILD_PENALTY, "child_penalty", &child_penalty,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_PARENT_PENALTY, "parent_penalty", &parent_penalty,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_EXIT_WEIGHT, "exit_weight", &exit_weight,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_PRIO_BONUS_RATIO, "prio_bonus_ratio", &prio_bonus_ratio,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_INTERACTIVE_DELTA, "interactive_delta", &interactive_delta,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_MAX_SLEEP_AVG, "max_sleep_avg", &max_sleep_avg,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &one, NULL},
+	{SCHED_STARVATION_LIMIT, "starvation_limit", &starvation_limit,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_NODE_THRESHOLD, "node_threshold", &node_threshold,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &one, NULL},
+	{0}
+};
 
 extern void init_irq_proc (void);
 




--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: 2.5.64-mm2
  2003-03-08  2:51 2.5.64-mm2 Andrew Morton
  2003-03-08  3:44 ` [patch] updated scheduler-tunables for 2.5.64-mm2 Robert Love
@ 2003-03-08  3:49 ` Shawn
  2003-03-08  4:05   ` 2.5.64-mm2 Robert Love
  1 sibling, 1 reply; 13+ messages in thread
From: Shawn @ 2003-03-08  3:49 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

This mean anything to you?

make -f scripts/Makefile.build obj=arch/i386/lib
  GEN     include/linux/compile.h (updated)
  gcc2953 -Wp,-MD,init/.version.o.d -D__KERNEL__ -Iinclude -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
-pipe -mpreferred-stack-boundary=2 -march=i686 -malign-functions=4
-Iinclude/asm-i386/mach-default -fomit-frame-pointer -nostdinc
-iwithprefix include    -DKBUILD_BASENAME=version
-DKBUILD_MODNAME=version -c -o init/.tmp_version.o init/version.c
   ld -m elf_i386  -r -o init/built-in.o init/main.o init/version.o
init/mounts.o init/initramfs.o
kernel/built-in.o(__ksymtab+0xd00): undefined reference to `kernel_flag'
make: *** [.tmp_vmlinux1] Error 1


On Fri, 2003-03-07 at 20:51, Andrew Morton wrote:
> http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.64/2.5.64-mm2/
> 
> Just lots of little stuff here.  Mainly a resync with various people.
> 
> Note: there is a change to the console handling code in Linus's tree which
> means that if you have both VT console and serial console enabled in kernel
> config, the serial console now wins.  Nothing comes out on the screen during
> bootup.  It used to be the case that the VT console was initialised first.
> 
> If this happens you will need to specify the console device on the boot
> command line.
> 
> We appear to have at least three use-after-free bugs.  One is fixed here, and
> there are extra debugging goodies which may help us find the others.  Please
> enable memory debugging and keep an eye open.
> 
> 
> 
> Changes since 2.5.64-mm1:
> 
> 
>  linus.patch
> 
>  Latest -bk
> 
> -balance_irq-cleanup.patch
> -balance_irq-fix.patch
> -rpc_rmdir-fix.patch
> -aic-makefile-fix.patch
> -flock-fix.patch
> -rtc-locking-fix.patch
> -sk98-build-fix.patch
> -cciss-pci-hotplug-fix.patch
> -export-pfn_to_nid.patch
> -move-CONFIG_SWAP.patch
> -random-stack-use.patch
> -inode-pruning-fix.patch
> -remove-__pgd_offset.patch
> -remove-__pmd_offset.patch
> -remove-__pte_offset.patch
> -htree-lock_kernel-fix.patch
> -pci-1.patch
> -pci-2.patch
> -pci-3.patch
> -pci-4.patch
> -pci-5.patch
> -elf_core_dump-stack-size-reduction.patch
> -uninline-binfmt_elf.patch
> 
>  Merged
> 
> +register_blkdev-cleanups.patch
> 
>  Toward 32-bit dev-t.
> 
> -shared-irq-warning.patch
> 
>  Dropped.  Need to do something different here.
> 
> +as-state-tracking-and-debug.patch
> +as-state-tracking-fix.patch
> +as-nr_dispatched-atomic-fix.patch
> 
>  Anticipatory scheduler work.
> 
> -sched-b3.patch
> 
>  Sort-of merged.
> 
> +vm_area-use-after-free-fix.patch
> 
>  Fix the use-after-free in the vma slab cache.
> 
> +slab-caller-tracking.patch
> 
>  Record the calling function inside slab objects, and report that on
>  use-after-free erfors.
> 
> +slab-caller-tracking-symbolic.patch
> 
>  Teach the above about kallsyms.
> 
> +CONFIG_SWAP-fix.patch
> 
>  Fix up CONFIG_SWAP menus
> 
> +hugh-nonlinear-fixes.patch
> 
>  Try to make nonlinear VMAs and objrmap play better together.
> 
> +readdir-usercopy-check.patch
> 
>  Add some missing copy_to_user() checks.
> 
> +gcc3-inline-fix.patch
> 
>  Apply a club to gcc-3.x's head.
> 
> +pirq_enable_irq-warning-fix.patch
> 
>  Fix a compiler warning
> 
> +hugetlb-unmap_vmas-fix.patch
> 
>  Fix an oops with hugetlb pages, CONFIG_SMP && CONFIG_PREEMPT
> 
> +ext2-double-free-bug.patch
> 
>  Fix an error-path double-free.
> 
> +load_elf_binary-memleak-fix.patch
> 
>  Fix an error-path memory leak
> 
> +xattr-bug-fixes.patch
> 
>  Extended Attribute fixes
> 
> +noirqbalance-fix.patch
> 
>  Make the noirqalance boot option work
> 
> +show_interrupts-locking-fix.patch
> 
>  Put some locking into the /proc/interrupts handler code.
> 
> +eepro100-lockup-fix.patch
> 
>  Fix an eepro100 deadlock
> 
> +task_prio-fix.patch
> 
>  Scheduler fix for SCHED_RR tasks
> 
> +remove-kernel_flag.patch
> 
>  Eliminate lock_kernel()
> 
> 
> 
> All 79 patches:
> 
> linus.patch
>   Latest from Linus
> 
> register_blkdev-cleanups.patch
>   register_blkdev cleanups
> 
> mm.patch
>   add -mmN to EXTRAVERSION
> 
> ppc64-reloc_hide.patch
> 
> ppc64-pci-patch.patch
>   Subject: pci patch
> 
> ppc64-aio-32bit-emulation.patch
>   32/64bit emulation for aio
> 
> ppc64-64-bit-exec-fix.patch
>   Subject: 64bit exec
> 
> ppc64-scruffiness.patch
>   Fix some PPC64 compile warnings
> 
> sym-do-160.patch
>   make the SYM driver do 160 MB/sec
> 
> kgdb.patch
> 
> nfsd-disable-softirq.patch
>   Fix race in svcsock.c in 2.5.61
> 
> report-lost-ticks.patch
>   make lost-tick detection more informative
> 
> ptrace-flush.patch
>   cache flushing in the ptrace code
> 
> buffer-debug.patch
>   buffer.c debugging
> 
> warn-null-wakeup.patch
> 
> ext3-truncate-ordered-pages.patch
>   ext3: explicitly free truncated pages
> 
> limit-write-latency.patch
>   fix possible latency in balance_dirty_pages()
> 
> reiserfs_file_write-5.patch
> 
> tcp-wakeups.patch
>   Use fast wakeups in TCP/IPV4
> 
> lockd-lockup-fix-2.patch
>   Subject: Re: Fw: Re: 2.4.20 NFS server lock-up (SMP)
> 
> rcu-stats.patch
>   RCU statistics reporting
> 
> ext3-journalled-data-assertion-fix.patch
>   Remove incorrect assertion from ext3
> 
> nfs-speedup.patch
> 
> nfs-oom-fix.patch
>   nfs oom fix
> 
> sk-allocation.patch
>   Subject: Re: nfs oom
> 
> nfs-more-oom-fix.patch
> 
> nfs-sendfile.patch
>   Implement sendfile() for NFS
> 
> rpciod-atomic-allocations.patch
>   Make rcpiod use atomic allocations
> 
> linux-isp.patch
> 
> isp-update-1.patch
> 
> remove-unused-congestion-stuff.patch
>   Subject: [PATCH] remove unused congestion stuff
> 
> atm_dev_sem.patch
>   convert atm_dev_lock from spinlock to semaphore
> 
> as-iosched.patch
>   anticipatory I/O scheduler
> 
> as-random-fixes.patch
>   Subject: [PATCH] important fixes
> 
> as-comment-fix.patch
>   AS: comment fix
> 
> as-naming-comments-BUG.patch
>   AS: fix up naming, comments, add more BUGs
> 
> as-unnecessary-test.patch
> 
> as-atomicity-fix.patch
> 
> as-state-tracking-and-debug.patch
>   AS: state tracking fix and debug additions
> 
> as-state-tracking-fix.patch
>   AS: state tracking fix
> 
> as-nr_dispatched-atomic-fix.patch
> 
> readahead-shrink-to-zero.patch
>   Allow VFS readahead to fall to zero
> 
> cfq-2.patch
>   CFQ scheduler, #2
> 
> smalldevfs.patch
>   smalldevfs
> 
> objrmap-2.5.62-5.patch
>   object-based rmap
> 
> objrmap-X-fix.patch
>   objrmap fix for X
> 
> objrmap-nr_mapped-fix.patch
>   objrmap: fix /proc/meminfo:Mapped
> 
> objrmap-mapped-mem-fix-2.patch
>   fix objrmap mapped mem accounting again
> 
> objrmap-atomic_t-fix.patch
>   Make objrmap mapcount non-atomic
> 
> per-cpu-disk-stats.patch
>   Make diskstats per-cpu using kmalloc_percpu
> 
> scheduler-tunables.patch
>   scheduler tunables
> 
> show_task-free-stack-fix.patch
>   show_task() fix and cleanup
> 
> vm_area-use-after-free-fix.patch
>   Fix vm_area_struct slab corruption
> 
> use-after-free-check.patch
>   slab use-after-free detector
> 
> slab-caller-tracking.patch
>   slab debug: track caller program counter
> 
> slab-caller-tracking-symbolic.patch
>   slab debug: symbolic output in caller tracking
> 
> reiserfs-fix-memleaks.patch
>   ReiserFS: fix memleaks on journal opening failures
> 
> copy_page_range-invalid-page-fix.patch
>   Fix copy_page_range()'s handling of invalid pages
> 
> yellowfin-set_bit-fix.patch
>   yellowfin driver set_bit fix
> 
> CONFIG_SWAP-fix.patch
>   move CONFIG_SWAP around
> 
> remap-file-pages-2.5.63-a1.patch
>   Subject: [patch] remap-file-pages-2.5.63-A1
> 
> pte_file-always.patch
>   enable file-offset-in-pte's for all mappings
> 
> hugh-nonlinear-fixes.patch
>   Fix nonlinear oddities
> 
> htree-nfs-fix.patch
>   Fix ext3 htree / NFS compatibility problems
> 
> bonding-zerodiv-fix.patch
>   Subject: [PATCH][bonding] division by zero bug
> 
> update_atime-ng.patch
>   inode a/c/mtime modification speedup
> 
> one-sec-times.patch
>   Implement a/c/time speedup in ext2 & ext3
> 
> readdir-usercopy-check.patch
>   usercopy checks in old_readdir()
> 
> gcc3-inline-fix.patch
>   work around gcc-3.x inlining bugs
> 
> pirq_enable_irq-warning-fix.patch
>   fix return value in arch/i386/pci/irq.c
> 
> hugetlb-unmap_vmas-fix.patch
>   hugetlb unmap_vmas() SMP && PREEMPT fix
> 
> ext2-double-free-bug.patch
>   ext2: fix error-path double-free
> 
> load_elf_binary-memleak-fix.patch
>   fix memory leak in load_elf_binary()
> 
> xattr-bug-fixes.patch
>   Extended attribute sharing and debug macro typo fixes
> 
> noirqbalance-fix.patch
>   Fix noirqbalance
> 
> show_interrupts-locking-fix.patch
>   protect 'action' in show_interrupts
> 
> eepro100-lockup-fix.patch
>   fix SMP lockup in eepro100 with ethtool on unused interface
> 
> task_prio-fix.patch
>   simple task_prio() fix
> 
> remove-kernel_flag.patch
>   no need for kernel_flag on UP
> 
> 
> 
> -
> 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/
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [patch] updated scheduler-tunables for 2.5.64-mm2
  2003-03-08  3:44 ` [patch] updated scheduler-tunables for 2.5.64-mm2 Robert Love
@ 2003-03-08  3:50   ` Robert Love
  2003-03-08 18:25   ` Martin J. Bligh
  1 sibling, 0 replies; 13+ messages in thread
From: Robert Love @ 2003-03-08  3:50 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linux-mm

On Fri, 2003-03-07 at 22:44, Robert Love wrote:

> Attached patch is a complete replacement for the old patch.  It defaults
> the tunable parameters to the new values in 2.5-bk.  I also added a
> tuning knob for the NUMA node threshold stuff.

I am in an accommodating mood... while the first patch was most likely
easiest for Andrew to use (swap out the old for the new), an incremental
diff is probably easier for the users to just apply on top of
2.5.64-mm2.

So here is an incremental diff, which has the following changes over
what is in 2.5-mm now:

	- update the tunable parameters to have the new defaults
	  Linus applied to 2.5-bk.  These defaults are similar to
	  the values in the sched-rml-updates.patch Andrew had
	  in here for awhile, and I like them.

	- add tuning for the node_threshold parameter for NUMA
	  folks

I encourage users to apply this, since we are getting close to sniffing
out the last of the interactivity woes and these updated parameters are
a large part of the solution.

Enjoy,

	Robert Love


 include/linux/sysctl.h |    1 +
 kernel/sched.c         |   11 ++++++-----
 kernel/sysctl.c        |    4 ++++
 3 files changed, 11 insertions(+), 5 deletions(-)


diff -urN linux-2.5.64-mm2/include/linux/sysctl.h linux/include/linux/sysctl.h
--- linux-2.5.64-mm2/include/linux/sysctl.h	2003-03-07 22:08:04.000000000 -0500
+++ linux/include/linux/sysctl.h	2003-03-07 22:08:19.000000000 -0500
@@ -169,6 +169,7 @@
 	SCHED_INTERACTIVE_DELTA=7,	/* delta used to scale interactivity */
 	SCHED_MAX_SLEEP_AVG=8,		/* maximum sleep avg attainable */
 	SCHED_STARVATION_LIMIT=9,	/* no re-active if expired is starved */
+	SCHED_NODE_THRESHOLD=10,	/* NUMA node rebalance threshold */
 };
 
 /* CTL_NET names: */
diff -urN linux-2.5.64-mm2/kernel/sched.c linux/kernel/sched.c
--- linux-2.5.64-mm2/kernel/sched.c	2003-03-07 22:08:04.000000000 -0500
+++ linux/kernel/sched.c	2003-03-07 22:10:00.000000000 -0500
@@ -62,14 +62,15 @@
  */
 
 int min_timeslice = (10 * HZ) / 1000;
-int max_timeslice = (300 * HZ) / 1000;
-int child_penalty = 95;
+int max_timeslice = (200 * HZ) / 1000;
+int child_penalty = 50;
 int parent_penalty = 100;
 int exit_weight = 3;
 int prio_bonus_ratio = 25;
 int interactive_delta = 2;
-int max_sleep_avg = 2 * HZ;
-int starvation_limit = 2 * HZ;
+int max_sleep_avg = 10 * HZ;
+int starvation_limit = 10 * HZ;
+int node_threshold = 125;
 
 #define MIN_TIMESLICE		(min_timeslice)
 #define MAX_TIMESLICE		(max_timeslice)
@@ -80,7 +81,7 @@
 #define INTERACTIVE_DELTA	(interactive_delta)
 #define MAX_SLEEP_AVG		(max_sleep_avg)
 #define STARVATION_LIMIT	(starvation_limit)
-#define NODE_THRESHOLD		125
+#define NODE_THRESHOLD		(node_threshold)
 
 /*
  * If a task is 'interactive' then we reinsert it in the active
diff -urN linux-2.5.64-mm2/kernel/sysctl.c linux/kernel/sysctl.c
--- linux-2.5.64-mm2/kernel/sysctl.c	2003-03-07 22:08:04.000000000 -0500
+++ linux/kernel/sysctl.c	2003-03-07 22:09:19.000000000 -0500
@@ -64,6 +64,7 @@
 extern int interactive_delta;
 extern int max_sleep_avg;
 extern int starvation_limit;
+extern int node_threshold;
 
 /* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */
 static int maxolduid = 65535;
@@ -399,6 +400,9 @@
 	{SCHED_STARVATION_LIMIT, "starvation_limit", &starvation_limit,
 	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
 	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_NODE_THRESHOLD, "node_threshold", &node_threshold,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &one, NULL},
 	{0}
 };
 



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: 2.5.64-mm2
  2003-03-08  4:05   ` 2.5.64-mm2 Robert Love
@ 2003-03-08  4:01     ` Shawn
  2003-03-08  4:22       ` 2.5.64-mm2 Robert Love
  0 siblings, 1 reply; 13+ messages in thread
From: Shawn @ 2003-03-08  4:01 UTC (permalink / raw)
  To: Robert Love; +Cc: Andrew Morton, linux-kernel, linux-mm

[-- Attachment #1: Type: text/plain, Size: 1293 bytes --]

Here's my .config. I am not SMP.

I suspected the distclean thing, but I made "Mr. Proper" too just in
case.

Check it out. I also just tryed redhat's gcc 2.96, same results.

On Fri, 2003-03-07 at 22:05, Robert Love wrote:
> On Fri, 2003-03-07 at 22:49, Shawn wrote:
> 
> > make -f scripts/Makefile.build obj=arch/i386/lib
> >   GEN     include/linux/compile.h (updated)
> >   gcc2953 -Wp,-MD,init/.version.o.d -D__KERNEL__ -Iinclude -Wall
> > -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
> > -pipe -mpreferred-stack-boundary=2 -march=i686 -malign-functions=4
> > -Iinclude/asm-i386/mach-default -fomit-frame-pointer -nostdinc
> > -iwithprefix include    -DKBUILD_BASENAME=version
> > -DKBUILD_MODNAME=version -c -o init/.tmp_version.o init/version.c
> >    ld -m elf_i386  -r -o init/built-in.o init/main.o init/version.o
> > init/mounts.o init/initramfs.o
> > kernel/built-in.o(__ksymtab+0xd00): undefined reference to `kernel_flag'
> > make: *** [.tmp_vmlinux1] Error 1
> 
> Did you do a `make distclean' before building?  If not, can you?
> 
> And what combination of SMP + PREEMPT are you?  I assume you are
> UP+PREEMPT, since that was what we changed.  It should not matter,
> though... I think you just need to clean.
> 
> Let me know.
> 
> 	Robert Love
> 

[-- Attachment #2: .config --]
[-- Type: text/plain, Size: 24373 bytes --]

#
# Automatically generated make config: don't edit
#
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y

#
# General setup
#
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=15

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODVERSIONS=y
CONFIG_KMOD=y

#
# Processor type and features
#
CONFIG_X86_PC=y
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
CONFIG_MK7=y
# CONFIG_MK8 is not set
# CONFIG_MELAN is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_USE_3DNOW=y
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_SMP is not set
CONFIG_PREEMPT=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_TSC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=y
# CONFIG_X86_MCE_P4THERMAL is not set
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_EDD=y
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_HIGHPTE=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_HAVE_DEC_LOCK=y

#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
# CONFIG_SOFTWARE_SUSPEND is not set

#
# ACPI Support
#
CONFIG_ACPI=y
# CONFIG_ACPI_HT_ONLY is not set
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_BUS=y
CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_SYSTEM=y
# CONFIG_APM is not set

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set

#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
# CONFIG_SCx200 is not set
# CONFIG_PCI_LEGACY_PROC is not set
CONFIG_PCI_NAMES=y
# CONFIG_ISA is not set
# CONFIG_MCA is not set
# CONFIG_HOTPLUG is not set

#
# Executable file formats
#
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m

#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set

#
# Parallel port support
#
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_PC_CML1=m
# CONFIG_PARPORT_SERIAL is not set
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
# CONFIG_PARPORT_OTHER is not set
CONFIG_PARPORT_1284=y

#
# Plug and Play support
#
CONFIG_PNP=y
CONFIG_PNP_NAMES=y
CONFIG_PNP_CARD=y
CONFIG_PNP_DEBUG=y

#
# Protocols
#
CONFIG_ISAPNP=y
CONFIG_PNPBIOS=y

#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
# CONFIG_LBD is not set

#
# ATA/ATAPI/MFM/RLL device support
#
CONFIG_IDE=y

#
# IDE, ATA and ATAPI Block devices
#
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_IDE is not set
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_IDEDISK_STROKE is not set
CONFIG_BLK_DEV_IDECD=m
CONFIG_BLK_DEV_IDEFLOPPY=m
CONFIG_IDE_TASK_IOCTL=y

#
# IDE chipset support/bugfixes
#
CONFIG_BLK_DEV_CMD640=y
CONFIG_BLK_DEV_CMD640_ENHANCED=y
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_GENERIC=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_BLK_DEV_IDE_TCQ=y
CONFIG_BLK_DEV_IDE_TCQ_DEFAULT=y
CONFIG_BLK_DEV_IDE_TCQ_DEPTH=8
CONFIG_BLK_DEV_OFFBOARD=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_PCI_WIP is not set
CONFIG_BLK_DEV_ADMA=y
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
CONFIG_BLK_DEV_CMD64X=y
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_RZ1000 is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
CONFIG_BLK_DEV_VIA82CXXX=y
CONFIG_IDEDMA_AUTO=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_BLK_DEV_IDE_MODES=y

#
# SCSI device support
#
# CONFIG_SCSI is not set

#
# Multi-device support (RAID and LVM)
#
CONFIG_MD=y
CONFIG_BLK_DEV_MD=m
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_MULTIPATH=m
CONFIG_BLK_DEV_DM=m

#
# Fusion MPT device support
#

#
# IEEE 1394 (FireWire) support (EXPERIMENTAL)
#
CONFIG_IEEE1394=m

#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set
CONFIG_IEEE1394_OUI_DB=y

#
# Device Drivers
#
# CONFIG_IEEE1394_PCILYNX is not set
CONFIG_IEEE1394_OHCI1394=m

#
# Protocol Drivers
#
CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_ETH1394=m
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m
CONFIG_IEEE1394_CMP=m
CONFIG_IEEE1394_AMDTP=m

#
# I2O device support
#
CONFIG_I2O=m
CONFIG_I2O_PCI=m
CONFIG_I2O_BLOCK=m
CONFIG_I2O_PROC=m

#
# Networking support
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=m
CONFIG_PACKET_MMAP=y
# CONFIG_NETLINK_DEV is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_FILTER=y
CONFIG_UNIX=y
CONFIG_NET_KEY=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_FWMARK=y
CONFIG_IP_ROUTE_NAT=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_TOS=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_ROUTE_LARGE_TABLES=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
# CONFIG_NET_IPGRE is not set
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not set
CONFIG_INET_ECN=y
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
CONFIG_XFRM_USER=m

#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=m
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_LIMIT=m
CONFIG_IP_NF_MATCH_MAC=m
CONFIG_IP_NF_MATCH_PKTTYPE=m
CONFIG_IP_NF_MATCH_MARK=m
CONFIG_IP_NF_MATCH_MULTIPORT=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_DSCP=m
CONFIG_IP_NF_MATCH_AH_ESP=m
CONFIG_IP_NF_MATCH_LENGTH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_TCPMSS=m
CONFIG_IP_NF_MATCH_HELPER=m
CONFIG_IP_NF_MATCH_STATE=m
CONFIG_IP_NF_MATCH_CONNTRACK=m
CONFIG_IP_NF_MATCH_UNCLEAN=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_MIRROR=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
# CONFIG_IP_NF_NAT_LOCAL is not set
CONFIG_IP_NF_NAT_SNMP_BASIC=m
CONFIG_IP_NF_NAT_IRC=m
CONFIG_IP_NF_NAT_FTP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_IP_NF_TARGET_TCPMSS=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_COMPAT_IPCHAINS=m
CONFIG_IP_NF_COMPAT_IPFWADM=m
# CONFIG_IPV6 is not set

#
# SCTP Configuration (EXPERIMENTAL)
#
CONFIG_IPV6_SCTP__=y
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
CONFIG_VLAN_8021Q=m
CONFIG_LLC=m
CONFIG_LLC_UI=y
CONFIG_IPX=m
CONFIG_IPX_INTERN=y
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=y
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
CONFIG_IPDDP_DECAP=y
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
# CONFIG_X25 is not set
CONFIG_LAPB=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
CONFIG_NET_HW_FLOWCONTROL=y

#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_CSZ=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
# CONFIG_NET_CLS_POLICE is not set

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
CONFIG_NETDEVICES=y

#
# ARCnet devices
#
# CONFIG_ARCNET is not set
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
CONFIG_EQUALIZER=m
CONFIG_TUN=m
# CONFIG_ETHERTAP is not set
# CONFIG_NET_SB1000 is not set

#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
# CONFIG_MII is not set
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
CONFIG_NET_VENDOR_3COM=y
CONFIG_VORTEX=m
# CONFIG_TYPHOON is not set

#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
CONFIG_8139CP=m
CONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
CONFIG_8139TOO_TUNE_TWISTER=y
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
CONFIG_VIA_RHINE=m
# CONFIG_VIA_RHINE_MMIO is not set

#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PLIP=m
CONFIG_PPP=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPPOE=m
# CONFIG_SLIP is not set

#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set

#
# Token Ring devices (depends on LLC=y)
#
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set

#
# Wan interfaces
#
# CONFIG_WAN is not set

#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set

#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set

#
# ISDN subsystem
#
# CONFIG_ISDN_BOOL is not set

#
# Telephony Support
#
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_TSDEV=m
CONFIG_INPUT_TSDEV_SCREEN_X=240
CONFIG_INPUT_TSDEV_SCREEN_Y=320
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set

#
# Input I/O drivers
#
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
CONFIG_SERIO_CT82C710=y
CONFIG_SERIO_PARKBD=m

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
CONFIG_INPUT_UINPUT=m

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_CONSOLE is not set
# CONFIG_SERIAL_8250_EXTENDED is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
CONFIG_PRINTER=m
# CONFIG_LP_CONSOLE is not set
# CONFIG_PPDEV is not set
# CONFIG_TIPAR is not set

#
# I2C support
#
CONFIG_I2C=m
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_PHILIPSPAR=m
CONFIG_I2C_ELV=m
CONFIG_I2C_VELLEMAN=m
CONFIG_SCx200_ACB=m
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ELEKTOR=m
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_PROC=m

#
# I2C Hardware Sensors Mainboard support
#
CONFIG_I2C_AMD756=m
CONFIG_I2C_AMD8111=m

#
# I2C Hardware Sensors Chip support
#
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_LM75=m

#
# Mice
#
CONFIG_BUSMOUSE=m
# CONFIG_QIC02_TAPE is not set

#
# IPMI
#
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_KCS=m
CONFIG_IPMI_WATCHDOG=m

#
# Watchdog Cards
#
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
CONFIG_SOFT_WATCHDOG=m
CONFIG_WDT=m
CONFIG_WDTPCI=m
# CONFIG_WDT_501 is not set
# CONFIG_PCWATCHDOG is not set
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_IB700_WDT is not set
# CONFIG_I810_TCO is not set
# CONFIG_MIXCOMWD is not set
# CONFIG_SCx200_WDT is not set
# CONFIG_60XX_WDT is not set
# CONFIG_W83877F_WDT is not set
# CONFIG_MACHZ_WDT is not set
# CONFIG_SC520_WDT is not set
# CONFIG_AMD7XX_TCO is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_SC1200_WDT is not set
# CONFIG_WAFER_WDT is not set
# CONFIG_CPU5_WDT is not set
CONFIG_INTEL_RNG=m
CONFIG_AMD_RNG=m
CONFIG_NVRAM=m
CONFIG_RTC=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set

#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
CONFIG_AGP=m
CONFIG_AGP3=y
CONFIG_AGP_INTEL=m
CONFIG_AGP_VIA=m
CONFIG_AGP_AMD=m
CONFIG_AGP_SIS=m
CONFIG_AGP_ALI=m
CONFIG_AGP_SWORKS=m
CONFIG_AGP_AMD_8151=m
CONFIG_AGP_I7505=m
CONFIG_DRM=y
CONFIG_DRM_TDFX=m
CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_I810=m
CONFIG_DRM_I830=m
CONFIG_DRM_MGA=m
# CONFIG_MWAVE is not set
CONFIG_RAW_DRIVER=y
CONFIG_HANGCHECK_TIMER=y

#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set

#
# File systems
#
CONFIG_QUOTA=y
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_PROC_INFO=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_JBD=y
CONFIG_JBD_DEBUG=y
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
CONFIG_TMPFS=y
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_JFS_FS=m
CONFIG_JFS_POSIX_ACL=y
# CONFIG_JFS_DEBUG is not set
CONFIG_JFS_STATISTICS=y
CONFIG_MINIX_FS=m
# CONFIG_VXFS_FS is not set
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS=y
# CONFIG_QNX4FS_FS is not set
CONFIG_ROMFS_FS=m
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
# CONFIG_SYSV_FS is not set
CONFIG_UDF_FS=m
# CONFIG_UFS_FS is not set
# CONFIG_XFS_FS is not set

#
# Network File Systems
#
CONFIG_CODA_FS=m
# CONFIG_INTERMEZZO_FS is not set
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_NFS_V4=y
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_CIFS=m
CONFIG_SMB_FS=m
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp437"
# CONFIG_NCP_FS is not set
# CONFIG_AFS_FS is not set
CONFIG_ZISOFS_FS=m
CONFIG_FS_MBCACHE=y
CONFIG_FS_POSIX_ACL=y

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
CONFIG_ACORN_PARTITION=y
CONFIG_ACORN_PARTITION_ICS=y
CONFIG_ACORN_PARTITION_ADFS=y
CONFIG_ACORN_PARTITION_POWERTEC=y
CONFIG_ACORN_PARTITION_RISCIX=y
CONFIG_OSF_PARTITION=y
CONFIG_AMIGA_PARTITION=y
CONFIG_ATARI_PARTITION=y
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_LDM_PARTITION=y
CONFIG_LDM_DEBUG=y
CONFIG_SGI_PARTITION=y
CONFIG_ULTRIX_PARTITION=y
CONFIG_SUN_PARTITION=y
CONFIG_EFI_PARTITION=y
CONFIG_SMB_NLS=y
CONFIG_NLS=y

#
# Native Language Support
#
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set

#
# Graphics support
#
CONFIG_FB=y
# CONFIG_FB_CLGEN is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
CONFIG_FB_VESA=y
CONFIG_VIDEO_SELECT=y
# CONFIG_FB_HGA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_I810 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_VIRTUAL is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_PCI_CONSOLE=y
CONFIG_FBCON_ADVANCED=y
CONFIG_FONT_SUN8x16=y
# CONFIG_FONT_SUN12x22 is not set
CONFIG_FONTS=y
# CONFIG_FONT_8x8 is not set
# CONFIG_FONT_8x16 is not set
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
# CONFIG_FONT_MINI_4x6 is not set

#
# Sound
#
CONFIG_SOUND=y

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_SEQUENCER=m
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=m
CONFIG_SND_VERBOSE_PRINTK=y
# CONFIG_SND_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_DUMMY=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m

#
# PCI devices
#
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS4281 is not set
CONFIG_SND_EMU10K1=m
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_SONICVIBES is not set
CONFIG_SND_VIA82XX=m

#
# ALSA USB devices
#
# CONFIG_SND_USB_AUDIO is not set

#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set

#
# USB support
#
CONFIG_USB=y
CONFIG_USB_DEBUG=y

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
CONFIG_USB_BANDWIDTH=y
CONFIG_USB_DYNAMIC_MINORS=y

#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_UHCI_HCD=m

#
# USB Device Class drivers
#
CONFIG_USB_AUDIO=m
CONFIG_USB_BLUETOOTH_TTY=m
CONFIG_USB_MIDI=m
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m

#
# SCSI support is needed for USB Storage
#

#
# USB Human Interface Devices (HID)
#
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y
# CONFIG_HID_FF is not set
CONFIG_USB_HIDDEV=y

#
# USB HID Boot Protocol drivers
#
CONFIG_USB_KBD=m
CONFIG_USB_MOUSE=m
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_XPAD is not set

#
# USB Imaging devices
#
CONFIG_USB_MDC800=m
CONFIG_USB_SCANNER=m

#
# USB Multimedia devices
#
CONFIG_USB_DABUSB=m

#
# Video4Linux support is needed for USB Multimedia device support
#

#
# USB Network adaptors
#
CONFIG_USB_CATC=m
CONFIG_USB_CDCETHER=m
CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_USBNET=m

#
# USB port drivers
#
CONFIG_USB_USS720=m

#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set

#
# USB Miscellaneous drivers
#
CONFIG_USB_EMI26=m
CONFIG_USB_TIGL=m
CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
CONFIG_USB_BRLVGER=m
CONFIG_USB_LCD=m
CONFIG_USB_TEST=m

#
# Bluetooth support
#
# CONFIG_BT is not set

#
# Profiling support
#
# CONFIG_PROFILING is not set

#
# Kernel hacking
#
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_X86_REMOTE_DEBUG is not set
# CONFIG_DEBUG_IOVIRT is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_KALLSYMS=y
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_FRAME_POINTER is not set
CONFIG_X86_EXTRA_IRQS=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y

#
# Security options
#
# CONFIG_SECURITY is not set

#
# Cryptographic options
#
# CONFIG_CRYPTO is not set

#
# Library routines
#
# CONFIG_CRC32 is not set
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_X86_BIOS_REBOOT=y

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: 2.5.64-mm2
  2003-03-08  3:49 ` 2.5.64-mm2 Shawn
@ 2003-03-08  4:05   ` Robert Love
  2003-03-08  4:01     ` 2.5.64-mm2 Shawn
  0 siblings, 1 reply; 13+ messages in thread
From: Robert Love @ 2003-03-08  4:05 UTC (permalink / raw)
  To: Shawn; +Cc: Andrew Morton, linux-kernel, linux-mm

On Fri, 2003-03-07 at 22:49, Shawn wrote:

> make -f scripts/Makefile.build obj=arch/i386/lib
>   GEN     include/linux/compile.h (updated)
>   gcc2953 -Wp,-MD,init/.version.o.d -D__KERNEL__ -Iinclude -Wall
> -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
> -pipe -mpreferred-stack-boundary=2 -march=i686 -malign-functions=4
> -Iinclude/asm-i386/mach-default -fomit-frame-pointer -nostdinc
> -iwithprefix include    -DKBUILD_BASENAME=version
> -DKBUILD_MODNAME=version -c -o init/.tmp_version.o init/version.c
>    ld -m elf_i386  -r -o init/built-in.o init/main.o init/version.o
> init/mounts.o init/initramfs.o
> kernel/built-in.o(__ksymtab+0xd00): undefined reference to `kernel_flag'
> make: *** [.tmp_vmlinux1] Error 1

Did you do a `make distclean' before building?  If not, can you?

And what combination of SMP + PREEMPT are you?  I assume you are
UP+PREEMPT, since that was what we changed.  It should not matter,
though... I think you just need to clean.

Let me know.

	Robert Love

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: 2.5.64-mm2
  2003-03-08  4:01     ` 2.5.64-mm2 Shawn
@ 2003-03-08  4:22       ` Robert Love
  2003-03-08 13:59         ` 2.5.64-mm2 Shawn
  0 siblings, 1 reply; 13+ messages in thread
From: Robert Love @ 2003-03-08  4:22 UTC (permalink / raw)
  To: Shawn, Andrew Morton; +Cc: linux-kernel, linux-mm

On Fri, 2003-03-07 at 23:01, Shawn wrote:
> Here's my .config. I am not SMP.
> 
> I suspected the distclean thing, but I made "Mr. Proper" too just in
> case.

Oh.  Its those damn modules.  The bane of my existence.

Problem is, ksyms.c is exporting kernel_flag under PREEMPT.  Now we just
need it exported under SMP.

Andrew, would you mind appending this to the current patch? Sorry.

Everyone else, you need this if you are UP+PREEMPT+MODULES.

	Robert Love


 kernel/ksyms.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


diff -urN linux-2.5.64-mm2/kernel/ksyms.c linux/kernel/ksyms.c
--- linux-2.5.64-mm2/kernel/ksyms.c	2003-03-07 22:08:04.000000000 -0500
+++ linux/kernel/ksyms.c	2003-03-07 23:19:32.098500176 -0500
@@ -488,7 +488,7 @@
 #if CONFIG_SMP
 EXPORT_SYMBOL_GPL(set_cpus_allowed);
 #endif
-#if CONFIG_SMP || CONFIG_PREEMPT
+#if CONFIG_SMP
 EXPORT_SYMBOL(kernel_flag);
 #endif
 EXPORT_SYMBOL(jiffies);



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: 2.5.64-mm2
  2003-03-08  4:22       ` 2.5.64-mm2 Robert Love
@ 2003-03-08 13:59         ` Shawn
  2003-03-08 14:45           ` 2.5.64-mm2 Shawn
  0 siblings, 1 reply; 13+ messages in thread
From: Shawn @ 2003-03-08 13:59 UTC (permalink / raw)
  To: Robert Love; +Cc: Andrew Morton, linux-kernel, linux-mm

Now I oops on boot justt when it trys to mount root (reiserfs),
unfortunately, I cannot page up to see the oops text.

I'll try booting with vesa fbcon to see if I can't see more.

On Fri, 2003-03-07 at 22:22, Robert Love wrote:
> On Fri, 2003-03-07 at 23:01, Shawn wrote:
> > Here's my .config. I am not SMP.
> > 
> > I suspected the distclean thing, but I made "Mr. Proper" too just in
> > case.
> 
> Oh.  Its those damn modules.  The bane of my existence.
> 
> Problem is, ksyms.c is exporting kernel_flag under PREEMPT.  Now we just
> need it exported under SMP.
> 
> Andrew, would you mind appending this to the current patch? Sorry.
> 
> Everyone else, you need this if you are UP+PREEMPT+MODULES.
> 
> 	Robert Love
> 
> 
>  kernel/ksyms.c |    2 +-
>  1 files changed, 1 insertion(+), 1 deletion(-)
> 
> 
> diff -urN linux-2.5.64-mm2/kernel/ksyms.c linux/kernel/ksyms.c
> --- linux-2.5.64-mm2/kernel/ksyms.c	2003-03-07 22:08:04.000000000 -0500
> +++ linux/kernel/ksyms.c	2003-03-07 23:19:32.098500176 -0500
> @@ -488,7 +488,7 @@
>  #if CONFIG_SMP
>  EXPORT_SYMBOL_GPL(set_cpus_allowed);
>  #endif
> -#if CONFIG_SMP || CONFIG_PREEMPT
> +#if CONFIG_SMP
>  EXPORT_SYMBOL(kernel_flag);
>  #endif
>  EXPORT_SYMBOL(jiffies);
> 
> 
> 
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: 2.5.64-mm2
  2003-03-08 13:59         ` 2.5.64-mm2 Shawn
@ 2003-03-08 14:45           ` Shawn
  2003-03-08 19:49             ` 2.5.64-mm2 Robert Love
  0 siblings, 1 reply; 13+ messages in thread
From: Shawn @ 2003-03-08 14:45 UTC (permalink / raw)
  To: Robert Love; +Cc: Andrew Morton, linux-kernel, linux-mm

Eliminate initrd (eliminate using it, not support for it) and oops goes
away. Weird.

On Sat, 2003-03-08 at 07:59, Shawn wrote:
> Now I oops on boot justt when it trys to mount root (reiserfs),
> unfortunately, I cannot page up to see the oops text.
> 
> I'll try booting with vesa fbcon to see if I can't see more.
> 
> On Fri, 2003-03-07 at 22:22, Robert Love wrote:
> > On Fri, 2003-03-07 at 23:01, Shawn wrote:
> > > Here's my .config. I am not SMP.
> > > 
> > > I suspected the distclean thing, but I made "Mr. Proper" too just in
> > > case.
> > 
> > Oh.  Its those damn modules.  The bane of my existence.
> > 
> > Problem is, ksyms.c is exporting kernel_flag under PREEMPT.  Now we just
> > need it exported under SMP.
> > 
> > Andrew, would you mind appending this to the current patch? Sorry.
> > 
> > Everyone else, you need this if you are UP+PREEMPT+MODULES.
> > 
> > 	Robert Love
> > 
> > 
> >  kernel/ksyms.c |    2 +-
> >  1 files changed, 1 insertion(+), 1 deletion(-)
> > 
> > 
> > diff -urN linux-2.5.64-mm2/kernel/ksyms.c linux/kernel/ksyms.c
> > --- linux-2.5.64-mm2/kernel/ksyms.c	2003-03-07 22:08:04.000000000 -0500
> > +++ linux/kernel/ksyms.c	2003-03-07 23:19:32.098500176 -0500
> > @@ -488,7 +488,7 @@
> >  #if CONFIG_SMP
> >  EXPORT_SYMBOL_GPL(set_cpus_allowed);
> >  #endif
> > -#if CONFIG_SMP || CONFIG_PREEMPT
> > +#if CONFIG_SMP
> >  EXPORT_SYMBOL(kernel_flag);
> >  #endif
> >  EXPORT_SYMBOL(jiffies);
> > 
> > 
> > 
> -
> 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/
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [patch] updated scheduler-tunables for 2.5.64-mm2
  2003-03-08  3:44 ` [patch] updated scheduler-tunables for 2.5.64-mm2 Robert Love
  2003-03-08  3:50   ` Robert Love
@ 2003-03-08 18:25   ` Martin J. Bligh
  2003-03-09  1:54     ` Robert Love
  1 sibling, 1 reply; 13+ messages in thread
From: Martin J. Bligh @ 2003-03-08 18:25 UTC (permalink / raw)
  To: Robert Love, Andrew Morton; +Cc: linux-kernel, linux-mm

Cool ... do you want to add the other two NUMA parameters as well to
your stack? (the idle and busy rebalance rates). Here's what I had
before with those in.

diff -urpN -X /home/fletch/.diff.exclude 143-schedstat-scripts/Documentation/filesystems/proc.txt 144-sched_tunables/Documentation/filesystems/proc.txt
--- 143-schedstat-scripts/Documentation/filesystems/proc.txt	Thu Feb 13 11:08:01 2003
+++ 144-sched_tunables/Documentation/filesystems/proc.txt	Wed Mar  5 10:22:46 2003
@@ -37,6 +37,7 @@ Table of Contents
   2.8	/proc/sys/net/ipv4 - IPV4 settings
   2.9	Appletalk
   2.10	IPX
+  2.11  /proc/sys/sched - scheduler tunables
 
 ------------------------------------------------------------------------------
 Preface
@@ -1662,6 +1663,104 @@ IPX.
 The /proc/net/ipx_route  table  holds  a list of IPX routes. For each route it
 gives the  destination  network, the router node (or Directly) and the network
 address of the router (or Connected) for internal networks.
+
+2.11 /proc/sys/sched - scheduler tunables
+-----------------------------------------
+
+Useful knobs for tuning the scheduler live in /proc/sys/sched.
+
+child_penalty
+-------------
+
+Percentage of the parent's sleep_avg that children inherit.  sleep_avg is
+a running average of the time a process spends sleeping.  Tasks with high
+sleep_avg values are considered interactive and given a higher dynamic
+priority and a larger timeslice.  You typically want this some value just
+under 100.
+
+exit_weight
+-----------
+
+When a CPU hog task exits, its parent's sleep_avg is reduced by a factor of
+exit_weight against the exiting task's sleep_avg.
+
+interactive_delta
+-----------------
+
+If a task is "interactive" it is reinserted into the active array after it
+has expired its timeslice, instead of being inserted into the expired array.
+How "interactive" a task must be in order to be deemed interactive is a
+function of its nice value.  This interactive limit is scaled linearly by nice
+value and is offset by the interactive_delta.
+
+max_sleep_avg
+-------------
+
+max_sleep_avg is the largest value (in ms) stored for a task's running sleep
+average.  The larger this value, the longer a task needs to sleep to be
+considered interactive (maximum interactive bonus is a function of
+max_sleep_avg).
+
+max_timeslice
+-------------
+
+Maximum timeslice, in milliseconds.  This is the value given to tasks of the
+highest dynamic priority.
+
+min_timeslice
+-------------
+
+Minimum timeslice, in milliseconds.  This is the value given to tasks of the
+lowest dynamic priority.  Every task gets at least this slice of the processor
+per array switch.
+
+parent_penalty
+--------------
+
+Percentage of the parent's sleep_avg that it retains across a fork().
+sleep_avg is a running average of the time a process spends sleeping.  Tasks
+with high sleep_avg values are considered interactive and given a higher
+dynamic priority and a larger timeslice.  Normally, this value is 100 and thus
+task's retain their sleep_avg on fork.  If you want to punish interactive
+tasks for forking, set this below 100.
+
+prio_bonus_ratio
+----------------
+
+Middle percentage of the priority range that tasks can receive as a dynamic
+priority.  The default value of 25% ensures that nice values at the
+extremes are still enforced.  For example, nice +19 interactive tasks will
+never be able to preempt a nice 0 CPU hog.  Setting this higher will increase
+the size of the priority range the tasks can receive as a bonus.  Setting
+this lower will decrease this range, making the interactivity bonus less
+apparent and user nice values more applicable.
+
+starvation_limit
+----------------
+
+Sufficiently interactive tasks are reinserted into the active array when they
+run out of timeslice.  Normally, tasks are inserted into the expired array.
+Reinserting interactive tasks into the active array allows them to remain
+runnable, which is important to interactive performance.  This could starve
+expired tasks, however, since the interactive task could prevent the array
+switch.  To prevent starving the tasks on the expired array for too long. the
+starvation_limit is the longest (in ms) we will let the expired array starve
+at the expense of reinserting interactive tasks back into active.  Higher
+values here give more preferance to running interactive tasks, at the expense
+of expired tasks.  Lower values provide more fair scheduling behavior, at the
+expense of interactivity.  The units are in milliseconds.
+
+idle_node_rebalance_ratio
+-------------------------
+
+On NUMA machines, we normally rebalance within nodes, but we also rebalance
+globally every N idle rebalance ticks, where N = idle_node_rebalance_ratio.
+
+busy_node_rebalance_ratio
+-------------------------
+
+On NUMA machines, we normally rebalance within nodes, but we also rebalance
+globally every N busy rebalance ticks, where N = busy_node_rebalance_ratio.
 
 ------------------------------------------------------------------------------
 Summary
diff -urpN -X /home/fletch/.diff.exclude 143-schedstat-scripts/include/linux/sysctl.h 144-sched_tunables/include/linux/sysctl.h
--- 143-schedstat-scripts/include/linux/sysctl.h	Tue Feb 25 23:03:51 2003
+++ 144-sched_tunables/include/linux/sysctl.h	Wed Mar  5 10:22:46 2003
@@ -66,7 +66,8 @@ enum
 	CTL_DEV=7,		/* Devices */
 	CTL_BUS=8,		/* Busses */
 	CTL_ABI=9,		/* Binary emulation */
-	CTL_CPU=10		/* CPU stuff (speed scaling, etc) */
+	CTL_CPU=10,		/* CPU stuff (speed scaling, etc) */
+	CTL_SCHED=11,		/* scheduler tunables */
 };
 
 /* CTL_BUS names: */
@@ -157,6 +158,20 @@ enum
 	VM_LOWER_ZONE_PROTECTION=20,/* Amount of protection of lower zones */
 };
 
+/* Tunable scheduler parameters in /proc/sys/sched/ */
+enum {
+	SCHED_MIN_TIMESLICE=1,		/* minimum process timeslice */
+	SCHED_MAX_TIMESLICE=2,		/* maximum process timeslice */
+	SCHED_CHILD_PENALTY=3,		/* penalty on fork to child */
+	SCHED_PARENT_PENALTY=4,		/* penalty on fork to parent */
+	SCHED_EXIT_WEIGHT=5,		/* penalty to parent of CPU hog child */
+	SCHED_PRIO_BONUS_RATIO=6,	/* percent of max prio given as bonus */
+	SCHED_INTERACTIVE_DELTA=7,	/* delta used to scale interactivity */
+	SCHED_MAX_SLEEP_AVG=8,		/* maximum sleep avg attainable */
+	SCHED_STARVATION_LIMIT=9,	/* no re-active if expired is starved */
+	SCHED_IDLE_NODE_REBALANCE_RATIO=10,  /* how often to global balance */
+	SCHED_BUSY_NODE_REBALANCE_RATIO=11,  /* how often to global balance */
+};
 
 /* CTL_NET names: */
 enum
diff -urpN -X /home/fletch/.diff.exclude 143-schedstat-scripts/kernel/sched.c 144-sched_tunables/kernel/sched.c
--- 143-schedstat-scripts/kernel/sched.c	Wed Mar  5 10:22:45 2003
+++ 144-sched_tunables/kernel/sched.c	Wed Mar  5 10:22:46 2003
@@ -63,16 +63,30 @@
  * Minimum timeslice is 10 msecs, default timeslice is 150 msecs,
  * maximum timeslice is 300 msecs. Timeslices get refilled after
  * they expire.
+ *
+ * They are configurable via /proc/sys/sched
  */
-#define MIN_TIMESLICE		( 10 * HZ / 1000)
-#define MAX_TIMESLICE		(300 * HZ / 1000)
-#define CHILD_PENALTY		95
-#define PARENT_PENALTY		100
-#define EXIT_WEIGHT		3
-#define PRIO_BONUS_RATIO	25
-#define INTERACTIVE_DELTA	2
-#define MAX_SLEEP_AVG		(2*HZ)
-#define STARVATION_LIMIT	(2*HZ)
+
+int min_timeslice = (10 * HZ) / 1000;
+int max_timeslice = (300 * HZ) / 1000;
+int child_penalty = 95;
+int parent_penalty = 100;
+int exit_weight = 3;
+int prio_bonus_ratio = 25;
+int interactive_delta = 2;
+int max_sleep_avg = 2 * HZ;
+int starvation_limit = 2 * HZ;
+
+#define MIN_TIMESLICE         (min_timeslice)
+#define MAX_TIMESLICE         (max_timeslice)
+#define CHILD_PENALTY         (child_penalty)
+#define PARENT_PENALTY                (parent_penalty)
+#define EXIT_WEIGHT           (exit_weight)
+#define PRIO_BONUS_RATIO      (prio_bonus_ratio)
+#define INTERACTIVE_DELTA     (interactive_delta)
+#define MAX_SLEEP_AVG         (max_sleep_avg)
+#define STARVATION_LIMIT      (starvation_limit)
+
 #define NODE_THRESHOLD          125
 
 /*
@@ -917,6 +931,9 @@ static int find_busiest_node(int this_no
 
 #endif /* CONFIG_NUMA */
 
+int idle_node_rebalance_ratio = 10;
+int busy_node_rebalance_ratio = 100;
+
 #if CONFIG_SMP
 
 /*
@@ -1149,8 +1166,9 @@ out:
  */
 #define IDLE_REBALANCE_TICK (HZ/1000 ?: 1)
 #define BUSY_REBALANCE_TICK (HZ/5 ?: 1)
-#define IDLE_NODE_REBALANCE_TICK (IDLE_REBALANCE_TICK * 5)
-#define BUSY_NODE_REBALANCE_TICK (BUSY_REBALANCE_TICK * 100)
+
+#define IDLE_NODE_REBALANCE_TICK (IDLE_REBALANCE_TICK * idle_node_rebalance_ratio)
+#define BUSY_NODE_REBALANCE_TICK (BUSY_REBALANCE_TICK * busy_node_rebalance_ratio)
 
 #if CONFIG_NUMA
 static void balance_node(runqueue_t *this_rq, int idle, int this_cpu)
diff -urpN -X /home/fletch/.diff.exclude 143-schedstat-scripts/kernel/sysctl.c 144-sched_tunables/kernel/sysctl.c
--- 143-schedstat-scripts/kernel/sysctl.c	Mon Dec 16 21:50:51 2002
+++ 144-sched_tunables/kernel/sysctl.c	Wed Mar  5 10:22:46 2003
@@ -55,6 +55,17 @@ extern char core_pattern[];
 extern int cad_pid;
 extern int pid_max;
 extern int sysctl_lower_zone_protection;
+extern int min_timeslice;
+extern int max_timeslice;
+extern int child_penalty;
+extern int parent_penalty;
+extern int exit_weight;
+extern int prio_bonus_ratio;
+extern int interactive_delta;
+extern int max_sleep_avg;
+extern int starvation_limit;
+extern int idle_node_rebalance_ratio;
+extern int busy_node_rebalance_ratio;
 
 /* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */
 static int maxolduid = 65535;
@@ -112,6 +123,7 @@ static struct ctl_table_header root_tabl
 
 static ctl_table kern_table[];
 static ctl_table vm_table[];
+static ctl_table sched_table[];
 #ifdef CONFIG_NET
 extern ctl_table net_table[];
 #endif
@@ -156,6 +168,7 @@ static ctl_table root_table[] = {
 	{CTL_FS, "fs", NULL, 0, 0555, fs_table},
 	{CTL_DEBUG, "debug", NULL, 0, 0555, debug_table},
         {CTL_DEV, "dev", NULL, 0, 0555, dev_table},
+	{CTL_SCHED, "sched", NULL, 0, 0555, sched_table},
 	{0}
 };
 
@@ -358,7 +371,46 @@ static ctl_table debug_table[] = {
 
 static ctl_table dev_table[] = {
 	{0}
-};  
+};
+
+static ctl_table sched_table[] = {
+	{SCHED_MAX_TIMESLICE, "max_timeslice", &max_timeslice,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &one, NULL},
+	{SCHED_MIN_TIMESLICE, "min_timeslice", &min_timeslice,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &one, NULL},
+	{SCHED_CHILD_PENALTY, "child_penalty", &child_penalty,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_PARENT_PENALTY, "parent_penalty", &parent_penalty,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_EXIT_WEIGHT, "exit_weight", &exit_weight,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_PRIO_BONUS_RATIO, "prio_bonus_ratio", &prio_bonus_ratio,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_INTERACTIVE_DELTA, "interactive_delta", &interactive_delta,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_MAX_SLEEP_AVG, "max_sleep_avg", &max_sleep_avg,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &one, NULL},
+	{SCHED_STARVATION_LIMIT, "starvation_limit", &starvation_limit,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_IDLE_NODE_REBALANCE_RATIO, "idle_node_rebalance_ratio", 
+						&idle_node_rebalance_ratio,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{SCHED_BUSY_NODE_REBALANCE_RATIO, "busy_node_rebalance_ratio", 
+						&busy_node_rebalance_ratio,
+	 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
+	 &sysctl_intvec, NULL, &zero, NULL},
+	{0}
+};
 
 extern void init_irq_proc (void);
 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: 2.5.64-mm2
  2003-03-08 14:45           ` 2.5.64-mm2 Shawn
@ 2003-03-08 19:49             ` Robert Love
  0 siblings, 0 replies; 13+ messages in thread
From: Robert Love @ 2003-03-08 19:49 UTC (permalink / raw)
  To: Shawn; +Cc: Andrew Morton, linux-kernel, linux-mm

On Sat, 2003-03-08 at 09:45, Shawn wrote:

> Eliminate initrd (eliminate using it, not support for it) and oops goes
> away. Weird.

Almost certainly not related to the previous problem.

	Robert Love

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [patch] updated scheduler-tunables for 2.5.64-mm2
  2003-03-08 18:25   ` Martin J. Bligh
@ 2003-03-09  1:54     ` Robert Love
  2003-03-09  2:18       ` Martin J. Bligh
  0 siblings, 1 reply; 13+ messages in thread
From: Robert Love @ 2003-03-09  1:54 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: Andrew Morton, linux-kernel, linux-mm

On Sat, 2003-03-08 at 13:25, Martin J. Bligh wrote:

> Cool ... do you want to add the other two NUMA parameters as well to
> your stack? (the idle and busy rebalance rates). Here's what I had
> before with those in.

Sure.

But at least in 2.5.64 and 2.5.64-mm3, I do not see those parameters. 
There is no {IDLE|BUSY}_NODE_REBALANCE_TICK define.

	Robert Love

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [patch] updated scheduler-tunables for 2.5.64-mm2
  2003-03-09  1:54     ` Robert Love
@ 2003-03-09  2:18       ` Martin J. Bligh
  0 siblings, 0 replies; 13+ messages in thread
From: Martin J. Bligh @ 2003-03-09  2:18 UTC (permalink / raw)
  To: Robert Love; +Cc: Andrew Morton, linux-kernel, linux-mm

>> Cool ... do you want to add the other two NUMA parameters as well to
>> your stack? (the idle and busy rebalance rates). Here's what I had
>> before with those in.
> 
> Sure.
> 
> But at least in 2.5.64 and 2.5.64-mm3, I do not see those parameters. 
> There is no {IDLE|BUSY}_NODE_REBALANCE_TICK define.

Ooops. Sorry ... we have to merge Ingo's NUMA sched updates first ;-)
/me goes back to swinging about in his own tree ...

M.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2003-03-09  2:18 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-08  2:51 2.5.64-mm2 Andrew Morton
2003-03-08  3:44 ` [patch] updated scheduler-tunables for 2.5.64-mm2 Robert Love
2003-03-08  3:50   ` Robert Love
2003-03-08 18:25   ` Martin J. Bligh
2003-03-09  1:54     ` Robert Love
2003-03-09  2:18       ` Martin J. Bligh
2003-03-08  3:49 ` 2.5.64-mm2 Shawn
2003-03-08  4:05   ` 2.5.64-mm2 Robert Love
2003-03-08  4:01     ` 2.5.64-mm2 Shawn
2003-03-08  4:22       ` 2.5.64-mm2 Robert Love
2003-03-08 13:59         ` 2.5.64-mm2 Shawn
2003-03-08 14:45           ` 2.5.64-mm2 Shawn
2003-03-08 19:49             ` 2.5.64-mm2 Robert Love

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox