2005-01-04 06:41:42

by Bill Huey

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.10-rc3-mm1-V0.7.33-0

On Tue, Dec 14, 2004 at 02:28:34PM +0100, Ingo Molnar wrote:
> to create a -V0.7.33-0 tree from scratch, the patching order is:
>
> http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.9.tar.bz2

> http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.10-rc3.bz2
> http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10-rc3/2.6.10-rc3-mm1/2.6.10-rc3-mm1.bz2

> http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.10-rc3-mm1-V0.7.33-0

Forward port of this patch to 2.6.10-mm1 here:
http://people.lynuxworks.com/~bhuey/realtime/Ingo_forward_port-mm1-V0.7.33-04

Obviously, you'll need to patch a plain 2.6.10 with -mm1 from Andrew Morton,
but folks should be able to do this by now. ;)

You'll have to apply Ingo's patch so that it gets rejects and then apply
this patch on top of it so that it resolves those issues. It's a bit
sloppy, but this'll at least be somewhat workable until Ingo comes back
and pounds us with patches. :)

bill



2005-01-04 09:46:17

by Ingo Molnar

[permalink] [raw]
Subject: [patch] Real-Time Preemption, -RT-2.6.10-mm1-V0.7.34-00


* Bill Huey <[email protected]> wrote:

> You'll have to apply Ingo's patch so that it gets rejects and then
> apply this patch on top of it so that it resolves those issues. It's a
> bit sloppy, but this'll at least be somewhat workable until Ingo comes
> back and pounds us with patches. :)

i've uploaded my port:

http://redhat.com/~mingo/realtime-preempt/

this is mainly a straight port from 2.6.10-rc3-mm1 to 2.6.10-mm1, plus i
picked up a post-2.6.10-mm1 audio-driver buildsystem fix-patch. Please
(re-)report any new or old regressions.

to create a -V0.7.34-00 tree from scratch, the patching order is:

http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm1/2.6.10-mm1.bz2
http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.10-mm1-V0.7.34-00

Ingo

2005-01-04 10:49:20

by Bill Huey

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.10-mm1-V0.7.34-00

On Tue, Jan 04, 2005 at 10:45:18AM +0100, Ingo Molnar wrote:
> this is mainly a straight port from 2.6.10-rc3-mm1 to 2.6.10-mm1, plus i
> picked up a post-2.6.10-mm1 audio-driver buildsystem fix-patch. Please
> (re-)report any new or old regressions.

Build failure.

LD arch/i386/kernel/cpu/mcheck/built-in.o
kernel/time.c: In function `sys_gettimeofday':
kernel/time.c:164: error: parse error before ')' token
distcc[2235] ERROR: compile kernel/time.c on localhost failed
make[1]: *** [kernel/time.o] Error 1
make[1]: *** Waiting for unfinished jobs....
CC mm/truncate.o

bill

2005-01-04 10:52:23

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.10-mm1-V0.7.34-00


* Bill Huey <[email protected]> wrote:

> On Tue, Jan 04, 2005 at 10:45:18AM +0100, Ingo Molnar wrote:
> > this is mainly a straight port from 2.6.10-rc3-mm1 to 2.6.10-mm1, plus i
> > picked up a post-2.6.10-mm1 audio-driver buildsystem fix-patch. Please
> > (re-)report any new or old regressions.
>
> Build failure.

does -01 work better? There was some leftover debugging stuff that got
generated into the patch by mistake.

Ingo

2005-01-06 18:49:40

by Florian Schmidt

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.10-mm1-V0.7.34-00

On Tue, 4 Jan 2005 10:45:18 +0100
Ingo Molnar <[email protected]> wrote:

>
> * Bill Huey <[email protected]> wrote:
>
> > You'll have to apply Ingo's patch so that it gets rejects and then
> > apply this patch on top of it so that it resolves those issues. It's a
> > bit sloppy, but this'll at least be somewhat workable until Ingo comes
> > back and pounds us with patches. :)
>
> i've uploaded my port:
>
> http://redhat.com/~mingo/realtime-preempt/
>
> this is mainly a straight port from 2.6.10-rc3-mm1 to 2.6.10-mm1, plus i
> picked up a post-2.6.10-mm1 audio-driver buildsystem fix-patch. Please
> (re-)report any new or old regressions.
>
> to create a -V0.7.34-00 tree from scratch, the patching order is:
>
> http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
> http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10/2.6.10-mm1/2.6.10-mm1.bz2
> http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.10-mm1-V0.7.34-00

Hi,

something is wrong with 34-01 and ALSA:

make modules_install gives me:

if [ -r System.map ]; then /sbin/depmod -ae -F System.map 2.6.10-mm1-V0.7.34-01; fi
WARNING: /lib/modules/2.6.10-mm1-V0.7.34-01/kernel/sound/pci/ac97/snd-ac97-codec.ko needs unknown symbol snd_ac97_restore_status
WARNING: /lib/modules/2.6.10-mm1-V0.7.34-01/kernel/sound/pci/ac97/snd-ac97-codec.ko needs unknown symbol snd_ac97_restore_iec958

and consequently after booting into the kernel modprobe'ing the alsa
modules fails:

~/tmp/src/linux-2.6.10-realtime-preempt-2.6.10-mm1-V0.7.34-01$ sudo modprobe snd_cs46xx
WARNING: Error inserting snd_ac97_codec (/lib/modules/2.6.10-mm1-V0.7.34-01/kernel/sound/pci/ac97/snd-ac97-codec.ko): Unknown symbol in module, or unknown parameter (see dmesg)
FATAL: Error inserting snd_cs46xx (/lib/modules/2.6.10-mm1-V0.7.34-01/kernel/sound/pci/cs46xx/snd-cs46xx.ko): Unknown symbol in module, or unknown parameter (see dmesg)

from dmesg:

snd_ac97_codec: Unknown symbol snd_ac97_restore_status
snd_ac97_codec: Unknown symbol snd_ac97_restore_iec958
snd_cs46xx: Unknown symbol snd_ac97_write_cache
snd_cs46xx: Unknown symbol snd_ac97_mixer
snd_cs46xx: Unknown symbol snd_ac97_bus
snd_cs46xx: Unknown symbol snd_ac97_write
snd_cs46xx: Unknown symbol snd_ac97_read

.config attached

Flo

--
Palimm Palimm!
http://affenbande.org/~tapas/


Attachments:
(No filename) (2.27 kB)
.config (26.14 kB)
Download all attachments

2005-01-06 19:48:49

by Florian Schmidt

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.10-mm1-V0.7.34-00

On Thu, 6 Jan 2005 13:15:41 -0600
[email protected] wrote:

> [snip - detailed error messages]
>
> This is a known problem with -mm1 and the ALSA people already fixed it.
> The change log for -mm2 indicates it should be in that version.

Thanks for the info and sorry about my redundancy.

Flo

--
Palimm Palimm!
http://affenbande.org/~tapas/

2005-01-06 20:23:53

by Mark_H_Johnson

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.10-mm1-V0.7.34-00

> On Tue, 4 Jan 2005 10:45:18 +0100
> Ingo Molnar <[email protected]> wrote:
>
> > http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
> > http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.10
/2.6.10-mm1/2.6.10-mm1.bz2
> >
http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.10-mm1-V0.7.34-00

>
> Hi,
>
> something is wrong with 34-01 and ALSA:

[snip - detailed error messages]

This is a known problem with -mm1 and the ALSA people already fixed it.
The change log for -mm2 indicates it should be in that version.

A work around is to ENABLE power management. Another possible solution
is to apply the patch I already provided in a lkml email message. See

http://groups-beta.google.com/group/linux.kernel/attach/4fc6393590a2fa25/ac97-fix-nopm.patch?part=2
for the patch or

http://groups-beta.google.com/group/linux.kernel/browse_frm/thread/191dcbdb2db8683a/10b2db7bba380ae4#10b2db7bba380ae4
for the context of the email exchange. This is NOT the same fix the ALSA
people provided - but it worked for me.

--Mark H Johnson
<mailto:[email protected]>

2005-01-07 19:30:04

by Tom Rini

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.10-mm1-V0.7.34-00

On Tue, Jan 04, 2005 at 10:45:18AM +0100, Ingo Molnar wrote:
>
> * Bill Huey <[email protected]> wrote:
>
> > You'll have to apply Ingo's patch so that it gets rejects and then
> > apply this patch on top of it so that it resolves those issues. It's a
> > bit sloppy, but this'll at least be somewhat workable until Ingo comes
> > back and pounds us with patches. :)
>
> i've uploaded my port:
>
> http://redhat.com/~mingo/realtime-preempt/
>
> this is mainly a straight port from 2.6.10-rc3-mm1 to 2.6.10-mm1, plus i
> picked up a post-2.6.10-mm1 audio-driver buildsystem fix-patch. Please
> (re-)report any new or old regressions.

Here's a handful of little things to fix issues in the patch for when
you try and use the patchset on an architecture that doesn't (yet) work.

- cycles_t is defined in <asm/timex.h>, but that wasn't part of
<linux/irq.h> previously (breaks ppc32, I _think_).
- debug_direct_keyboard & such only exist on GENERIC_HARDIRQ arches (and
I would guess make sense on ones you have a console & !USB keyboard
on).
- The stubs for init_hardirqs / early_init_hardirqs were in a
conflicting state (as seen on ppc32, which is GENERIC_HARDIRQ, but not
yet supported). I think this gets them down to what was intended.

Signed-off-by: Tom Rini <[email protected]>

--- linux-2.6.10.orig/include/linux/irq.h
+++ linux-2.6.10/include/linux/irq.h
@@ -21,6 +21,7 @@

#include <asm/irq.h>
#include <asm/ptrace.h>
+#include <asm/timex.h>

/*
* IRQ line status.
@@ -100,11 +101,14 @@ extern void report_bad_irq(unsigned int
extern int can_request_irq(unsigned int irq, unsigned long irqflags);

extern void early_init_hardirqs(void);
-extern void init_hardirqs(void);
extern void init_irq_proc(void);
extern cycles_t irq_timestamp(unsigned int irq);
#else
static inline void early_init_hardirqs(void) { }
+#endif
+#if defined(CONFIG_GENERIC_HARDIRQS) && defined(CONFIG_PREEMPT_HARDIRQS)
+extern void init_hardirqs(void);
+#else
static inline void init_hardirqs(void) { }
#endif

--- linux-2.6.10.orig/include/linux/sched.h
+++ linux-2.6.10/include/linux/sched.h
@@ -47,7 +47,9 @@ extern void direct_timer_interrupt(struc
extern struct semaphore kernel_sem;
#endif

+#ifdef CONFIG_GENERIC_HARDIRQS
extern int debug_direct_keyboard;
+#endif

#ifdef CONFIG_RT_DEADLOCK_DETECT
extern void deadlock_trace_off(void);
--- linux-2.6.10.orig/kernel/irq/manage.c
+++ linux-2.6.10/kernel/irq/manage.c
@@ -527,10 +527,6 @@ void __init init_hardirqs(void)

#else

-void __init init_hardirqs(void)
-{
-}
-
static int start_irq_thread(int irq, struct irq_desc *desc)
{
return 0;
@@ -545,5 +541,3 @@ void __init early_init_hardirqs(void)
for (i = 0; i < NR_IRQS; i++)
init_waitqueue_head(&irq_desc[i].wait_for_handler);
}
-
-
--- linux-2.6.10.orig/kernel/sched.c
+++ linux-2.6.10/kernel/sched.c
@@ -5409,8 +5409,10 @@ void __might_sleep(char *file, int line)

if ((in_atomic() || irqs_disabled()) &&
system_state == SYSTEM_RUNNING) {
+#ifdef CONFIG_GENERIC_HARDIRQS
if (debug_direct_keyboard && hardirq_count())
return;
+#endif
if (time_before(jiffies, prev_jiffy + HZ) && prev_jiffy)
return;
prev_jiffy = jiffies;
--- linux-2.6.10.orig/kernel/sysctl.c
+++ linux-2.6.10/kernel/sysctl.c
@@ -391,6 +391,7 @@ static ctl_table kern_table[] = {
.proc_handler = &proc_dointvec,
},
#endif
+#ifdef CONFIG_GENERIC_HARDIRQS
{
.ctl_name = KERN_PANIC,
.procname = "debug_direct_keyboard",
@@ -399,6 +400,7 @@ static ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = &proc_dointvec,
},
+#endif
{
.ctl_name = KERN_CORE_USES_PID,
.procname = "core_uses_pid",
--- linux-2.6.10.orig/include/linux/rt_lock.h
+++ linux-2.6.10/include/linux/rt_lock.h
@@ -3,7 +3,6 @@

#include <linux/config.h>
#include <linux/list.h>
-#include <asm/atomic.h>

/*
* These are the basic SMP spinlocks, allowing only a single CPU anywhere.
@@ -26,6 +25,8 @@ typedef struct {
# define RAW_SPIN_LOCK_UNLOCKED (raw_spinlock_t) __RAW_SPIN_LOCK_UNLOCKED
#endif

+#include <asm/atomic.h>
+
/*
* Read-write spinlocks, allowing multiple readers
* but only one writer.
--- linux-2.6.10.orig/include/linux/rt_lock.h
+++ linux-2.6.10/include/linux/rt_lock.h
@@ -25,8 +25,6 @@ typedef struct {
# define RAW_SPIN_LOCK_UNLOCKED (raw_spinlock_t) __RAW_SPIN_LOCK_UNLOCKED
#endif

-#include <asm/atomic.h>
-
/*
* Read-write spinlocks, allowing multiple readers
* but only one writer.
@@ -173,6 +171,7 @@ typedef struct {


#ifdef CONFIG_PREEMPT_RT
+#include <asm/atomic.h>

/*
* semaphores - an RT-mutex plus the semaphore count:

--
Tom Rini
http://gate.crashing.org/~trini/

2005-01-07 19:40:42

by Lee Revell

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.10-mm1-V0.7.34-00

On Fri, 2005-01-07 at 12:26 -0700, Tom Rini wrote:
> Here's a handful of little things to fix issues in the patch for when
> you try and use the patchset on an architecture that doesn't (yet) work.

Speaking of which, I guess no one ever stepped up & fixed the patch for
x86_64? AFAICT it should not be too hard to get PREEMPT_DESKTOP
working, as the previous VP patch sets worked, then the timer interrupt
threading changes broke it. But you can't thread the timer irq with
PREEMPT_DESKTOP anyway.

Unfortunately I can only offer moral support as I don't have the
hardware...

Lee

2005-01-15 13:37:25

by Ingo Molnar

[permalink] [raw]
Subject: [patch] Real-Time Preemption, -RT-2.6.11-rc1-V0.7.35-00


i have released the -V0.7.35-00 Real-Time Preemption patch, which can be
downloaded from the usual place:

http://redhat.com/~mingo/realtime-preempt/

The two dozen split out latency patches (including PREEMPT_BKL) that
were in -mm are in BK now, so i've rebased the -RT patchset to
2.6.11-rc1. It would be nice to check for regressions (or the lack of
them), to make sure everything latency-related has been properly merged
upstream from -mm. (so that a new splitup cycle can start.)

to create a -V0.7.34-00 tree from scratch, the patching order is:

http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.11-rc1.bz2
http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.11-rc1-V0.7.35-00

Ingo

2005-01-15 15:16:35

by K.R. Foley

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc1-V0.7.35-00

Ingo Molnar wrote:
> i have released the -V0.7.35-00 Real-Time Preemption patch, which can be
> downloaded from the usual place:
>
> http://redhat.com/~mingo/realtime-preempt/
>
> The two dozen split out latency patches (including PREEMPT_BKL) that
> were in -mm are in BK now, so i've rebased the -RT patchset to
> 2.6.11-rc1. It would be nice to check for regressions (or the lack of
> them), to make sure everything latency-related has been properly merged
> upstream from -mm. (so that a new splitup cycle can start.)
>

I've not done much testing with it yet but I do have it built and
running on my slower SMP system. Working on my UP sytem now.

kr

2005-01-15 19:29:31

by Gene Heskett

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc1-V0.7.35-01

On Saturday 15 January 2005 08:34, Ingo Molnar wrote:
>i have released the -V0.7.35-00 Real-Time Preemption patch, which
> can be downloaded from the usual place:
>
> http://redhat.com/~mingo/realtime-preempt/
>
By the time I got there is was 35-01 :-)

I have 1 squawk and one question.

The squawk is the extra "-RT" in the Makefiles Extra-Version, I made
it 3 times and failed to boot to it with my script before that light
came on.

And, what happened to drivers/ieee1394/amdtp? Its not even in the
xconfig choices now. And I use it with my Sony Digital8 camera.

Also, and this is a more general squawk, I have to unload all those
ieee1394 stuffs, turn on the camera, and then reload it all before
the camera is recognized and usable. Ditto if I have it working,
then turn the camera off, before I can access the camera again I have
to rmmod all that stuff and reload it again. This is probably
something that can be done with hotplug, but the last time I played
with that it was lockup the whole machine disaster.

This was true with 2.6.11-rc1, but I haven't checked that stuff yet
after getting this to boot just now.

>The two dozen split out latency patches (including PREEMPT_BKL) that
>were in -mm are in BK now, so i've rebased the -RT patchset to
>2.6.11-rc1. It would be nice to check for regressions (or the lack
> of them), to make sure everything latency-related has been properly
> merged upstream from -mm. (so that a new splitup cycle can start.)
>
>to create a -V0.7.34-00 tree from scratch, the patching order is:
>
> http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
>
> http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.11-rc1.bz
>2
> http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.11-r
>c1-V0.7.35-00
>
> Ingo
>-
>To unsubscribe from this list: send the line "unsubscribe
> linux-kernel" in the body of a message to [email protected]
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/

--
Cheers, Gene
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
99.32% setiathome rank, not too shabby for a WV hillbilly
Yahoo.com attorneys please note, additions to this message
by Gene Heskett are:
Copyright 2005 by Maurice Eugene Heskett, all rights reserved.

2005-01-21 20:39:43

by K.R. Foley

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc1-V0.7.35-00

Ingo Molnar wrote:
> i have released the -V0.7.35-00 Real-Time Preemption patch, which can be
> downloaded from the usual place:
>
> http://redhat.com/~mingo/realtime-preempt/
>
> The two dozen split out latency patches (including PREEMPT_BKL) that
> were in -mm are in BK now, so i've rebased the -RT patchset to
> 2.6.11-rc1. It would be nice to check for regressions (or the lack of
> them), to make sure everything latency-related has been properly merged
> upstream from -mm. (so that a new splitup cycle can start.)
>

Ingo,

I just thought I would mention something that I have been experiencing
with the last few versions of your patches on my workstation at the
office. On my 2.6 dual xeon, if I have CONFIG_MICROCODE=m
I have had a heck of a time getting the -V0.7.35-02,03 kernels to boot.
After disabling CONFIG_MICROCODE -V0.7.35-03 boots fine now. I tried
this after finding the following in my log after a successful boot of
-V0.7.35-01.

kr


Jan 21 11:53:50 swdev14 kernel: IA-32 Microcode Update Driver: v1.14
<[email protected]>
Jan 21 11:53:50 swdev14 kernel: BUG: sleeping function called from
invalid context hotplug(3795) at kernel/rt.c:1443
Jan 21 11:53:50 swdev14 kernel: BUG: scheduling while atomic:
hotplug/0x00010000/3796
Jan 21 11:53:50 swdev14 smartd[4274]: smartd version 5.33
[i386-redhat-linux-gnu] Copyright (C) 2002-4 Bruce Allen
Jan 21 11:53:51 swdev14 kernel: in_atomic():1 [00010000], irqs_disabled():1
Jan 21 11:53:51 swdev14 smartd[4274]: Home page is
http://smartmontools.sourceforge.net/
Jan 21 11:53:51 swdev14 kernel: [<c010366a>] <6>microcode: CPU3 updated
from revision 0x0 to 0x38, date = 06042003
Jan 21 11:53:51 swdev14 smartd[4274]: Opened configuration file
/etc/smartd.conf
Jan 21 11:53:51 swdev14 kernel: dump_stack+0x23/0x25 (20)
Jan 21 11:53:51 swdev14 smartd[4274]: Configuration file
/etc/smartd.conf parsed.
Jan 21 11:53:51 swdev14 kernel: [<c01180fa>]
__might_sleep+0xd8/0xf3caller is schedule+0x38/0x12f
Jan 21 11:53:51 swdev14 smartd[4274]: Device: /dev/hda, opened
Jan 21 11:53:51 swdev14 kernel: (36)
Jan 21 11:53:51 swdev14 kernel: [<c0133bd0>] [<c010366a>]
__spin_lock+0x34/0x50 (24)
Jan 21 11:53:51 swdev14 kernel: [<c0133c66>]
_spin_lock_irqsave+0x1d/0x21dump_stack+0x23/0x25 (20)
Jan 21 11:53:51 swdev14 kernel: [<c02a2376>] __schedule+0xa86/0xd95 (16)
Jan 21 11:53:51 swdev14 smartd[4274]: Device: /dev/hda, found in smartd
database.
Jan 21 11:53:51 swdev14 kernel: [<e08c872f>] (120)
Jan 21 11:53:51 swdev14 kernel: [<c02a26bd>] do_update_one+0x4e/0xb7
[microcode] (44)
Jan 21 11:53:51 swdev14 smartd[4274]: Device: /dev/hda, is SMART
capable. Adding to "monitor" list.
Jan 21 11:53:51 swdev14 kernel: [<c010e6d0>]
schedule+0x38/0x12fsmp_call_function_interrupt+0x45/0x65 (24)
Jan 21 11:53:51 swdev14 smartd[4274]: Monitoring 1 ATA and 0 SCSI devices
Jan 21 11:53:51 swdev14 kernel: [<c01031ec>]
call_function_interrupt+0x1c/0x24 (36)
Jan 21 11:53:51 swdev14 kernel: [<c02a38f2>] __down_mutex+0x2aa/0x35a (176)
Jan 21 11:53:51 swdev14 kernel: [<c0167f5f>] (88)
Jan 21 11:53:51 swdev14 kernel: sys_fstat64+0x37/0x3d [<c0133be2>] (100)
Jan 21 11:53:51 swdev14 smartd[4276]: smartd has fork()ed into
background mode. New PID=4276.
Jan 21 11:53:51 swdev14 smartd: smartd startup succeeded
Jan 21 11:53:51 swdev14 kernel: __spin_lock+0x46/0x50 (24)
Jan 21 11:53:51 swdev14 kernel: [<c0133c66>]
_spin_lock_irqsave+0x1d/0x21 [<c0102804>] syscall_call+0x7/0xb (16)
Jan 21 11:53:51 swdev14 kernel: [<e08c872f>] (-8124)
Jan 21 11:53:51 swdev14 kernel: do_update_one+0x4e/0xb7 [microcode] (44)
Jan 21 11:53:51 swdev14 kernel: [<c010e6d0>] ---------------------------
Jan 21 11:53:51 swdev14 kernel: smp_call_function_interrupt+0x45/0x65 (24)
Jan 21 11:53:52 swdev14 kernel: [<c01031ec>]
call_function_interrupt+0x1c/0x24| preempt count: 00010001 ]
Jan 21 11:53:52 swdev14 kernel: | 1-level deep critical section nesting:
Jan 21 11:53:52 swdev14 kernel: ----------------------------------------
Jan 21 11:53:52 swdev14 kernel: .. [<c0136ebd>] .... (124)
Jan 21 11:53:52 swdev14 kernel: print_traces+0x1b/0x52
Jan 21 11:53:52 swdev14 kernel: .....[<c010366a>] .. ( <=
dump_stack+0x23/0x25)
Jan 21 11:53:52 swdev14 kernel: [<c01333f5>] up_mutex+0x89/0x100
Jan 21 11:53:52 swdev14 sshd: succeeded
Jan 21 11:53:52 swdev14 kernel: (40)
Jan 21 11:53:52 swdev14 kernel: [<c014eadc>] <3>BUG: scheduling while
atomic: hotplug/0x00010000/3795
Jan 21 11:53:52 swdev14 kernel: caller is schedule+0x38/0x12f
Jan 21 11:53:52 swdev14 kernel: do_no_page+0x197/0x3b6 (64)
Jan 21 11:53:52 swdev14 kernel: [<c014ef6e>]
handle_mm_fault+0x15a/0x191 [<c010366a>] dump_stack+0x23/0x25 (48)
Jan 21 11:53:52 swdev14 kernel: [<c0112291>] (20)
Jan 21 11:53:52 swdev14 kernel: do_page_fault+0x1fc/0x61b (216)
Jan 21 11:53:52 swdev14 kernel: [<c0103293>] error_code+0x2b/0x30
[<c02a2376>] __schedule+0xa86/0xd95 (-518059332)
Jan 21 11:53:52 swdev14 kernel: ---------------------------
Jan 21 11:53:52 swdev14 kernel: | preempt count: 00010001 ]
Jan 21 11:53:52 swdev14 xinetd: xinetd startup succeeded
Jan 21 11:53:52 swdev14 kernel: | 1-level deep critical section nesting:
Jan 21 11:53:52 swdev14 kernel: ----------------------------------------
Jan 21 11:53:52 swdev14 kernel: .. [<c0136ebd>] .... (120)
Jan 21 11:53:52 swdev14 ntpdate[4310]: can't find host wizard
Jan 21 11:53:52 swdev14 kernel: print_traces+0x1b/0x52
Jan 21 11:53:52 swdev14 kernel: .....[<c010366a>] .. ( <=
dump_stack+0x23/0x25)
Jan 21 11:53:52 swdev14 kernel: [<c02a26bd>] schedule+0x38/0x12f
Jan 21 11:53:52 swdev14 kernel: (36)
Jan 21 11:53:52 swdev14 kernel: [<c02a38f2>] __down_mutex+0x2aa/0x35a (88)
Jan 21 11:53:52 swdev14 kernel: [<c0133be2>] __spin_lock+0x46/0x50 (24)
Jan 21 11:53:52 swdev14 kernel: [<c0133c66>]
_spin_lock_irqsave+0x1d/0x21 (16)
Jan 21 11:53:52 swdev14 kernel: [<e08c872f>] do_update_one+0x4e/0xb7
[microcode] (44)
Jan 21 11:53:52 swdev14 kernel: [<c010e6d0>]
smp_call_function_interrupt+0x45/0x65 (24)
Jan 21 11:53:52 swdev14 kernel: [<c01031ec>]
call_function_interrupt+0x1c/0x24 (176)
Jan 21 11:53:52 swdev14 kernel: [<c0167f5f>] sys_fstat64+0x37/0x3d (100)
Jan 21 11:53:52 swdev14 kernel: [<c0102804>] syscall_call+0x7/0xb (-8124)
Jan 21 11:53:52 swdev14 kernel: ---------------------------
Jan 21 11:53:52 swdev14 kernel: | preempt count: 00010001 ]
Jan 21 11:53:52 swdev14 kernel: | 1-level deep critical section nesting:
Jan 21 11:53:52 swdev14 kernel: ----------------------------------------
Jan 21 11:53:52 swdev14 kernel: .. [<c0136ebd>] .... print_traces+0x1b/0x52
Jan 21 11:53:52 swdev14 kernel: .....[<c010366a>] .. ( <=
dump_stack+0x23/0x25)

2005-01-22 12:29:47

by Ingo Molnar

[permalink] [raw]
Subject: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-00


i have released the -V0.7.36-00 Real-Time Preemption patch, which can be
downloaded from the usual place:

http://redhat.com/~mingo/realtime-preempt/

this is mainly a merge to 2.6.11-rc2.

There was alot of merging to be done due to Thomas Gleixner's
spinlock/rwlock cleanups making it into upstream and due to the upstream
spinlock changes, and there were some networking related conflicts as
well, so these areas might introduce new regressions.

the patch includes a fix that should resolve the microcode-update
related boot-time crash reported by K.R. Foley. It also includes a
verify_mm_writelocked() fix from Daniel Walker.

to create a -V0.7.36-00 tree from scratch, the patching order is:

http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.11-rc2.bz2
http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.11-rc2-V0.7.36-00

Ingo

2005-01-22 21:23:10

by Gene Heskett

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-00

On Saturday 22 January 2005 07:29, Ingo Molnar wrote:
>i have released the -V0.7.36-00 Real-Time Preemption patch, which
> can be downloaded from the usual place:
>
> http://redhat.com/~mingo/realtime-preempt/
>
>this is mainly a merge to 2.6.11-rc2.

Humm, by the time I went after the patch it was up to -02.

And I'm getting a couple of error exits:
-------------------
net/sched/sch_generic.c: In function `qdisc_restart':
net/sched/sch_generic.c:128: error: label `requeue' used but not
defined
CC drivers/pci/setup-bus.o
make[2]: *** [net/sched/sch_generic.o] Error 1
make[1]: *** [net/sched] Error 2
make[1]: *** Waiting for unfinished jobs....
-------------------

And
-------------------
LD net/sunrpc/built-in.o
make: *** [net] Error 2
make: *** Waiting for unfinished jobs....
-------------------
So obviously I'm not running it. :-)

One other item I don't think is related, in the last version (35-01) I
had svn'd a new ieee1396 sub-directory from that ieee1394.org site
into the drivers tree, and since it was less than a week old and
worked right well, I just copied it over into the new kernel tree &
reran the configs after renameing the existing ieee1394 to
ieee1394-orig.

>There was alot of merging to be done due to Thomas Gleixner's
>spinlock/rwlock cleanups making it into upstream and due to the
> upstream spinlock changes, and there were some networking related
> conflicts as well, so these areas might introduce new regressions.
>
>the patch includes a fix that should resolve the microcode-update
>related boot-time crash reported by K.R. Foley. It also includes a
>verify_mm_writelocked() fix from Daniel Walker.
>
>to create a -V0.7.36-00 tree from scratch, the patching order is:
>
> http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
>
> http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.11-rc2.bz
>2
> http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.11-r
>c2-V0.7.36-00
>
> Ingo

--
Cheers, Gene
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
99.32% setiathome rank, not too shabby for a WV hillbilly
Yahoo.com attorneys please note, additions to this message
by Gene Heskett are:
Copyright 2005 by Maurice Eugene Heskett, all rights reserved.

2005-01-23 09:27:27

by Andyliu

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-00

hi , ingo

i am trying to understand your patch,but the patch file is so long and complex.
i am wondering is there some documents about your patch?

:)

thanks very much for your patch and your work.


On Sat, 22 Jan 2005 16:22:24 -0500, Gene Heskett
<[email protected]> wrote:
> On Saturday 22 January 2005 07:29, Ingo Molnar wrote:
> >i have released the -V0.7.36-00 Real-Time Preemption patch, which
> > can be downloaded from the usual place:
> >
> > http://redhat.com/~mingo/realtime-preempt/
> >
> >this is mainly a merge to 2.6.11-rc2.
>
> Humm, by the time I went after the patch it was up to -02.
>
> And I'm getting a couple of error exits:
> -------------------
> net/sched/sch_generic.c: In function `qdisc_restart':
> net/sched/sch_generic.c:128: error: label `requeue' used but not
> defined
> CC drivers/pci/setup-bus.o
> make[2]: *** [net/sched/sch_generic.o] Error 1
> make[1]: *** [net/sched] Error 2
> make[1]: *** Waiting for unfinished jobs....
> -------------------
>
> And
> -------------------
> LD net/sunrpc/built-in.o
> make: *** [net] Error 2
> make: *** Waiting for unfinished jobs....
> -------------------
> So obviously I'm not running it. :-)
>
> One other item I don't think is related, in the last version (35-01) I
> had svn'd a new ieee1396 sub-directory from that ieee1394.org site
> into the drivers tree, and since it was less than a week old and
> worked right well, I just copied it over into the new kernel tree &
> reran the configs after renameing the existing ieee1394 to
> ieee1394-orig.
>
> >There was alot of merging to be done due to Thomas Gleixner's
> >spinlock/rwlock cleanups making it into upstream and due to the
> > upstream spinlock changes, and there were some networking related
> > conflicts as well, so these areas might introduce new regressions.
> >
> >the patch includes a fix that should resolve the microcode-update
> >related boot-time crash reported by K.R. Foley. It also includes a
> >verify_mm_writelocked() fix from Daniel Walker.
> >
> >to create a -V0.7.36-00 tree from scratch, the patching order is:
> >
> > http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
> >
> > http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.11-rc2.bz
> >2
> > http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.11-r
> >c2-V0.7.36-00
> >
> > Ingo
>
> --
> Cheers, Gene
> "There are four boxes to be used in defense of liberty:
> soap, ballot, jury, and ammo. Please use in that order."
> -Ed Howdershelt (Author)
> 99.32% setiathome rank, not too shabby for a WV hillbilly
> Yahoo.com attorneys please note, additions to this message
> by Gene Heskett are:
> Copyright 2005 by Maurice Eugene Heskett, all rights reserved.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>


--
Yours andyliu

2005-01-23 11:31:45

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-00


* andyliu <[email protected]> wrote:

> hi , ingo
>
> i am trying to understand your patch,but the patch file is so long and
> complex. i am wondering is there some documents about your patch?
>
> :)

well, it mainly offers the PREEMPT_RT feature, which is a 'no
compromises' variant of kernel preemption: virtually everything
(including normal spinlocked sections) is preemptable, with the goal of
providing hard-realtime category ~10-20 usecs maximum scheduling latency
guarantees on a typical PC (or embedded platform). Those long and
complex changes are almost all needed to achieve this goal.

this tree is mainly an experiment to see what it takes to achieve that
latency goal, and to see how much of that can go upstream (without
having to decide whether upstream wants to have the PREEMPT_RT feature
or not). (A couple of dozen patches were already split out of this patch
and are in the current upstream kernel - they already made a latency
difference for the 2.6.10 kernel.)

Ingo

2005-01-23 14:41:03

by Gene Heskett

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-00

On Sunday 23 January 2005 06:31, Ingo Molnar wrote:
>* andyliu <[email protected]> wrote:
>> hi , ingo
>>
>> i am trying to understand your patch,but the patch file is so long
>> and complex. i am wondering is there some documents about your
>> patch?
>>
>> :)
>
>well, it mainly offers the PREEMPT_RT feature, which is a 'no
>compromises' variant of kernel preemption: virtually everything
>(including normal spinlocked sections) is preemptable, with the goal
> of providing hard-realtime category ~10-20 usecs maximum scheduling
> latency guarantees on a typical PC (or embedded platform). Those
> long and complex changes are almost all needed to achieve this
> goal.
>
>this tree is mainly an experiment to see what it takes to achieve
> that latency goal, and to see how much of that can go upstream
> (without having to decide whether upstream wants to have the
> PREEMPT_RT feature or not). (A couple of dozen patches were already
> split out of this patch and are in the current upstream kernel -
> they already made a latency difference for the 2.6.10 kernel.)
>
> Ingo

Hijacking the thread here Ingo, but did you see my build failure
message of yesterday?

--
Cheers, Gene
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
99.32% setiathome rank, not too shabby for a WV hillbilly
Yahoo.com attorneys please note, additions to this message
by Gene Heskett are:
Copyright 2005 by Maurice Eugene Heskett, all rights reserved.

2005-01-24 01:02:55

by Andyliu

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-00

hi Gene

i am lucky enough to have 2.6.11-rc2-V0.7.36-02 compile and run in my i386 host.
below is my config

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.11-rc2-RT-V0.7.36-02
# Mon Jan 24 08:45:39 2005
#
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y
CONFIG_LOCK_KERNEL=y

#
# General setup
#
CONFIG_LOCALVERSION="RT"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_LOG_BUF_SHIFT=15
CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
# CONFIG_KALLSYMS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
# CONFIG_SHMEM is not set
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
CONFIG_TINY_SHMEM=y

#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODULE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y

#
# Processor type and features
#
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# 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_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 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_MPENTIUMM is not set
CONFIG_MPENTIUM4=y
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON 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_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_GENERIC_CALIBRATE_DELAY=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_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
# CONFIG_HPET_TIMER is not set
CONFIG_SMP=y
CONFIG_NR_CPUS=2
CONFIG_SCHED_SMT=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT_DESKTOP is not set
CONFIG_PREEMPT_RT=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_SOFTIRQS=y
CONFIG_PREEMPT_HARDIRQS=y
CONFIG_PREEMPT_BKL=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=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set

#
# Firmware Drivers
#
# CONFIG_EDD is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_IRQBALANCE=y
CONFIG_HAVE_DEC_LOCK=y
# CONFIG_REGPARM is not set

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

#
# ACPI (Advanced Configuration and Power Interface) Support
#
# CONFIG_ACPI is not set
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_BLACKLIST_YEAR=0

#
# 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_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
# CONFIG_PCIEPORTBUS is not set
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set

#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set

#
# PC-card bridges
#
CONFIG_PCMCIA_PROBE=y

#
# PCI Hotplug Support
#
# CONFIG_HOTPLUG_PCI is not set

#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_MISC=y

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m

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

#
# Parallel port support
#
CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y
CONFIG_PARPORT_PC_CML1=y
# 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 is not set

#
# Plug and Play support
#
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set

#
# Protocols
#
# CONFIG_ISAPNP is not set
# CONFIG_PNPBIOS is not set

#
# Block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_XD 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_COW_COMMON is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_INITRAMFS_SOURCE=""
CONFIG_LBD=y
# CONFIG_CDROM_PKTCDVD is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_ATA_OVER_ETH is not set

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

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

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
CONFIG_BLK_DEV_CMD640=y
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_RZ1000=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 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=y
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW 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 is not set
# CONFIG_IDE_ARM is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
CONFIG_SCSI=y
# CONFIG_SCSI_PROC_FS is not set

#
# SCSI support type (disk, tape, CD-ROM)
#
# CONFIG_BLK_DEV_SD is not set
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
# CONFIG_CHR_DEV_SG is not set

#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set

#
# SCSI Transport Attributes
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set

#
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
CONFIG_SCSI_QLA2XXX=y
# CONFIG_SCSI_QLA21XX is not set
# CONFIG_SCSI_QLA22XX is not set
# CONFIG_SCSI_QLA2300 is not set
# CONFIG_SCSI_QLA2322 is not set
# CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set

#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set

#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set

#
# Fusion MPT device support
#
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_IEEE1394 is not set

#
# I2O device support
#
# CONFIG_I2O is not set

#
# Networking support
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
# CONFIG_NETLINK_DEV is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_IP_TCPDIAG=y
# CONFIG_IP_TCPDIAG_IPV6 is not set

#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set

#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=y
# CONFIG_IP_NF_CT_ACCT is not set
# CONFIG_IP_NF_CONNTRACK_MARK is not set
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
# CONFIG_IP_NF_FTP is not set
# CONFIG_IP_NF_IRC is not set
# CONFIG_IP_NF_TFTP is not set
# CONFIG_IP_NF_AMANDA is not set
CONFIG_IP_NF_QUEUE=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_LIMIT=y
CONFIG_IP_NF_MATCH_IPRANGE=y
CONFIG_IP_NF_MATCH_MAC=y
CONFIG_IP_NF_MATCH_PKTTYPE=y
CONFIG_IP_NF_MATCH_MARK=y
CONFIG_IP_NF_MATCH_MULTIPORT=y
CONFIG_IP_NF_MATCH_TOS=y
CONFIG_IP_NF_MATCH_RECENT=y
CONFIG_IP_NF_MATCH_ECN=y
CONFIG_IP_NF_MATCH_DSCP=y
CONFIG_IP_NF_MATCH_AH_ESP=y
CONFIG_IP_NF_MATCH_LENGTH=y
CONFIG_IP_NF_MATCH_TTL=y
CONFIG_IP_NF_MATCH_TCPMSS=y
CONFIG_IP_NF_MATCH_HELPER=y
CONFIG_IP_NF_MATCH_STATE=y
CONFIG_IP_NF_MATCH_CONNTRACK=y
CONFIG_IP_NF_MATCH_OWNER=y
# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
# CONFIG_IP_NF_MATCH_REALM is not set
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_IP_NF_TARGET_ULOG=y
CONFIG_IP_NF_TARGET_TCPMSS=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_TARGET_NETMAP=y
CONFIG_IP_NF_TARGET_SAME=y
# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
CONFIG_IP_NF_MANGLE=y
CONFIG_IP_NF_TARGET_TOS=y
CONFIG_IP_NF_TARGET_ECN=y
CONFIG_IP_NF_TARGET_DSCP=y
CONFIG_IP_NF_TARGET_MARK=y
CONFIG_IP_NF_TARGET_CLASSIFY=y
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=y
CONFIG_IP_NF_ARPFILTER=y
CONFIG_IP_NF_ARP_MANGLE=y

#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set

#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_NET_SB1000 is not set

#
# ARCnet devices
#
# CONFIG_ARCNET is not set

#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set

#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA 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_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_CS89x0 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 is not set
CONFIG_8139TOO=y
CONFIG_8139TOO_PIO=y
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# 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 is not set
# CONFIG_NET_POCKET 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_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set

#
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
CONFIG_S2IO=m
# CONFIG_S2IO_NAPI is not set
# CONFIG_2BUFF_MODE is not set

#
# Token Ring devices
#
# CONFIG_TR is not set

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

#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set

#
# ISDN subsystem
#
# CONFIG_ISDN 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 is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# 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 is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD 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_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# 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_NR_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set

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

#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set

#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
CONFIG_BLOCKER=y
# CONFIG_GEN_RTC is not set
# 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_AGP=y
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
CONFIG_AGP_INTEL=y
CONFIG_AGP_INTEL_MCH=m
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_I810 is not set
# CONFIG_DRM_I830 is not set
# CONFIG_DRM_I915 is not set
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_MWAVE is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HANGCHECK_TIMER is not set

#
# I2C support
#
# CONFIG_I2C is not set

#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set

#
# Misc devices
#
# CONFIG_IBM_ASM is not set

#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set

#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set

#
# Graphics support
#
# CONFIG_FB is not set
# CONFIG_VIDEO_SELECT is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Sound
#
# CONFIG_SOUND is not set

#
# USB support
#
# CONFIG_USB is not set
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y

#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be
needed; see USB_STORAGE Help for more information
#

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set

#
# MMC/SD Card support
#
# CONFIG_MMC is not set

#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set

#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set
# CONFIG_DNOTIFY is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set

#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set

#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
# CONFIG_TMPFS is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y

#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set

#
# Network File Systems
#
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_EXPORTFS is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y

#
# Native Language Support
#
CONFIG_NLS=y
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_ASCII 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

#
# Profiling support
#
# CONFIG_PROFILING is not set

#
# Kernel hacking
#
# CONFIG_DEBUG_KERNEL is not set
# CONFIG_DEBUG_PREEMPT is not set
CONFIG_WAKEUP_TIMING=y
# CONFIG_CRITICAL_PREEMPT_TIMING is not set
# CONFIG_CRITICAL_IRQSOFF_TIMING is not set
CONFIG_LATENCY_TIMING=y
# CONFIG_LATENCY_TRACE is not set
CONFIG_RT_DEADLOCK_DETECT=y
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_USE_FRAME_POINTER is not set
CONFIG_EARLY_PRINTK=y
CONFIG_4KSTACKS=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set

#
# Cryptographic options
#
# CONFIG_CRYPTO is not set

#
# Hardware crypto devices
#

#
# Library routines
#
# CONFIG_CRC_CCITT is not set
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_X86_TRAMPOLINE=y



On Sun, 23 Jan 2005 09:40:56 -0500, Gene Heskett
<[email protected]> wrote:
> On Sunday 23 January 2005 06:31, Ingo Molnar wrote:
> >* andyliu <[email protected]> wrote:
> >> hi , ingo
> >>
> >> i am trying to understand your patch,but the patch file is so long
> >> and complex. i am wondering is there some documents about your
> >> patch?
> >>
> >> :)
> >
> >well, it mainly offers the PREEMPT_RT feature, which is a 'no
> >compromises' variant of kernel preemption: virtually everything
> >(including normal spinlocked sections) is preemptable, with the goal
> > of providing hard-realtime category ~10-20 usecs maximum scheduling
> > latency guarantees on a typical PC (or embedded platform). Those
> > long and complex changes are almost all needed to achieve this
> > goal.
> >
> >this tree is mainly an experiment to see what it takes to achieve
> > that latency goal, and to see how much of that can go upstream
> > (without having to decide whether upstream wants to have the
> > PREEMPT_RT feature or not). (A couple of dozen patches were already
> > split out of this patch and are in the current upstream kernel -
> > they already made a latency difference for the 2.6.10 kernel.)
> >
> > Ingo
>
> Hijacking the thread here Ingo, but did you see my build failure
> message of yesterday?
>
> --
> Cheers, Gene
> "There are four boxes to be used in defense of liberty:
> soap, ballot, jury, and ammo. Please use in that order."
> -Ed Howdershelt (Author)
> 99.32% setiathome rank, not too shabby for a WV hillbilly
> Yahoo.com attorneys please note, additions to this message
> by Gene Heskett are:
> Copyright 2005 by Maurice Eugene Heskett, all rights reserved.
>


--
Yours andyliu

2005-01-24 02:56:11

by Gene Heskett

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-00

On Sunday 23 January 2005 20:01, andyliu wrote:
>hi Gene
>
Thanks, I'll give it a shot and see if it fits my hardware.

>i am lucky enough to have 2.6.11-rc2-V0.7.36-02 compile and run in
> my i386 host. below is my config
>
>#
># Automatically generated make config: don't edit
># Linux kernel version: 2.6.11-rc2-RT-V0.7.36-02
># Mon Jan 24 08:45:39 2005
>#
>CONFIG_X86=y
>CONFIG_MMU=y
>CONFIG_UID16=y
>CONFIG_GENERIC_ISA_DMA=y
>CONFIG_GENERIC_IOMAP=y
>
>#
># Code maturity level options
>#
>CONFIG_EXPERIMENTAL=y
>CONFIG_CLEAN_COMPILE=y
>CONFIG_LOCK_KERNEL=y
>
>#
># General setup
>#
>CONFIG_LOCALVERSION="RT"
>CONFIG_SWAP=y
>CONFIG_SYSVIPC=y
>CONFIG_POSIX_MQUEUE=y
># CONFIG_BSD_PROCESS_ACCT is not set
>CONFIG_SYSCTL=y
>CONFIG_AUDIT=y
>CONFIG_AUDITSYSCALL=y
>CONFIG_LOG_BUF_SHIFT=15
>CONFIG_HOTPLUG=y
>CONFIG_KOBJECT_UEVENT=y
># CONFIG_IKCONFIG is not set
>CONFIG_EMBEDDED=y
># CONFIG_KALLSYMS is not set
>CONFIG_FUTEX=y
>CONFIG_EPOLL=y
># CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
># CONFIG_SHMEM is not set
>CONFIG_CC_ALIGN_FUNCTIONS=0
>CONFIG_CC_ALIGN_LABELS=0
>CONFIG_CC_ALIGN_LOOPS=0
>CONFIG_CC_ALIGN_JUMPS=0
>CONFIG_TINY_SHMEM=y
>
>#
># Loadable module support
>#
>CONFIG_MODULES=y
># CONFIG_MODULE_UNLOAD is not set
>CONFIG_OBSOLETE_MODPARM=y
># CONFIG_MODVERSIONS is not set
># CONFIG_MODULE_SRCVERSION_ALL is not set
>CONFIG_KMOD=y
>
>#
># Processor type and features
>#
>CONFIG_X86_PC=y
># CONFIG_X86_ELAN is not set
># 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_X86_GENERICARCH is not set
># CONFIG_X86_ES7000 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_MPENTIUMM is not set
>CONFIG_MPENTIUM4=y
># CONFIG_MK6 is not set
># CONFIG_MK7 is not set
># CONFIG_MK8 is not set
># CONFIG_MCRUSOE is not set
># CONFIG_MEFFICEON 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_GENERIC is not set
>CONFIG_X86_CMPXCHG=y
>CONFIG_X86_XADD=y
>CONFIG_X86_L1_CACHE_SHIFT=7
>CONFIG_GENERIC_CALIBRATE_DELAY=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_INTEL_USERCOPY=y
>CONFIG_X86_USE_PPRO_CHECKSUM=y
># CONFIG_HPET_TIMER is not set
>CONFIG_SMP=y
>CONFIG_NR_CPUS=2
>CONFIG_SCHED_SMT=y
># CONFIG_PREEMPT_NONE is not set
># CONFIG_PREEMPT_VOLUNTARY is not set
># CONFIG_PREEMPT_DESKTOP is not set
>CONFIG_PREEMPT_RT=y
>CONFIG_PREEMPT=y
>CONFIG_PREEMPT_SOFTIRQS=y
>CONFIG_PREEMPT_HARDIRQS=y
>CONFIG_PREEMPT_BKL=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=y
># CONFIG_TOSHIBA is not set
># CONFIG_I8K is not set
># CONFIG_MICROCODE is not set
># CONFIG_X86_MSR is not set
># CONFIG_X86_CPUID is not set
>
>#
># Firmware Drivers
>#
># CONFIG_EDD is not set
>CONFIG_NOHIGHMEM=y
># CONFIG_HIGHMEM4G is not set
># CONFIG_HIGHMEM64G is not set
># CONFIG_MATH_EMULATION is not set
>CONFIG_MTRR=y
>CONFIG_IRQBALANCE=y
>CONFIG_HAVE_DEC_LOCK=y
># CONFIG_REGPARM is not set
>
>#
># Power management options (ACPI, APM)
>#
># CONFIG_PM is not set
>
>#
># ACPI (Advanced Configuration and Power Interface) Support
>#
># CONFIG_ACPI is not set
>CONFIG_ACPI_BOOT=y
>CONFIG_ACPI_BLACKLIST_YEAR=0
>
>#
># 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_GOMMCONFIG is not set
># CONFIG_PCI_GODIRECT is not set
>CONFIG_PCI_GOANY=y
>CONFIG_PCI_BIOS=y
>CONFIG_PCI_DIRECT=y
># CONFIG_PCIEPORTBUS is not set
># CONFIG_PCI_MSI is not set
>CONFIG_PCI_LEGACY_PROC=y
>CONFIG_PCI_NAMES=y
>CONFIG_ISA=y
># CONFIG_EISA is not set
># CONFIG_MCA is not set
># CONFIG_SCx200 is not set
>
>#
># PCCARD (PCMCIA/CardBus) support
>#
># CONFIG_PCCARD is not set
>
>#
># PC-card bridges
>#
>CONFIG_PCMCIA_PROBE=y
>
>#
># PCI Hotplug Support
>#
># CONFIG_HOTPLUG_PCI is not set
>
>#
># Executable file formats
>#
>CONFIG_BINFMT_ELF=y
>CONFIG_BINFMT_AOUT=y
>CONFIG_BINFMT_MISC=y
>
>#
># Device Drivers
>#
>
>#
># Generic Driver Options
>#
>CONFIG_STANDALONE=y
>CONFIG_PREVENT_FIRMWARE_BUILD=y
>CONFIG_FW_LOADER=m
>
>#
># Memory Technology Devices (MTD)
>#
># CONFIG_MTD is not set
>
>#
># Parallel port support
>#
>CONFIG_PARPORT=y
>CONFIG_PARPORT_PC=y
>CONFIG_PARPORT_PC_CML1=y
># 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 is not set
>
>#
># Plug and Play support
>#
>CONFIG_PNP=y
># CONFIG_PNP_DEBUG is not set
>
>#
># Protocols
>#
># CONFIG_ISAPNP is not set
># CONFIG_PNPBIOS is not set
>
>#
># Block devices
>#
>CONFIG_BLK_DEV_FD=y
># CONFIG_BLK_DEV_XD 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_COW_COMMON is not set
># CONFIG_BLK_DEV_LOOP is not set
># CONFIG_BLK_DEV_NBD is not set
># CONFIG_BLK_DEV_SX8 is not set
># CONFIG_BLK_DEV_RAM is not set
>CONFIG_BLK_DEV_RAM_COUNT=16
>CONFIG_INITRAMFS_SOURCE=""
>CONFIG_LBD=y
># CONFIG_CDROM_PKTCDVD is not set
>
>#
># IO Schedulers
>#
>CONFIG_IOSCHED_NOOP=y
>CONFIG_IOSCHED_AS=y
>CONFIG_IOSCHED_DEADLINE=y
>CONFIG_IOSCHED_CFQ=y
># CONFIG_ATA_OVER_ETH is not set
>
>#
># ATA/ATAPI/MFM/RLL support
>#
>CONFIG_IDE=y
>CONFIG_BLK_DEV_IDE=y
>
>#
># Please see Documentation/ide.txt for help/info on IDE drives
>#
># CONFIG_BLK_DEV_IDE_SATA is not set
># CONFIG_BLK_DEV_HD_IDE is not set
>CONFIG_BLK_DEV_IDEDISK=y
>CONFIG_IDEDISK_MULTI_MODE=y
>CONFIG_BLK_DEV_IDECD=y
># CONFIG_BLK_DEV_IDETAPE is not set
># CONFIG_BLK_DEV_IDEFLOPPY is not set
># CONFIG_BLK_DEV_IDESCSI is not set
># CONFIG_IDE_TASK_IOCTL is not set
>
>#
># IDE chipset support/bugfixes
>#
>CONFIG_IDE_GENERIC=y
>CONFIG_BLK_DEV_CMD640=y
># CONFIG_BLK_DEV_CMD640_ENHANCED is not set
># CONFIG_BLK_DEV_IDEPNP is not set
>CONFIG_BLK_DEV_IDEPCI=y
>CONFIG_IDEPCI_SHARE_IRQ=y
># CONFIG_BLK_DEV_OFFBOARD is not set
>CONFIG_BLK_DEV_GENERIC=y
># CONFIG_BLK_DEV_OPTI621 is not set
>CONFIG_BLK_DEV_RZ1000=y
>CONFIG_BLK_DEV_IDEDMA_PCI=y
># CONFIG_BLK_DEV_IDEDMA_FORCED is not set
>CONFIG_IDEDMA_PCI_AUTO=y
># CONFIG_IDEDMA_ONLYDISK is not set
># CONFIG_BLK_DEV_AEC62XX is not set
># CONFIG_BLK_DEV_ALI15X3 is not set
># CONFIG_BLK_DEV_AMD74XX is not set
># CONFIG_BLK_DEV_ATIIXP is not set
># CONFIG_BLK_DEV_CMD64X is not set
># CONFIG_BLK_DEV_TRIFLEX is not set
># CONFIG_BLK_DEV_CY82C693 is not set
># CONFIG_BLK_DEV_CS5520 is not set
># CONFIG_BLK_DEV_CS5530 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=y
># CONFIG_BLK_DEV_NS87415 is not set
># CONFIG_BLK_DEV_PDC202XX_OLD is not set
># CONFIG_BLK_DEV_PDC202XX_NEW 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 is not set
># CONFIG_IDE_ARM is not set
># CONFIG_IDE_CHIPSETS is not set
>CONFIG_BLK_DEV_IDEDMA=y
># CONFIG_IDEDMA_IVB is not set
>CONFIG_IDEDMA_AUTO=y
># CONFIG_BLK_DEV_HD is not set
>
>#
># SCSI device support
>#
>CONFIG_SCSI=y
># CONFIG_SCSI_PROC_FS is not set
>
>#
># SCSI support type (disk, tape, CD-ROM)
>#
># CONFIG_BLK_DEV_SD is not set
># CONFIG_CHR_DEV_ST is not set
># CONFIG_CHR_DEV_OSST is not set
># CONFIG_BLK_DEV_SR is not set
># CONFIG_CHR_DEV_SG is not set
>
>#
># Some SCSI devices (e.g. CD jukebox) support multiple LUNs
>#
># CONFIG_SCSI_MULTI_LUN is not set
># CONFIG_SCSI_CONSTANTS is not set
># CONFIG_SCSI_LOGGING is not set
>
>#
># SCSI Transport Attributes
>#
># CONFIG_SCSI_SPI_ATTRS is not set
># CONFIG_SCSI_FC_ATTRS is not set
># CONFIG_SCSI_ISCSI_ATTRS is not set
>
>#
># SCSI low-level drivers
>#
># CONFIG_BLK_DEV_3W_XXXX_RAID is not set
># CONFIG_SCSI_3W_9XXX is not set
># CONFIG_SCSI_7000FASST is not set
># CONFIG_SCSI_ACARD is not set
># CONFIG_SCSI_AHA152X is not set
># CONFIG_SCSI_AHA1542 is not set
># CONFIG_SCSI_AACRAID is not set
># CONFIG_SCSI_AIC7XXX is not set
># CONFIG_SCSI_AIC7XXX_OLD is not set
># CONFIG_SCSI_AIC79XX is not set
># CONFIG_SCSI_DPT_I2O is not set
># CONFIG_SCSI_IN2000 is not set
># CONFIG_MEGARAID_NEWGEN is not set
># CONFIG_MEGARAID_LEGACY is not set
># CONFIG_SCSI_SATA is not set
># CONFIG_SCSI_BUSLOGIC is not set
># CONFIG_SCSI_DMX3191D is not set
># CONFIG_SCSI_DTC3280 is not set
># CONFIG_SCSI_EATA is not set
># CONFIG_SCSI_EATA_PIO is not set
># CONFIG_SCSI_FUTURE_DOMAIN is not set
># CONFIG_SCSI_GDTH is not set
># CONFIG_SCSI_GENERIC_NCR5380 is not set
># CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
># CONFIG_SCSI_IPS is not set
># CONFIG_SCSI_INITIO is not set
># CONFIG_SCSI_INIA100 is not set
># CONFIG_SCSI_PPA is not set
># CONFIG_SCSI_IMM is not set
># CONFIG_SCSI_NCR53C406A is not set
># CONFIG_SCSI_SYM53C8XX_2 is not set
># CONFIG_SCSI_IPR is not set
># CONFIG_SCSI_PAS16 is not set
># CONFIG_SCSI_PSI240I is not set
># CONFIG_SCSI_QLOGIC_FAS is not set
># CONFIG_SCSI_QLOGIC_ISP is not set
># CONFIG_SCSI_QLOGIC_FC is not set
># CONFIG_SCSI_QLOGIC_1280 is not set
>CONFIG_SCSI_QLA2XXX=y
># CONFIG_SCSI_QLA21XX is not set
># CONFIG_SCSI_QLA22XX is not set
># CONFIG_SCSI_QLA2300 is not set
># CONFIG_SCSI_QLA2322 is not set
># CONFIG_SCSI_QLA6312 is not set
># CONFIG_SCSI_SYM53C416 is not set
># CONFIG_SCSI_DC395x is not set
># CONFIG_SCSI_DC390T is not set
># CONFIG_SCSI_T128 is not set
># CONFIG_SCSI_U14_34F is not set
># CONFIG_SCSI_ULTRASTOR is not set
># CONFIG_SCSI_NSP32 is not set
># CONFIG_SCSI_DEBUG is not set
>
>#
># Old CD-ROM drivers (not SCSI, not IDE)
>#
># CONFIG_CD_NO_IDESCSI is not set
>
>#
># Multi-device support (RAID and LVM)
>#
># CONFIG_MD is not set
>
>#
># Fusion MPT device support
>#
># CONFIG_FUSION is not set
>
>#
># IEEE 1394 (FireWire) support
>#
># CONFIG_IEEE1394 is not set
>
>#
># I2O device support
>#
># CONFIG_I2O is not set
>
>#
># Networking support
>#
>CONFIG_NET=y
>
>#
># Networking options
>#
>CONFIG_PACKET=y
># CONFIG_PACKET_MMAP is not set
># CONFIG_NETLINK_DEV is not set
>CONFIG_UNIX=y
># CONFIG_NET_KEY is not set
>CONFIG_INET=y
>CONFIG_IP_MULTICAST=y
># CONFIG_IP_ADVANCED_ROUTER is not set
># CONFIG_IP_PNP is not set
># CONFIG_NET_IPIP is not set
># CONFIG_NET_IPGRE is not set
># CONFIG_IP_MROUTE is not set
># CONFIG_ARPD is not set
># CONFIG_SYN_COOKIES is not set
># CONFIG_INET_AH is not set
># CONFIG_INET_ESP is not set
># CONFIG_INET_IPCOMP is not set
># CONFIG_INET_TUNNEL is not set
>CONFIG_IP_TCPDIAG=y
># CONFIG_IP_TCPDIAG_IPV6 is not set
>
>#
># IP: Virtual Server Configuration
>#
># CONFIG_IP_VS is not set
># CONFIG_IPV6 is not set
>CONFIG_NETFILTER=y
># CONFIG_NETFILTER_DEBUG is not set
>
>#
># IP: Netfilter Configuration
>#
>CONFIG_IP_NF_CONNTRACK=y
># CONFIG_IP_NF_CT_ACCT is not set
># CONFIG_IP_NF_CONNTRACK_MARK is not set
># CONFIG_IP_NF_CT_PROTO_SCTP is not set
># CONFIG_IP_NF_FTP is not set
># CONFIG_IP_NF_IRC is not set
># CONFIG_IP_NF_TFTP is not set
># CONFIG_IP_NF_AMANDA is not set
>CONFIG_IP_NF_QUEUE=y
>CONFIG_IP_NF_IPTABLES=y
>CONFIG_IP_NF_MATCH_LIMIT=y
>CONFIG_IP_NF_MATCH_IPRANGE=y
>CONFIG_IP_NF_MATCH_MAC=y
>CONFIG_IP_NF_MATCH_PKTTYPE=y
>CONFIG_IP_NF_MATCH_MARK=y
>CONFIG_IP_NF_MATCH_MULTIPORT=y
>CONFIG_IP_NF_MATCH_TOS=y
>CONFIG_IP_NF_MATCH_RECENT=y
>CONFIG_IP_NF_MATCH_ECN=y
>CONFIG_IP_NF_MATCH_DSCP=y
>CONFIG_IP_NF_MATCH_AH_ESP=y
>CONFIG_IP_NF_MATCH_LENGTH=y
>CONFIG_IP_NF_MATCH_TTL=y
>CONFIG_IP_NF_MATCH_TCPMSS=y
>CONFIG_IP_NF_MATCH_HELPER=y
>CONFIG_IP_NF_MATCH_STATE=y
>CONFIG_IP_NF_MATCH_CONNTRACK=y
>CONFIG_IP_NF_MATCH_OWNER=y
># CONFIG_IP_NF_MATCH_ADDRTYPE is not set
># CONFIG_IP_NF_MATCH_REALM is not set
># CONFIG_IP_NF_MATCH_SCTP is not set
># CONFIG_IP_NF_MATCH_COMMENT is not set
># CONFIG_IP_NF_MATCH_HASHLIMIT is not set
>CONFIG_IP_NF_FILTER=y
>CONFIG_IP_NF_TARGET_REJECT=y
>CONFIG_IP_NF_TARGET_LOG=y
>CONFIG_IP_NF_TARGET_ULOG=y
>CONFIG_IP_NF_TARGET_TCPMSS=y
>CONFIG_IP_NF_NAT=y
>CONFIG_IP_NF_NAT_NEEDED=y
>CONFIG_IP_NF_TARGET_MASQUERADE=y
>CONFIG_IP_NF_TARGET_REDIRECT=y
>CONFIG_IP_NF_TARGET_NETMAP=y
>CONFIG_IP_NF_TARGET_SAME=y
># CONFIG_IP_NF_NAT_SNMP_BASIC is not set
>CONFIG_IP_NF_MANGLE=y
>CONFIG_IP_NF_TARGET_TOS=y
>CONFIG_IP_NF_TARGET_ECN=y
>CONFIG_IP_NF_TARGET_DSCP=y
>CONFIG_IP_NF_TARGET_MARK=y
>CONFIG_IP_NF_TARGET_CLASSIFY=y
>CONFIG_IP_NF_RAW=m
>CONFIG_IP_NF_TARGET_NOTRACK=m
>CONFIG_IP_NF_ARPTABLES=y
>CONFIG_IP_NF_ARPFILTER=y
>CONFIG_IP_NF_ARP_MANGLE=y
>
>#
># SCTP Configuration (EXPERIMENTAL)
>#
># CONFIG_IP_SCTP is not set
># CONFIG_ATM is not set
># CONFIG_BRIDGE is not set
># CONFIG_VLAN_8021Q is not set
># CONFIG_DECNET is not set
># CONFIG_LLC2 is not set
># CONFIG_IPX is not set
># CONFIG_ATALK is not set
># CONFIG_X25 is not set
># CONFIG_LAPB is not set
># CONFIG_NET_DIVERT is not set
># CONFIG_ECONET is not set
># CONFIG_WAN_ROUTER is not set
>
>#
># QoS and/or fair queueing
>#
># CONFIG_NET_SCHED is not set
># CONFIG_NET_CLS_ROUTE is not set
>
>#
># Network testing
>#
># CONFIG_NET_PKTGEN is not set
># CONFIG_NETPOLL is not set
># CONFIG_NET_POLL_CONTROLLER is not set
># CONFIG_HAMRADIO is not set
># CONFIG_IRDA is not set
># CONFIG_BT is not set
>CONFIG_NETDEVICES=y
>CONFIG_DUMMY=m
># CONFIG_BONDING is not set
># CONFIG_EQUALIZER is not set
># CONFIG_TUN is not set
># CONFIG_NET_SB1000 is not set
>
>#
># ARCnet devices
>#
># CONFIG_ARCNET is not set
>
>#
># Ethernet (10 or 100Mbit)
>#
>CONFIG_NET_ETHERNET=y
>CONFIG_MII=y
># CONFIG_HAPPYMEAL is not set
># CONFIG_SUNGEM is not set
># CONFIG_NET_VENDOR_3COM is not set
># CONFIG_LANCE is not set
># CONFIG_NET_VENDOR_SMC is not set
># CONFIG_NET_VENDOR_RACAL is not set
>
>#
># Tulip family network device support
>#
># CONFIG_NET_TULIP is not set
># CONFIG_AT1700 is not set
># CONFIG_DEPCA is not set
># CONFIG_HP100 is not set
># CONFIG_NET_ISA 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_AC3200 is not set
># CONFIG_APRICOT is not set
># CONFIG_B44 is not set
># CONFIG_FORCEDETH is not set
># CONFIG_CS89x0 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 is not set
>CONFIG_8139TOO=y
>CONFIG_8139TOO_PIO=y
># CONFIG_8139TOO_TUNE_TWISTER is not set
># CONFIG_8139TOO_8129 is not set
># 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 is not set
># CONFIG_NET_POCKET 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_VIA_VELOCITY is not set
># CONFIG_TIGON3 is not set
>
>#
># Ethernet (10000 Mbit)
>#
># CONFIG_IXGB is not set
>CONFIG_S2IO=m
># CONFIG_S2IO_NAPI is not set
># CONFIG_2BUFF_MODE is not set
>
>#
># Token Ring devices
>#
># CONFIG_TR is not set
>
>#
># Wireless LAN (non-hamradio)
>#
># CONFIG_NET_RADIO is not set
>
>#
># Wan interfaces
>#
># CONFIG_WAN is not set
># CONFIG_FDDI is not set
># CONFIG_HIPPI is not set
># CONFIG_PLIP is not set
># CONFIG_PPP is not set
># CONFIG_SLIP is not set
># CONFIG_NET_FC is not set
># CONFIG_SHAPER is not set
># CONFIG_NETCONSOLE is not set
>
>#
># ISDN subsystem
>#
># CONFIG_ISDN 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 is not set
># CONFIG_INPUT_TSDEV is not set
># CONFIG_INPUT_EVDEV is not set
># 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 is not set
># CONFIG_SERIO_CT82C710 is not set
># CONFIG_SERIO_PARKBD is not set
># CONFIG_SERIO_PCIPS2 is not set
>CONFIG_SERIO_LIBPS2=y
># CONFIG_SERIO_RAW is not set
>
>#
># Input Device Drivers
>#
>CONFIG_INPUT_KEYBOARD=y
>CONFIG_KEYBOARD_ATKBD=y
># CONFIG_KEYBOARD_SUNKBD is not set
># CONFIG_KEYBOARD_LKKBD 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_MOUSE_INPORT is not set
># CONFIG_MOUSE_LOGIBM is not set
># CONFIG_MOUSE_PC110PAD is not set
># CONFIG_MOUSE_VSXXXAA is not set
># CONFIG_INPUT_JOYSTICK is not set
># CONFIG_INPUT_TOUCHSCREEN is not set
># CONFIG_INPUT_MISC is not set
>
>#
># 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_NR_UARTS=4
># CONFIG_SERIAL_8250_EXTENDED is not set
>
>#
># Non-8250 serial port support
>#
>CONFIG_SERIAL_CORE=y
>CONFIG_UNIX98_PTYS=y
>CONFIG_LEGACY_PTYS=y
>CONFIG_LEGACY_PTY_COUNT=256
>CONFIG_PRINTER=y
># CONFIG_LP_CONSOLE is not set
># CONFIG_PPDEV is not set
># CONFIG_TIPAR is not set
>
>#
># IPMI
>#
># CONFIG_IPMI_HANDLER is not set
>
>#
># Watchdog Cards
>#
># CONFIG_WATCHDOG is not set
># CONFIG_HW_RANDOM is not set
># CONFIG_NVRAM is not set
># CONFIG_RTC is not set
>CONFIG_BLOCKER=y
># CONFIG_GEN_RTC is not set
># 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_AGP=y
># CONFIG_AGP_ALI is not set
># CONFIG_AGP_ATI is not set
># CONFIG_AGP_AMD is not set
># CONFIG_AGP_AMD64 is not set
>CONFIG_AGP_INTEL=y
>CONFIG_AGP_INTEL_MCH=m
># CONFIG_AGP_NVIDIA is not set
># CONFIG_AGP_SIS is not set
># CONFIG_AGP_SWORKS is not set
># CONFIG_AGP_VIA is not set
># CONFIG_AGP_EFFICEON is not set
>CONFIG_DRM=y
># CONFIG_DRM_TDFX is not set
># CONFIG_DRM_R128 is not set
># CONFIG_DRM_RADEON is not set
># CONFIG_DRM_I810 is not set
># CONFIG_DRM_I830 is not set
># CONFIG_DRM_I915 is not set
># CONFIG_DRM_MGA is not set
># CONFIG_DRM_SIS is not set
># CONFIG_MWAVE is not set
># CONFIG_RAW_DRIVER is not set
># CONFIG_HANGCHECK_TIMER is not set
>
>#
># I2C support
>#
># CONFIG_I2C is not set
>
>#
># Dallas's 1-wire bus
>#
># CONFIG_W1 is not set
>
>#
># Misc devices
>#
># CONFIG_IBM_ASM is not set
>
>#
># Multimedia devices
>#
># CONFIG_VIDEO_DEV is not set
>
>#
># Digital Video Broadcasting Devices
>#
># CONFIG_DVB is not set
>
>#
># Graphics support
>#
># CONFIG_FB is not set
># CONFIG_VIDEO_SELECT is not set
>
>#
># Console display driver support
>#
>CONFIG_VGA_CONSOLE=y
># CONFIG_MDA_CONSOLE is not set
>CONFIG_DUMMY_CONSOLE=y
># CONFIG_BACKLIGHT_LCD_SUPPORT is not set
>
>#
># Sound
>#
># CONFIG_SOUND is not set
>
>#
># USB support
>#
># CONFIG_USB is not set
>CONFIG_USB_ARCH_HAS_HCD=y
>CONFIG_USB_ARCH_HAS_OHCI=y
>
>#
># NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also
> be needed; see USB_STORAGE Help for more information
>#
>
>#
># USB Gadget Support
>#
># CONFIG_USB_GADGET is not set
>
>#
># MMC/SD Card support
>#
># CONFIG_MMC is not set
>
>#
># InfiniBand support
>#
># CONFIG_INFINIBAND is not set
>
>#
># File systems
>#
>CONFIG_EXT2_FS=y
># CONFIG_EXT2_FS_XATTR is not set
>CONFIG_EXT3_FS=y
>CONFIG_EXT3_FS_XATTR=y
># CONFIG_EXT3_FS_POSIX_ACL is not set
># CONFIG_EXT3_FS_SECURITY is not set
>CONFIG_JBD=y
># CONFIG_JBD_DEBUG is not set
>CONFIG_FS_MBCACHE=y
># CONFIG_REISERFS_FS is not set
># CONFIG_JFS_FS is not set
># CONFIG_XFS_FS is not set
># CONFIG_MINIX_FS is not set
># CONFIG_ROMFS_FS is not set
># CONFIG_QUOTA is not set
># CONFIG_DNOTIFY is not set
># CONFIG_AUTOFS_FS is not set
># CONFIG_AUTOFS4_FS is not set
>
>#
># CD-ROM/DVD Filesystems
>#
># CONFIG_ISO9660_FS is not set
># CONFIG_UDF_FS is not set
>
>#
># DOS/FAT/NT Filesystems
>#
># CONFIG_MSDOS_FS is not set
># CONFIG_VFAT_FS is not set
># CONFIG_NTFS_FS is not set
>
>#
># Pseudo filesystems
>#
>CONFIG_PROC_FS=y
>CONFIG_PROC_KCORE=y
>CONFIG_SYSFS=y
># CONFIG_DEVFS_FS is not set
># CONFIG_DEVPTS_FS_XATTR is not set
># CONFIG_TMPFS is not set
># CONFIG_HUGETLBFS is not set
># CONFIG_HUGETLB_PAGE is not set
>CONFIG_RAMFS=y
>
>#
># Miscellaneous filesystems
>#
># CONFIG_ADFS_FS is not set
># CONFIG_AFFS_FS is not set
># CONFIG_HFS_FS is not set
># CONFIG_HFSPLUS_FS is not set
># CONFIG_BEFS_FS is not set
># CONFIG_BFS_FS is not set
># CONFIG_EFS_FS is not set
># CONFIG_CRAMFS is not set
># CONFIG_VXFS_FS is not set
># CONFIG_HPFS_FS is not set
># CONFIG_QNX4FS_FS is not set
># CONFIG_SYSV_FS is not set
># CONFIG_UFS_FS is not set
>
>#
># Network File Systems
>#
># CONFIG_NFS_FS is not set
># CONFIG_NFSD is not set
># CONFIG_EXPORTFS is not set
># CONFIG_SMB_FS is not set
># CONFIG_CIFS is not set
># CONFIG_NCP_FS is not set
># CONFIG_CODA_FS is not set
># CONFIG_AFS_FS is not set
>
>#
># Partition Types
>#
># CONFIG_PARTITION_ADVANCED is not set
>CONFIG_MSDOS_PARTITION=y
>
>#
># Native Language Support
>#
>CONFIG_NLS=y
>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_ASCII 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
>
>#
># Profiling support
>#
># CONFIG_PROFILING is not set
>
>#
># Kernel hacking
>#
># CONFIG_DEBUG_KERNEL is not set
># CONFIG_DEBUG_PREEMPT is not set
>CONFIG_WAKEUP_TIMING=y
># CONFIG_CRITICAL_PREEMPT_TIMING is not set
># CONFIG_CRITICAL_IRQSOFF_TIMING is not set
>CONFIG_LATENCY_TIMING=y
># CONFIG_LATENCY_TRACE is not set
>CONFIG_RT_DEADLOCK_DETECT=y
># CONFIG_DEBUG_BUGVERBOSE is not set
># CONFIG_USE_FRAME_POINTER is not set
>CONFIG_EARLY_PRINTK=y
>CONFIG_4KSTACKS=y
>CONFIG_X86_FIND_SMP_CONFIG=y
>CONFIG_X86_MPPARSE=y
>
>#
># Security options
>#
># CONFIG_KEYS is not set
># CONFIG_SECURITY is not set
>
>#
># Cryptographic options
>#
># CONFIG_CRYPTO is not set
>
>#
># Hardware crypto devices
>#
>
>#
># Library routines
>#
># CONFIG_CRC_CCITT is not set
>CONFIG_CRC32=y
>CONFIG_LIBCRC32C=m
>CONFIG_GENERIC_HARDIRQS=y
>CONFIG_GENERIC_IRQ_PROBE=y
>CONFIG_X86_SMP=y
>CONFIG_X86_HT=y
>CONFIG_X86_BIOS_REBOOT=y
>CONFIG_X86_TRAMPOLINE=y
>
>
>
>On Sun, 23 Jan 2005 09:40:56 -0500, Gene Heskett
>
><[email protected]> wrote:
>> On Sunday 23 January 2005 06:31, Ingo Molnar wrote:
>> >* andyliu <[email protected]> wrote:
>> >> hi , ingo
>> >>
>> >> i am trying to understand your patch,but the patch file is so
>> >> long and complex. i am wondering is there some documents about
>> >> your patch?
>> >>
>> >> :)
>> >
>> >well, it mainly offers the PREEMPT_RT feature, which is a 'no
>> >compromises' variant of kernel preemption: virtually everything
>> >(including normal spinlocked sections) is preemptable, with the
>> > goal of providing hard-realtime category ~10-20 usecs maximum
>> > scheduling latency guarantees on a typical PC (or embedded
>> > platform). Those long and complex changes are almost all needed
>> > to achieve this goal.
>> >
>> >this tree is mainly an experiment to see what it takes to achieve
>> > that latency goal, and to see how much of that can go upstream
>> > (without having to decide whether upstream wants to have the
>> > PREEMPT_RT feature or not). (A couple of dozen patches were
>> > already split out of this patch and are in the current upstream
>> > kernel - they already made a latency difference for the 2.6.10
>> > kernel.)
>> >
>> > Ingo
>>
>> Hijacking the thread here Ingo, but did you see my build failure
>> message of yesterday?
>>
>> --
>> Cheers, Gene
>> "There are four boxes to be used in defense of liberty:
>> soap, ballot, jury, and ammo. Please use in that order."
>> -Ed Howdershelt (Author)
>> 99.32% setiathome rank, not too shabby for a WV hillbilly
>> Yahoo.com attorneys please note, additions to this message
>> by Gene Heskett are:
>> Copyright 2005 by Maurice Eugene Heskett, all rights reserved.

--
Cheers, Gene
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
99.32% setiathome rank, not too shabby for a WV hillbilly
Yahoo.com attorneys please note, additions to this message
by Gene Heskett are:
Copyright 2005 by Maurice Eugene Heskett, all rights reserved.

2005-01-24 08:03:11

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-00


* Gene Heskett <[email protected]> wrote:

> On Saturday 22 January 2005 07:29, Ingo Molnar wrote:
> >i have released the -V0.7.36-00 Real-Time Preemption patch, which
> > can be downloaded from the usual place:
> >
> > http://redhat.com/~mingo/realtime-preempt/
> >
> >this is mainly a merge to 2.6.11-rc2.
>
> Humm, by the time I went after the patch it was up to -02.
>
> And I'm getting a couple of error exits:
> -------------------
> net/sched/sch_generic.c: In function `qdisc_restart':
> net/sched/sch_generic.c:128: error: label `requeue' used but not
> defined

indeed - !PREEMPT_RT compilation broke. I've uploaded -03 with the fix
(and other fixes).

Ingo

2005-01-24 10:42:22

by Gene Heskett

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-00

On Monday 24 January 2005 03:02, Ingo Molnar wrote:
>* Gene Heskett <[email protected]> wrote:
>> On Saturday 22 January 2005 07:29, Ingo Molnar wrote:
>> >i have released the -V0.7.36-00 Real-Time Preemption patch, which
>> > can be downloaded from the usual place:
>> >
>> > http://redhat.com/~mingo/realtime-preempt/
>> >
>> >this is mainly a merge to 2.6.11-rc2.
>>
>> Humm, by the time I went after the patch it was up to -02.
>>
>> And I'm getting a couple of error exits:
>> -------------------
>> net/sched/sch_generic.c: In function `qdisc_restart':
>> net/sched/sch_generic.c:128: error: label `requeue' used but not
>> defined
>
>indeed - !PREEMPT_RT compilation broke. I've uploaded -03 with the
> fix (and other fixes).
>
> Ingo

Thanks a bunch for your work, Ingo. I'm having fun running this
stuff, and it really does seem to help everything but
kmail/spamassassin.

--
Cheers, Gene
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
99.32% setiathome rank, not too shabby for a WV hillbilly
Yahoo.com attorneys please note, additions to this message
by Gene Heskett are:
Copyright 2005 by Maurice Eugene Heskett, all rights reserved.

2005-01-26 01:08:50

by Lee Revell

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-00

On Mon, 2005-01-24 at 09:02 +0100, Ingo Molnar wrote:
> indeed - !PREEMPT_RT compilation broke. I've uploaded -03 with the fix
> (and other fixes).

-03 still does not compile with CONFIG_PREEMPT_DESKTOP:

rlrevell@mindpipe:~/kernel-source/linux-2.6.11-rc2$ make
CHK include/linux/version.h
make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
CHK include/linux/compile.h
CHK usr/initramfs_list
CC net/core/rtnetlink.o
net/core/rtnetlink.c: In function `rtnl_lock_interruptible':
net/core/rtnetlink.c:63: warning: implicit declaration of function `down_write_interruptible'
LD net/core/built-in.o
LD net/built-in.o
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
net/built-in.o(.text+0x10f99): In function `rtnl_lock_interruptible':
net/core/rtnetlink.c:63: undefined reference to `down_write_interruptible'
make: *** [.tmp_vmlinux1] Error 1

Lee

2005-01-26 08:10:16

by Ingo Molnar

[permalink] [raw]
Subject: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-04


* Tom Rini <[email protected]> wrote:

> Here's a handful of little things to fix issues in the patch for when
> you try and use the patchset on an architecture that doesn't (yet) work.
>
> - cycles_t is defined in <asm/timex.h>, but that wasn't part of
> <linux/irq.h> previously (breaks ppc32, I _think_).
> - debug_direct_keyboard & such only exist on GENERIC_HARDIRQ arches (and
> I would guess make sense on ones you have a console & !USB keyboard
> on).
> - The stubs for init_hardirqs / early_init_hardirqs were in a
> conflicting state (as seen on ppc32, which is GENERIC_HARDIRQ, but not
> yet supported). I think this gets them down to what was intended.
>
> Signed-off-by: Tom Rini <[email protected]>

thanks - i have applied all of these and have released the
-2.6.11-rc2-V0.7.36-04 patch which can be downloaded from the usual
place:

http://redhat.com/~mingo/realtime-preempt/

The -04 patch should also fix the down_write_interruptible() related
build error reported by Lee Revell and others.

Ingo

2005-02-01 20:01:20

by Lee Revell

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-04

On Wed, 2005-01-26 at 09:09 +0100, Ingo Molnar wrote:
> thanks - i have applied all of these and have released the
> -2.6.11-rc2-V0.7.36-04 patch which can be downloaded from the usual
> place:
>
> http://redhat.com/~mingo/realtime-preempt/
>
> The -04 patch should also fix the down_write_interruptible() related
> build error reported by Lee Revell and others.

Assuming it's still available, what is the config option to get the
"User-space atomicity debugging" feature? This feature is extremely
useful for debugging complex JACK clients, several Linux audio
developers have asked me about it but I can't find the config option
anymore.

Lee

2005-02-01 20:14:47

by Ingo Molnar

[permalink] [raw]
Subject: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.37-02


i have released the -V0.7.37-02 Real-Time Preemption patch, which can be
downloaded from the usual place:

http://redhat.com/~mingo/realtime-preempt/

the big change in the patch is increased architecture support: most
notable i've merged the MIPS patch from Manish Lachwani. Also, the x64
port should be working again. (To make architecture merges easier in the
future the timer interrupt is not threaded anymore - if this shows
latency problems then we'll try to solve it on other ways.)

to create a -V0.7.37-02 tree from scratch, the patching order is:

http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.11-rc2.bz2
http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.11-rc2-V0.7.37-02

Ingo

2005-02-01 20:17:48

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-04


* Lee Revell <[email protected]> wrote:

> Assuming it's still available, what is the config option to get the
> "User-space atomicity debugging" feature? This feature is extremely
> useful for debugging complex JACK clients, several Linux audio
> developers have asked me about it but I can't find the config option
> anymore.

it's always-on in the -RT tree (it's a pretty low-overhead thing). I
havent changed the mechanism so the jackd hacks from a couple of weeks
ago should still work.

Ingo

2005-02-01 20:31:22

by Lee Revell

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-04

On Tue, 2005-02-01 at 21:17 +0100, Ingo Molnar wrote:
> * Lee Revell <[email protected]> wrote:
>
> > Assuming it's still available, what is the config option to get the
> > "User-space atomicity debugging" feature? This feature is extremely
> > useful for debugging complex JACK clients, several Linux audio
> > developers have asked me about it but I can't find the config option
> > anymore.
>
> it's always-on in the -RT tree (it's a pretty low-overhead thing). I
> havent changed the mechanism so the jackd hacks from a couple of weeks
> ago should still work.
>

OK. So for application triggered tracing you need
LATENCY_TRACING enabled, as described here:

http://lkml.org/lkml/2004/10/29/312

Lee

2005-02-01 20:44:43

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-04


* Lee Revell <[email protected]> wrote:

> OK. So for application triggered tracing you need LATENCY_TRACING
> enabled, as described here:
>
> http://lkml.org/lkml/2004/10/29/312

correct, that too should still work fine - with the small change that
there's now a separate flag to active it:

echo 1 > /proc/sys/kernel/trace_user_triggered # default: 0

it is an orthogonal mechanism to atomicity-debugging.

since i wrote the above mail 3 months ago, a number of improvements have
been done to the tracer. There are a handful of modifier feature-flags
to the tracer, which can be used to get additional functionality. Here's
a quick summary:

echo 1 > /proc/sys/kernel/trace_freerunning # default: 0

will get a 'freerunning' tracer which never stops (and overwrites the
oldest entries if the trace gets full). Especially with long latencies
this in some cases can be more informative.

this flag:

echo 0 > /proc/sys/kernel/mcount_enabled # default: 1

causes the tracer to record only key kernel events (schedule/wakeup
events, etc.), not every kernel function call. This might be useful if
you want to see the bigger picture and want to validate scheduling logic
on a bigger scale, spanning a much longer timeframe.

and if you have stability problems, this flag might be handy:

echo 1 > /proc/sys/kernel/trace_freerunning # default: 0

it will dump the current kernel trace to the kernel console if a crash
happens - obviously only useful with a serial console or netconsole.
It's a big dump but can make some bugs much easier to debug.

on SMP:

echo 1 > /proc/sys/kernel/trace_all_cpus # default: 0

this flag will cause all activity from all CPUs to be included in the
trace. This can be useful if it is suspected that a particular latency
was caused not by the CPU where the latency triggers, but by some other
CPU.

Ingo

2005-02-01 23:45:35

by Lee Revell

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-04

On Tue, 2005-02-01 at 21:44 +0100, Ingo Molnar wrote:
> * Lee Revell <[email protected]> wrote:
>
> > OK. So for application triggered tracing you need LATENCY_TRACING
> > enabled, as described here:
> >
> > http://lkml.org/lkml/2004/10/29/312
>
> correct, that too should still work fine - with the small change that
> there's now a separate flag to active it:
>
> echo 1 > /proc/sys/kernel/trace_user_triggered # default: 0
>
> it is an orthogonal mechanism to atomicity-debugging.

OK. Rereading my old mail, it looks like there were some possibly
unresolved false positives with the userspace atomicity debugger.

Here's one I get from alsaplayer. Would more information be required to
know if this is a false positive?

alsaplayer:5718 userspace BUG: scheduling in user-atomic context!
[<c0102a97>] dump_stack+0x17/0x20 (20)
[<c026268c>] schedule+0x6c/0x100 (24)
[<c026330c>] rwsem_down_read_failed+0x9c/0x170 (48)
[<c01277f5>] .text.lock.futex+0x7/0xb2 (44)
[<c01276bf>] do_futex+0x4f/0x80 (28)
[<c01277ba>] sys_futex+0xca/0xe0 (68)
[<c0102457>] syscall_call+0x7/0xb (-4028)

(gdb) bt
#0 0x4117c4ec in __lll_mutex_unlock_wake () from /lib/tls/libpthread.so.0
#1 0x41179a69 in _L_mutex_unlock_26 () from /lib/tls/libpthread.so.0
#2 0x0824d3c0 in ?? ()
#3 0xb7ef3958 in ?? ()
#4 0x41179a60 in pthread_mutex_unlock () from /lib/tls/libpthread.so.0
#5 0x41179a60 in pthread_mutex_unlock () from /lib/tls/libpthread.so.0
#6 0x08057a30 in CorePlayer::Read32 (this=0x1, data=0xb7508008, samples=64) at CorePlayer.cpp:1076
#7 0x08057f89 in CorePlayer::streamer_func (arg=0x824d3c0, data=0x824cc80, size=128) at CorePlayer.cpp:1257
#8 0xb7ffcd52 in process (nframes=64, arg=0x824b258) at jack.cpp:350
#9 0xb7ef99f9 in jack_client_thread (arg=0x824bb48) at client.c:1264
#10 0x41177b63 in start_thread () from /lib/tls/libpthread.so.0
#11 0x410f0c4a in clone () from /lib/tls/libc.so.6

The backtrace is incomplete because I was unable to reproduce the
problem with the debug glibc.

Lee


2005-02-02 07:06:46

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.36-04


* Lee Revell <[email protected]> wrote:

> OK. Rereading my old mail, it looks like there were some possibly
> unresolved false positives with the userspace atomicity debugger.
>
> Here's one I get from alsaplayer. Would more information be required
> to know if this is a false positive?

this is a false positive that only triggers if PREEMPT_RT is disabled.
Does the patch below fix it? (i've also updated the -37-03 patch that
includes it.)

Ingo

--- linux/lib/rwsem.c.orig
+++ linux/lib/rwsem.c
@@ -169,6 +169,8 @@ rwsem_down_failed_common(struct rw_semap

/* wait to be given the lock */
for (;;) {
+ unsigned long nosched_flag = current->flags & PF_NOSCHED;
+
if ((sleep_state == TASK_INTERRUPTIBLE) &&
signal_pending(current)) {
spin_lock(&sem->wait_lock);
@@ -181,7 +183,10 @@ rwsem_down_failed_common(struct rw_semap
}
if (!waiter->task)
break;
+
+ current->flags &= ~PF_NOSCHED;
schedule();
+ current->flags |= nosched_flag;
set_task_state(tsk, sleep_state);
}

2005-02-03 20:46:42

by Eugeny S. Mints

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.37-02

--- rt.c.orig 2005-02-03 23:35:42.000000000 +0300
+++ rt.c 2005-02-03 23:35:58.000000000 +0300
@@ -734,7 +734,7 @@

list_del_init(&waiter->pi_list);

- set_new_owner(lock, old_owner, new_owner, eip);
+ set_new_owner(lock, old_owner, new_owner, waiter->eip);
/* Don't touch waiter after ->task has been NULLed */
mb();
waiter->task = NULL;


Attachments:
deadlock_trace_minor_fix.patch (349.00 B)

2005-02-03 20:56:20

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.37-02


* Eugeny S. Mints <[email protected]> wrote:

> Ingo Molnar wrote:
> >i have released the -V0.7.37-02 Real-Time Preemption patch, which can be
> >downloaded from the usual place:
> >
> > http://redhat.com/~mingo/realtime-preempt/
> Minor fix for deadlock tracer: "...acquired at XXX" may print caller's
> of an up() eip instead of eip of caller of a down() in case a lock was
> initally contended before deadlock is detected.
>
> Seems actual for 37-03 as well. patch is attached.

ah - this might explain some of the weirder deadlock traces. Thanks and
applied.

Ingo

2005-02-04 02:00:43

by Steven Rostedt

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.37-02

On Tue, 2005-02-01 at 21:14 +0100, Ingo Molnar wrote:
> i have released the -V0.7.37-02 Real-Time Preemption patch, which can be
> downloaded from the usual place:
>
> http://redhat.com/~mingo/realtime-preempt/
>
> the big change in the patch is increased architecture support: most
> notable i've merged the MIPS patch from Manish Lachwani. Also, the x64
> port should be working again. (To make architecture merges easier in the
> future the timer interrupt is not threaded anymore - if this shows
> latency problems then we'll try to solve it on other ways.)

Ingo,

I was just about to send you a note about why the timer interrupt as a
thread was a problem, but you changed it here, so it really isn't
anymore. But since your reason is for architecture, and not for this
reason, I'm posting it anyway.

Here was what I was about to send:

I was wondering why the timer interrupt is a thread, because this can
cause some unexpected results.

Say if you have two high priority processes A and B. A is higher than B
and both are higher than the timer interrupt (I'm on x86 so it's IRQ0)

B is doing lots of busy work, and A does a little then sleeps a little.

This is what is happening. Once A sleeps, B goes off doing lots of busy
work, and A doesn't wake up until B is done, although A had a timeout,
that it missed.

What's going on is that the jiffies are not incrementing. After the
first time that IRQ 0 goes goes off, the interrupt is disabled. So we
don't get any more interrupts for the timer, and B gets to run as much
as it wants leaving A in the dust.

So my question to you is why even bother having the timer interrupt as
thread. Maybe make a tasklet or something to do more of it's work, but
let the interrupt go off as much as it wants. Otherwise, you can have
the problem mentioned above. If the fix to this is to either change the
timer interrupt to either NODELAY or just have the processes lower in
priority than the timer, then what's the point to having the timer as a
thread?


OK that was the note I was about to send, but like I stated, it isn't a
problem now that the timer interrupt is back to a hard interrupt. I just
showing this to you so you can see the real problem. Maybe I'm missing
something, and maybe I'm not. I'll try to write up something that shows
the problem with the timer interrupt as a thread.

Thanks,

-- Steve


2005-02-04 02:23:52

by Steven Rostedt

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.37-02


> OK that was the note I was about to send, but like I stated, it isn't a
> problem now that the timer interrupt is back to a hard interrupt. I just
> showing this to you so you can see the real problem. Maybe I'm missing
> something, and maybe I'm not. I'll try to write up something that shows
> the problem with the timer interrupt as a thread.

Well, I wrote something up and I found a test case that locks the
machine (on 2.6.11-rc2-V0.7.37-03). I've only tried this on
2.6.10-rc3-mm1, where it works. I don't have anymore time to look into
this today, so I haven't tried it on vanilla 2.6.11-rc2.

The attached file was going to be something that shows what happens when
you have two processes with a higher priority than the timer interrupt.
But unfortunately it locked up 36-03. I tried it on 37-03 too, and it
locked it up as well. But if I modify this program a little, it runs
fine on both.

Here's the case: I have two processes waiting on a semaphore to go to
zero. Once it does, they both run spin loops, where one sleeps, and the
other just spins for a duration. The parent of these processes, set
their priorities very high and then zeros the semaphore.

Here's the problem: If I raise the priorities of the processes before
zeroing the semaphore, the machine hangs. If I zero the semaphore
before raising the priorities, the program runs fine.

You would think that if the problem happened the other way around, it
could be just that one of the high priority spinners is starving
everything else. But the problem occurs if the spinners are SLEEPING!

Attached is the code that locks up the machine. I'd look into it but
I've already done my 16 hours today ;-)

-- Steve


Attachments:
timertest.c (7.49 kB)

2005-02-05 06:03:11

by Steven Rostedt

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.37-02

On Thu, 2005-02-03 at 21:18 -0500, Steven Rostedt wrote:

> Here's the problem: If I raise the priorities of the processes before
> zeroing the semaphore, the machine hangs. If I zero the semaphore
> before raising the priorities, the program runs fine.

Hi Ingo,

I've looked into this and found where the deadlock occurs. Actually it
is a starving of processes. I finally got around to trying it on
2.6.11-rc3, and it doesn't have a problem.

Anyway, here's the scoop.

The parent process that zeros the semaphore to allow the child process
to run after the parent upped the priority of the child really high,
gets stuck in the following:

In update_queue in ipc/sem.c (I don't have the correct line numbers,
cause I haven't stripped out the debug yet). at the point of:
q->status = IN_WAKEUP;
/*
* Continue scanning. The next operation
* that must be checked depends on the type of the
* completed operation:
* - if the operation modified the array, then
* restart from the head of the queue and
* check for threads that might be waiting
* for semaphore values to become 0.
* - if the operation didn't modify the array,
* then just continue.
*/
if (q->alter)
n = sma->sem_pending;
else
n = q->next;
wake_up_process(q->sleeper);

Here is where it locks up.

/* hands-off: q will disappear immediately after
* writing q->status.
*/
q->status = error;


I also found that the high priority child is running in an infinite
while loop in sys_semtimedop in the same file, at the following:

while(unlikely(error == IN_WAKEUP)) {
cpu_relax();
error = queue.status;
}

So, what looks to be happening is that as soon as the parent wakes up
the child, the child preempts the parent, and hits this while loop. But
since the child is a realtime task, with the highest priority of the
system, it starves the system. Of course this is a UP and I don't think
this will show a problem on an SMP machine.

I can't think of a solution right now, so I'll just pass it on to
you ;-). Once again it's late and I'm going to bed.


Thanks,

-- Steve


2005-02-05 07:59:59

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.37-02


* Steven Rostedt <[email protected]> wrote:

> while(unlikely(error == IN_WAKEUP)) {
> cpu_relax();
> error = queue.status;
> }
>
> So, what looks to be happening is that as soon as the parent wakes up
> the child, the child preempts the parent, and hits this while loop.
> But since the child is a realtime task, with the highest priority of
> the system, it starves the system. Of course this is a UP and I don't
> think this will show a problem on an SMP machine.

hm - i had a fix in this area in the -V0.7 series. Then i thought this
is a performance fix only and dropped it eventually, but could you give
it a go - does it fix the deadlock?

Ingo

--- linux/ipc/sem.c.orig
+++ linux/ipc/sem.c
@@ -359,12 +371,18 @@ static void update_queue (struct sem_arr
struct sem_queue *n;
remove_from_queue(sma,q);
n = q->next;
+ /*
+ * Make sure that the wakeup doesnt preempt
+ * _this_ CPU prematurely. (on PREEMPT_RT)
+ */
+ preempt_disable();
q->status = IN_WAKEUP;
wake_up_process(q->sleeper);
/* hands-off: q will disappear immediately after
* writing q->status.
*/
q->status = error;
+ preempt_enable();
q = n;
} else {
q = q->next;

2005-02-05 14:33:53

by Steven Rostedt

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.37-02

On Sat, 2005-02-05 at 08:59 +0100, Ingo Molnar wrote:

> hm - i had a fix in this area in the -V0.7 series. Then i thought this
> is a performance fix only and dropped it eventually, but could you give
> it a go - does it fix the deadlock?
>
> Ingo

Yep, it worked! I tried a similar fix earlier but I put the preempt
disable before the setting of q->status (duh!) and it didn't work. But
it was late and I was tired of looking at it. I was about to say that I
already tried it, but then noticed the placement of preempt_disable, and
thought, I better try yours anyway. Well, it seems to fix it. By the
way, I just put in the disable and enable in -37. I haven't gotten to
your 38 yet, but this fixed 37.

Thanks,

-- Steve

>
> --- linux/ipc/sem.c.orig
> +++ linux/ipc/sem.c
> @@ -359,12 +371,18 @@ static void update_queue (struct sem_arr
> struct sem_queue *n;
> remove_from_queue(sma,q);
> n = q->next;
> + /*
> + * Make sure that the wakeup doesnt preempt
> + * _this_ CPU prematurely. (on PREEMPT_RT)
> + */
> + preempt_disable();
> q->status = IN_WAKEUP;
> wake_up_process(q->sleeper);
> /* hands-off: q will disappear immediately after
> * writing q->status.
> */
> q->status = error;
> + preempt_enable();
> q = n;
> } else {
> q = q->next;

2005-02-07 09:23:37

by Ingo Molnar

[permalink] [raw]
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.11-rc2-V0.7.37-02


* Steven Rostedt <[email protected]> wrote:

> On Sat, 2005-02-05 at 08:59 +0100, Ingo Molnar wrote:
>
> > hm - i had a fix in this area in the -V0.7 series. Then i thought this
> > is a performance fix only and dropped it eventually, but could you give
> > it a go - does it fix the deadlock?
> >
> > Ingo
>
> Yep, it worked! I tried a similar fix earlier but I put the preempt
> disable before the setting of q->status (duh!) and it didn't work. But
> it was late and I was tired of looking at it. I was about to say that
> I already tried it, but then noticed the placement of preempt_disable,
> and thought, I better try yours anyway. Well, it seems to fix it. By
> the way, I just put in the disable and enable in -37. I haven't gotten
> to your 38 yet, but this fixed 37.

good - i've merged this into the -38-03 release.

Ingo