linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.6.13-rt6, ktimer subsystem
@ 2005-09-13 10:00 Ingo Molnar
  2005-09-13 19:59 ` Lee Revell
                   ` (4 more replies)
  0 siblings, 5 replies; 46+ messages in thread
From: Ingo Molnar @ 2005-09-13 10:00 UTC (permalink / raw)
  To: linux-kernel; +Cc: Thomas Gleixner, Steven Rostedt, dwalker, George Anzinger


i have released the 2.6.13-rt6 tree, which can be downloaded from the 
usual place:

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

there are lots of small updates all across and there's a big feature as 
well in this release: a complete rework of the high-resolution timers 
framework, from Thomas Gleixner, called 'ktimers'.

under the ktimer framework the HR (and posix) timers live in a separate 
domain, have their own (per-CPU) rbtree to stay scalable and 
deterministic even with a high number of timers. Another positive effect 
of the introduction of separate ktimers is that kernel/timer.c is now 
using preemptible locks again, removing the cascade() worst-case 
latency. The cleanup factor is high as well: the ktimer framework 
slashes 1300+ lines off the HRT code. See kernel/ktimer.c for details.

the end-effect of ktimers is a much more deterministic HRT engine. The 
original merging of HR timers into the stock timer wheel was a Bad Idea 
(tm). We intend to push the ktimer subsystem upstream as well.

Changes since 2.6.13-rt1:

 - new ktimer subsystem to cleanly implement High Resolution Timers
   (Thomas Gleixner)

 - BKL fix for the new pi-lock code (Steven Rostedt)

 - SMP fix for the new pi-lock code (Steven Rostedt)

 - ALL_TASKS_PI updates (Daniel Walker, Steven Rostedt)

 - trace-irqs fix (Daniel Walker)

 - add raw_irqs_disabled() into the might_sleep() check (Daniel Walker)

 - turned off ALL_TASKS_PI

 - ide_lock updates

 - ioapic build fix

 - HRT build fixes

to build a 2.6.13-rt6 tree, the following patches should be applied:

   http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.tar.bz2
   http://redhat.com/~mingo/realtime-preempt/patch-2.6.13-rt6

	Ingo

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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-13 10:00 2.6.13-rt6, ktimer subsystem Ingo Molnar
@ 2005-09-13 19:59 ` Lee Revell
  2005-09-13 20:06   ` Lee Revell
  2005-09-13 20:10   ` Ingo Molnar
  2005-09-14 15:56 ` Darren Hart
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 46+ messages in thread
From: Lee Revell @ 2005-09-13 19:59 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker, George Anzinger

On Tue, 2005-09-13 at 12:00 +0200, Ingo Molnar wrote:
> i have released the 2.6.13-rt6 tree, which can be downloaded from the 
> usual place:
> 
>   http://redhat.com/~mingo/realtime-preempt/


Ingo,

Is this supposed to work on amd64?  Lots of people on linux-audio-user
report that it just reboots immediately when booting the kernel.  I have
the .configs if you want them.

Lee


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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-13 19:59 ` Lee Revell
@ 2005-09-13 20:06   ` Lee Revell
  2005-09-13 20:10   ` Ingo Molnar
  1 sibling, 0 replies; 46+ messages in thread
From: Lee Revell @ 2005-09-13 20:06 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker, George Anzinger

On Tue, 2005-09-13 at 15:59 -0400, Lee Revell wrote:
> On Tue, 2005-09-13 at 12:00 +0200, Ingo Molnar wrote:
> > i have released the 2.6.13-rt6 tree, which can be downloaded from the 
> > usual place:
> > 
> >   http://redhat.com/~mingo/realtime-preempt/
> 
> 
> Ingo,
> 
> Is this supposed to work on amd64?  Lots of people on linux-audio-user
> report that it just reboots immediately when booting the kernel.  I have
> the .configs if you want them.

Sorry the problem is specific to x86-64 not amd64.

Lee


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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-13 19:59 ` Lee Revell
  2005-09-13 20:06   ` Lee Revell
@ 2005-09-13 20:10   ` Ingo Molnar
  2005-09-13 20:36     ` Lee Revell
  1 sibling, 1 reply; 46+ messages in thread
From: Ingo Molnar @ 2005-09-13 20:10 UTC (permalink / raw)
  To: Lee Revell
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker, George Anzinger


* Lee Revell <rlrevell@joe-job.com> wrote:

> On Tue, 2005-09-13 at 12:00 +0200, Ingo Molnar wrote:
> > i have released the 2.6.13-rt6 tree, which can be downloaded from the 
> > usual place:
> > 
> >   http://redhat.com/~mingo/realtime-preempt/
> 
> 
> Ingo,
> 
> Is this supposed to work on amd64?  Lots of people on linux-audio-user 
> report that it just reboots immediately when booting the kernel.  I 
> have the .configs if you want them.

it wont even build right now, due to the ktimer changes. I'll fix x64 up 
once things have settled down a bit. (but if someone does patches i'll 
sure apply them)

	Ingo

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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-13 20:10   ` Ingo Molnar
@ 2005-09-13 20:36     ` Lee Revell
  2005-09-15  7:55       ` Ingo Molnar
  0 siblings, 1 reply; 46+ messages in thread
From: Lee Revell @ 2005-09-13 20:36 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker, George Anzinger

On Tue, 2005-09-13 at 22:10 +0200, Ingo Molnar wrote:
> * Lee Revell <rlrevell@joe-job.com> wrote:
> 
> > On Tue, 2005-09-13 at 12:00 +0200, Ingo Molnar wrote:
> > > i have released the 2.6.13-rt6 tree, which can be downloaded from the 
> > > usual place:
> > > 
> > >   http://redhat.com/~mingo/realtime-preempt/
> > 
> > 
> > Ingo,
> > 
> > Is this supposed to work on amd64?  Lots of people on linux-audio-user 
> > report that it just reboots immediately when booting the kernel.  I 
> > have the .configs if you want them.
> 
> it wont even build right now, due to the ktimer changes. I'll fix x64 up 
> once things have settled down a bit. (but if someone does patches i'll 
> sure apply them)

The problem apparently affected 2.6.13-rt4 too.  The users reported that
it built OK (as long as realtime preemption is enabled) but then reboots
as soon as grub loads the kernel.

Can this be worked around by disabling CONFIG_HIGH_RES_TIMERS?

Lee



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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-13 10:00 2.6.13-rt6, ktimer subsystem Ingo Molnar
  2005-09-13 19:59 ` Lee Revell
@ 2005-09-14 15:56 ` Darren Hart
  2005-09-14 22:09   ` Darren Hart
  2005-09-14 19:38 ` George Anzinger
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 46+ messages in thread
From: Darren Hart @ 2005-09-14 15:56 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker, George Anzinger

Ingo Molnar wrote:
 > i have released the 2.6.13-rt6 tree, which can be downloaded from the
 > usual place:
 >
 >   http://redhat.com/~mingo/realtime-preempt/

I haven't been able to get 2.6.13-rt6 to compile on a 16 way x440 (SUMMIT) with 
gcc-2.95.  Is there a known minimum compiler version?  The same config builds 
fine on a P3 8 way with gcc-3.3.5.

Make output:

   CHK     include/linux/version.h
   SYMLINK include/asm -> include/asm-i386
   SPLIT   include/linux/autoconf.h -> include/config/*
   UPD     include/linux/version.h
   HOSTCC  scripts/kallsyms
   HOSTCC  scripts/conmakehash
   HOSTCC  scripts/testlpp
scripts/testlpp.c: In function `cleanup':
scripts/testlpp.c:90: warning: use of `l' length character with `f' type character
scripts/testlpp.c:92: warning: use of `l' length character with `f' type character
scripts/testlpp.c:94: warning: use of `l' length character with `f' type character
scripts/testlpp.c: In function `main':
scripts/testlpp.c:142: warning: use of `l' length character with `f' type character
   CC      arch/i386/kernel/asm-offsets.s
In file included from include/linux/time.h:7,
                  from include/linux/timex.h:58,
                  from include/linux/sched.h:11,
                  from arch/i386/kernel/asm-offsets.c:7:
include/linux/seqlock.h: In function `__write_seqlock':
include/linux/seqlock.h:75: warning: implicit declaration of function 
`__builtin_types_compatible_p'
include/linux/seqlock.h:75: parse error before `typeof'
include/linux/seqlock.h: In function `__write_sequnlock':
include/linux/seqlock.h:84: parse error before `typeof'
include/linux/seqlock.h: In function `__write_tryseqlock':
include/linux/seqlock.h:89: parse error before `typeof'
include/linux/seqlock.h: In function `__read_seqretry':
include/linux/seqlock.h:126: parse error before `typeof'
include/linux/seqlock.h:127: parse error before `typeof'
include/linux/seqlock.h: In function `__write_seqlock_raw':
include/linux/seqlock.h:134: parse error before `typeof'
include/linux/seqlock.h: In function `__write_sequnlock_raw':
include/linux/seqlock.h:143: parse error before `typeof'
include/linux/seqlock.h: In function `__write_tryseqlock_raw':
include/linux/seqlock.h:148: parse error before `typeof'
In file included from include/asm/semaphore.h:40,
                  from include/linux/sched.h:20,
                  from arch/i386/kernel/asm-offsets.c:7:
include/linux/wait.h: In function `init_waitqueue_head':
include/linux/wait.h:84: parse error before `typeof'
In file included from include/linux/ktimer.h:207,
                  from include/linux/sched.h:254,
                  from arch/i386/kernel/asm-offsets.c:7:

Thanks,

-- 
Darren Hart
IBM Linux Technology Center
Linux Kernel Team
Phone: 503 578 3185
   T/L: 775 3185


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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-13 10:00 2.6.13-rt6, ktimer subsystem Ingo Molnar
  2005-09-13 19:59 ` Lee Revell
  2005-09-14 15:56 ` Darren Hart
@ 2005-09-14 19:38 ` George Anzinger
  2005-09-15  2:25   ` Thomas Gleixner
  2005-09-15  9:20   ` Ingo Molnar
  2005-09-15  9:43 ` Roman Zippel
  2005-09-26  7:02 ` 2.6.14-rc2-rt2 Ingo Molnar
  4 siblings, 2 replies; 46+ messages in thread
From: George Anzinger @ 2005-09-14 19:38 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker,
	'high-res-timers-discourse@lists.sourceforge.net'

Ingo Molnar wrote:
> i have released the 2.6.13-rt6 tree, which can be downloaded from the 
> usual place:
> 
>   http://redhat.com/~mingo/realtime-preempt/
> 
> there are lots of small updates all across and there's a big feature as 
> well in this release: a complete rework of the high-resolution timers 
> framework, from Thomas Gleixner, called 'ktimers'.
> 
> under the ktimer framework the HR (and posix) timers live in a separate 
> domain, have their own (per-CPU) rbtree to stay scalable and 
> deterministic even with a high number of timers. Another positive effect 
> of the introduction of separate ktimers is that kernel/timer.c is now 
> using preemptible locks again, removing the cascade() worst-case 
> latency. The cleanup factor is high as well: the ktimer framework 
> slashes 1300+ lines off the HRT code. See kernel/ktimer.c for details.
> 
> the end-effect of ktimers is a much more deterministic HRT engine. The 
> original merging of HR timers into the stock timer wheel was a Bad Idea 
> (tm). We intend to push the ktimer subsystem upstream as well.

Well, having spent a bit of time looking at the code it appears that a 
lot of the ideas we looked at and discarded (see 
high-res-timers-discourse@lists.sourceforge.net) are in this.  Shame it 
was all done with out reference or comment to that list, anyone on it or 
even the lkml.

I DO agree that it _looks_ nicer, cleaner and so on.  But there are a 
lot of things we rejected in here and they really do need, at least, a 
hard look.

A few of the top issues:

time in nanoseconds 64-bits, requires a divide to do much of anything 
with it.  Divides are slow and should be avoided if possible.  This is 
especially true in the embedded market.


The rbtree is a high overhead tree.  I suspect performance problems 
here.  If it is the right answer here, then why not use it for normal 
timers?  A list of timers is a rather unique thing and, I think, 
deserves a management structure that accounts for the fact that the 
elements in the tree are perishable.

It appears that the "monotonic_clock" is being used to drive ktimers. 
The "monotonic_clock" was NEVER meant to poke outside of the kernel.  It 
is a raw kernel clock that is only required to be monotonic with nothing 
said about accuracy.  It should NOT be confused with CLOCK_MONOTONIC 
which is directly tied to xtime and therefor is ntp corrected.

These are only the concerns I have from having a rather quick look at 
the code.  I am sure that there are other issues...



-- 
George Anzinger   george@mvista.com
HRT (High-res-timers):  http://sourceforge.net/projects/high-res-timers/

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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-14 15:56 ` Darren Hart
@ 2005-09-14 22:09   ` Darren Hart
  0 siblings, 0 replies; 46+ messages in thread
From: Darren Hart @ 2005-09-14 22:09 UTC (permalink / raw)
  Cc: Ingo Molnar, linux-kernel, Thomas Gleixner, Steven Rostedt,
	dwalker, George Anzinger

Darren Hart wrote:

 > Ingo Molnar wrote:
 >  > i have released the 2.6.13-rt6 tree, which can be downloaded from the
 >  > usual place:
 >  >
 >  >   http://redhat.com/~mingo/realtime-preempt/
 >
 > I haven't been able to get 2.6.13-rt6 to compile on a 16 way x440 
(SUMMIT) with gcc-2.95.  Is there a known minimum compiler version?  The 
same config builds fine on a P3 8 way with gcc-3.3.5.


Update: I was able to build the same config on the SUMMIT box with 
gcc-3.3.5, so the compiler version does seem to be the issue.


-- 
Darren Hart
IBM Linux Technology Center
Linux Kernel Team
Phone: 503 578 3185
   T/L: 775 3185

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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-14 19:38 ` George Anzinger
@ 2005-09-15  2:25   ` Thomas Gleixner
  2005-09-15 22:35     ` George Anzinger
  2005-09-15  9:20   ` Ingo Molnar
  1 sibling, 1 reply; 46+ messages in thread
From: Thomas Gleixner @ 2005-09-15  2:25 UTC (permalink / raw)
  To: george
  Cc: john stultz, Nish Aravamudan, Ingo Molnar, linux-kernel,
	Steven Rostedt, dwalker,
	'high-res-timers-discourse@lists.sourceforge.net'

On Wed, 2005-09-14 at 12:38 -0700, George Anzinger wrote:

> Well, having spent a bit of time looking at the code it appears that a 
> lot of the ideas we looked at and discarded (see 
> high-res-timers-discourse@lists.sourceforge.net) are in this.  Shame it 
> was all done with out reference or comment to that list, anyone on it or 
> even the lkml.

Well, I'm considering to wear sackcloth and ashes. But this seems like
the pot calling the kettle back as I don't remember a single relevant
reference/comment from you on the UTIME/KURT mailing list after your
UTIME->HRT fork.

> A few of the top issues:
> 
> time in nanoseconds 64-bits, requires a divide to do much of anything 
> with it.  Divides are slow and should be avoided if possible.  

The divides are rare and definitely not in the hot pathes. I'm sure that
they can be replaced by some intellegent scaled math algorithm if it
turns out to be necessary. The hot path instructions are simple
add/sub/cmp which are less/equal expensive on a 32bit machine to an
operation on struct timespec or an jiffies/arch_cycles pair. The non
nsec based implementation gives a burden to 64bit machines and is
provable wrong in the aspect of summing rounding errors of interval
timers. 

> This is especially true in the embedded market.

I'm well aware of the embedded market constraints.


> The rbtree is a high overhead tree.  I suspect performance problems 
> here.  

1. rbtree is available out of the box

2. rbtree is proven to be efficient - at least there are a couple of
performance relevant users relying on it e.g. mm, ext3

3. I did insertion/removal tests with 10k entries (<2us on a 1GHz box in
userspace). This is way below the experienced and reproducible trouble
of recascading. The penalty is completely on the thread which owns the
timer for non signal related functions. For signal related functions
only the removal on expiry is a penalty for the complete system (in the
softirq)

The cascading is a penalty for the complete system all the time.

Performance is a strawman argument here. You know very well that > 90%
of the timers are inaccurate "timeout" timers related to I/O,
networking, devices. Most of those never expire (the positive feedback
removes the timer before expiry) and those timers have no constraint to
be accurate, except for the fact that they have to detect an
device/network problem at some time. In this case it is completely
irrelevant whether the timeout occures n msecs earlier or later.

> If it is the right answer here, then why not use it for normal 
> timers?  A list of timers is a rather unique thing and, I think, 
> deserves a management structure that accounts for the fact that the 
> elements in the tree are perishable.

The first goal was to seperate out the timers from the timeout API and I
believe that this seperation is necessary. 

The implementation of ktimers is not at all restricted to the timers we
addressed for now, it can also be utilized for the timeout API without
much effort. 

The performance improvement is enourmous despite the alleged 64bit math
overhead.

Testcase on a 600MHz CeleronM, 512MB RAM:

16 cyclic SCHED_FIFO tasks using clock_nanosleep(ABSTIME)
base interval = 1000 us, offset per task = 50 us 
tracing each latency value to disk

16 cyclic SCHED_OTHER tasks using clock_nanosleep(ABSTIME)
base interval = 1000 us, offset per task = 500 us
tracing each latency value to disk

while true; do hackbench 50; done
cat /dev/hda | nc atlas 4711

This injects a (insane) load avg of >600 permantely

2.6.13-rt4 (cascade based implementation)
16 cyclic SCHED_FIFO tasks using clock_nanosleep(ABSTIME)

task	loops		min	max	average	sigma	prio
0	      999999	5	869	19	20	80
1	      999999	9	883	18	22	79
2	      999999	9	927	19	23	78
3	      999999	5	908	21	28	77
4	      999999	0	1056	22	33	76
5	      999999	0	973	23	33	75
6	      999999	0	926	23	33	74
7	      999999	1	893	24	33	73
8	      999999	2	942	23	34	72
9	      999999	1	868	24	34	71
10	      999999	0	912	23	34	70
11	      999999	0	911	28	46	69
12	      999999	0	912	28	46	68
13	      999999	9	967	28	46	67
14	      999999	9	954	28	46	66
15	      999999	9	946	28	46	65


2.6.13-rt11 (ktimers based implementation)
16 cyclic SCHED_FIFO tasks using clock_nanosleep(ABSTIME)

task	loops		min	max	average	sigma	prio
0	      999999	9	76	20	4	80
1	      999999	8	84	20	4	79
2	      999999	8	98	21	4	78
3	      999999	9	121	20	4	77
4	      999999	8	124	20	4	76
5	      999999	9	140	20	4	75
6	      999999	10	103	22	5	74
7	      999999	9	99	21	5	73
8	      999999	8	95	21	5	72
9	      999999	9	148	21	5	71
10	      999999	9	141	22	6	70
11	      999999	9	143	22	5	69
12	      999999	8	129	20	4	68
13	      999999	9	149	21	5	67
14	      999999	9	135	21	5	66
15	      999999	8	230	22	5	65


> It appears that the "monotonic_clock" is being used to drive ktimers. 
> The "monotonic_clock" was NEVER meant to poke outside of the kernel.  It 
> is a raw kernel clock that is only required to be monotonic with nothing 
> said about accuracy.  It should NOT be confused with CLOCK_MONOTONIC 
> which is directly tied to xtime and therefor is ntp corrected.

I'm well aware of that and this is a completely different playground. 

The ktimers implementation is _independent_ of the clock sources. The
current clock source implementation may suck, but thats not a problem of
ktimers at all. Its a problem of arch/XXX/timeYY and kernel/time.c. I
did not spend too much time on that as John Stultz is working on the
timesource and timeofday stuff and I really hope that this gets
accepted.

The relation ship of clock sources and their accuracy is also a
worthwhile field of discussion.

> These are only the concerns I have from having a rather quick look at 
> the code.  I am sure that there are other issues...

It would be hubristic to deny that :)

OTH, 

- The posix timer tests run all successful, except the broken 2timertest
which fails on any other HRT kernel too and the sleep to long for real
timers when the clock is set backwards, which is easily solvable
(working on that).

- The performance improvements in combination with simpler code is an
argument of itself


tglx



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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-13 20:36     ` Lee Revell
@ 2005-09-15  7:55       ` Ingo Molnar
  2005-09-15 11:37         ` Ingo Molnar
  0 siblings, 1 reply; 46+ messages in thread
From: Ingo Molnar @ 2005-09-15  7:55 UTC (permalink / raw)
  To: Lee Revell
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker, George Anzinger


* Lee Revell <rlrevell@joe-job.com> wrote:

> > it wont even build right now, due to the ktimer changes. I'll fix x64 up 
> > once things have settled down a bit. (but if someone does patches i'll 
> > sure apply them)
> 
> The problem apparently affected 2.6.13-rt4 too.  The users reported 
> that it built OK (as long as realtime preemption is enabled) but then 
> reboots as soon as grub loads the kernel.
> 
> Can this be worked around by disabling CONFIG_HIGH_RES_TIMERS?

on x64 HIGH_RES_TIMERS is disabled by default (no lowlevel support code 
integrated yet). Where did the problems start, rt4? (i.e. rt3 works 
fine?)

	Ingo

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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-14 19:38 ` George Anzinger
  2005-09-15  2:25   ` Thomas Gleixner
@ 2005-09-15  9:20   ` Ingo Molnar
  2005-09-15 23:04     ` George Anzinger
  1 sibling, 1 reply; 46+ messages in thread
From: Ingo Molnar @ 2005-09-15  9:20 UTC (permalink / raw)
  To: George Anzinger
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker,
	'high-res-timers-discourse@lists.sourceforge.net',
	john stultz


* George Anzinger <george@mvista.com> wrote:

> > the end-effect of ktimers is a much more deterministic HRT engine.  
> > The original merging of HR timers into the stock timer wheel was a 
> > Bad Idea (tm). We intend to push the ktimer subsystem upstream as 
> > well.
> 
> Well, having spent a bit of time looking at the code it appears that a 
> lot of the ideas we looked at and discarded (see 
> high-res-timers-discourse@lists.sourceforge.net) are in this.  Shame 
> it was all done with out reference or comment to that list, anyone on 
> it or even the lkml.

this was done in the timeframe of 2 days, and was posted ASAP - with you 
Cc:-ed for the specific purpose of getting feedback from you.

given the very good performance results of ktimers, and the 
simplification effect on the original HRT code:

   36 files changed, 2016 insertions(+), 3094 deletions(-)

it was a no-brainer to put it into the -rt tree.

> I DO agree that it _looks_ nicer, cleaner and so on. But there are a 
> lot of things we rejected in here and they really do need, at least, a 
> hard look.
> 
> A few of the top issues:
> 
> time in nanoseconds 64-bits, requires a divide to do much of anything 
> with it.  Divides are slow and should be avoided if possible.  This is 
> especially true in the embedded market.

Wrong. Divides are slow _on the micro micro level_. They make zero, nil, 
nada difference in reality. The cleanliness difference between having a 
flat nanosec scale and having some artificial 2x 32-bit structure are 
significant.

_By far_ the biggest problem of the HRT code is cleanliness (or the lack 
of it), and the resulting maintainance overhead, and the resulting gut 
reaction from upstream: "oh, yuck, bleh!". [Similar problems are true 
for the timer code in general - by far the biggest issues are 
organization and cleanliness, not micro-issues.]

Micro-level optimizations like 64-bit vs. 32-bit variables is the very 
very last issue to consider - and this statement comes from me, an 
admitted performance extremist. If the HRT code ever wants to go 
upstream then it _must get much much cleaner_. Thomas has been doing 
great work in this area.

> The rbtree is a high overhead tree. I suspect performance problems 
> here. [...]

Wrong. rbtrees are used for some of the most performance-critical areas 
of the kernel: the VMA tree, the new ext3 reservations code [a 
performance feature], access keys.

> [...] If it is the right answer here, then why not use it for normal 
> timers? [...]

i'd like to remind you that the code is less than a week old.

But, i dont think we want to make the majority of normal timeouts 
tree-based. There are in essence two fundamental time related objects in 
the kernel: timeouts and timers. Timeouts never expire in 99% of the 
cases - so they must be optimized for the 'fast insert+remove' codepath.  
Timers on the other hand expire in 99% of the cases, so they must be 
optimized for the 'fast insert+expire' codepath.

Also, for timers, since they are often used by time-deterministic code, 
it does not hurt to have a fundamentally deterministic design. The 
current upstream timer(timeout) wheel is fundamentally non-deterministic 
with an increasing number of timers, due to the cascading design.

hence the separation of timers and timeouts. I think that this 
distinction might as well stay for the long run.

and we'be been through a number of design variants during the past 
couple of weeks in the -rt tree: we tried the original HRT patch, a 
combo method with partly split HR timers, and now a completely separated 
design. From what i've seen ktimers are the best solution so far.

	Ingo

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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-13 10:00 2.6.13-rt6, ktimer subsystem Ingo Molnar
                   ` (2 preceding siblings ...)
  2005-09-14 19:38 ` George Anzinger
@ 2005-09-15  9:43 ` Roman Zippel
  2005-09-26  7:02 ` 2.6.14-rc2-rt2 Ingo Molnar
  4 siblings, 0 replies; 46+ messages in thread
From: Roman Zippel @ 2005-09-15  9:43 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker, George Anzinger

Hi,

On Tue, 13 Sep 2005, Ingo Molnar wrote:

> there are lots of small updates all across and there's a big feature as 
> well in this release: a complete rework of the high-resolution timers 
> framework, from Thomas Gleixner, called 'ktimers'.

Is that somewhere available as separate patch?

bye, Roman

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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-15  7:55       ` Ingo Molnar
@ 2005-09-15 11:37         ` Ingo Molnar
  0 siblings, 0 replies; 46+ messages in thread
From: Ingo Molnar @ 2005-09-15 11:37 UTC (permalink / raw)
  To: Lee Revell
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker, George Anzinger


* Ingo Molnar <mingo@elte.hu> wrote:

> 
> * Lee Revell <rlrevell@joe-job.com> wrote:
> 
> > > it wont even build right now, due to the ktimer changes. I'll fix x64 up 
> > > once things have settled down a bit. (but if someone does patches i'll 
> > > sure apply them)
> > 
> > The problem apparently affected 2.6.13-rt4 too.  The users reported 
> > that it built OK (as long as realtime preemption is enabled) but then 
> > reboots as soon as grub loads the kernel.
> > 
> > Can this be worked around by disabling CONFIG_HIGH_RES_TIMERS?
> 
> on x64 HIGH_RES_TIMERS is disabled by default (no lowlevel support 
> code integrated yet). Where did the problems start, rt4? (i.e. rt3 
> works fine?)

ok, fixed a couple of bugs on x64, it boots on my box now. The main 
breakage was the elimination of the preemption-disabling soft irq flag 
in -53-05, that unearthed an irq-flags 32-bitness bug in the spinlock 
macros, which was there for ages. This resulted in the early reboot 
during bootup.

I've uploaded 2.6.13-rt12 with the fixes.

	Ingo

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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-15  2:25   ` Thomas Gleixner
@ 2005-09-15 22:35     ` George Anzinger
  2005-09-15 22:53       ` Thomas Gleixner
  2005-09-15 23:09       ` Daniel Walker
  0 siblings, 2 replies; 46+ messages in thread
From: George Anzinger @ 2005-09-15 22:35 UTC (permalink / raw)
  To: tglx
  Cc: john stultz, Nish Aravamudan, Ingo Molnar, linux-kernel,
	Steven Rostedt, dwalker,
	'high-res-timers-discourse@lists.sourceforge.net'

Thomas Gleixner wrote:
> On Wed, 2005-09-14 at 12:38 -0700, George Anzinger wrote:
> 
> 
>>Well, having spent a bit of time looking at the code it appears that a 
>>lot of the ideas we looked at and discarded (see 
>>high-res-timers-discourse@lists.sourceforge.net) are in this.  Shame it 
>>was all done with out reference or comment to that list, anyone on it or 
>>even the lkml.
> 
> 
> Well, I'm considering to wear sackcloth and ashes. But this seems like
> the pot calling the kettle back as I don't remember a single relevant
> reference/comment from you on the UTIME/KURT mailing list after your
> UTIME->HRT fork.

Hm...All the work has been on HRT mailing list.  In the early days the 
UTIME/KURT folks were on the list, still may be for all I know.

Still, as much as sackcloth and ashes might become you or me, I would 
rather try to learn how to be more open about what we are doing so that 
what results is the best possible for the linux community.
> 
> 
>>A few of the top issues:
>>
>>time in nanoseconds 64-bits, requires a divide to do much of anything 
>>with it.  Divides are slow and should be avoided if possible.  
> 
> 
> The divides are rare and definitely not in the hot paths. I'm sure that
> they can be replaced by some intelligent scaled math algorithm if it
> turns out to be necessary. The hot path instructions are simple
> add/sub/cmp which are less/equal expensive on a 32bit machine to an
> operation on struct timespec or an jiffies/arch_cycles pair. The non
> nsec based implementation gives a burden to 64bit machines and is
> provable wrong in the aspect of summing rounding errors of interval
> timers. 

With out arguing with your "provable wrong", I will admit that the 
64-bit LOOKS good and easy.  At the same time I think we can abstract 
all the required actions on the "nstime" thing and set it up so we can 
use either a timespec or a s64 depending on the machine (or some such). 
  I have such a patch nearly ready...
> 
> 
~
> 
>>The rbtree is a high overhead tree.  I suspect performance problems 
>>here.  
> 
> 
> 1. rbtree is available out of the box

True.
> 
> 2. rbtree is proven to be efficient - at least there are a couple of
> performance relevant users relying on it e.g. mm, ext3
> 
> 3. I did insertion/removal tests with 10k entries (<2us on a 1GHz box in
> user space). This is way below the experienced and reproducible trouble
> of recascading. The penalty is completely on the thread which owns the
> timer for non signal related functions. For signal related functions
> only the removal on expiry is a penalty for the complete system (in the
> softirq)

Well, I never was a cascade fan.

In the early HRT patches the whole timer list was replaced with a hashed 
list.  It was O(N/M) on insertion where we could easily choose M (for a 
while it was even a config option).  Removal was just an unlink, same as 
the cascade list.

To be clear on my take on this, as I understand it the rblist is 
something like O(N*somelog 2).  What is left out here is the fixed 
overhead of F which is there even if N = 1.  So we have something like 
(F+O(f(N)) for a list.  For the most part we don't look at F, but as 
list complexity grows, it gets larger thus pushing out the cross over 
point to a higher "N" when comparing two lists.  I considered the rbtree 
when doing the secondary list for HRT and concluded that "N" was small 
enough that a simple O(N/2) list would do just fine as it would only 
contain timers set to expire in the next jiffie.

I don't think an O(N/2) list is right for all timers (as in the 
ktimers), but I still wonder if there isn't something better than and 
rblist.  Note, "wonder".  I don't have such a list structure in hand.
> 
> The cascading is a penalty for the complete system all the time.
> 
> Performance is a straw man argument here. You know very well that > 90%
> of the timers are inaccurate "timeout" timers related to I/O,
> networking, devices. Most of those never expire (the positive feedback
> removes the timer before expiry) and those timers have no constraint to
> be accurate, except for the fact that they have to detect an
> device/network problem at some time. In this case it is completely
> irrelevant whether the timeout occurs n msecs earlier or later.

I agree, but it not accuracy that I am arguing, but cpu cycles.  Those 
we use in the kernel are not available for the user.
> 
> 
>>If it is the right answer here, then why not use it for normal 
>>timers?  A list of timers is a rather unique thing and, I think, 
>>deserves a management structure that accounts for the fact that the 
>>elements in the tree are perishable.
> 
> 
> The first goal was to separate out the timers from the timeout API and I
> believe that this separation is necessary. 
> 
> The implementation of ktimers is not at all restricted to the timers we
> addressed for now, it can also be utilized for the timeout API without
> much effort. 
> 
> The performance improvement is enormous despite the alleged 64bit math
> overhead.
> 
> Testcase on a 600MHz CeleronM, 512MB RAM:
> 
> 16 cyclic SCHED_FIFO tasks using clock_nanosleep(ABSTIME)
> base interval = 1000 us, offset per task = 50 us 
> tracing each latency value to disk
> 
> 16 cyclic SCHED_OTHER tasks using clock_nanosleep(ABSTIME)
> base interval = 1000 us, offset per task = 500 us
> tracing each latency value to disk
> 
> while true; do hackbench 50; done
> cat /dev/hda | nc atlas 4711
> 
> This injects a (insane) load avg of >600 permantely
> 
> 2.6.13-rt4 (cascade based implementation)
> 16 cyclic SCHED_FIFO tasks using clock_nanosleep(ABSTIME)
> 
> task	loops		min	max	average	sigma	prio
> 0	      999999	5	869	19	20	80
> 1	      999999	9	883	18	22	79
> 2	      999999	9	927	19	23	78
> 3	      999999	5	908	21	28	77
> 4	      999999	0	1056	22	33	76
> 5	      999999	0	973	23	33	75
> 6	      999999	0	926	23	33	74
> 7	      999999	1	893	24	33	73
> 8	      999999	2	942	23	34	72
> 9	      999999	1	868	24	34	71
> 10	      999999	0	912	23	34	70
> 11	      999999	0	911	28	46	69
> 12	      999999	0	912	28	46	68
> 13	      999999	9	967	28	46	67
> 14	      999999	9	954	28	46	66
> 15	      999999	9	946	28	46	65
> 
> 
> 2.6.13-rt11 (ktimers based implementation)
> 16 cyclic SCHED_FIFO tasks using clock_nanosleep(ABSTIME)
> 
> task	loops		min	max	average	sigma	prio
> 0	      999999	9	76	20	4	80
> 1	      999999	8	84	20	4	79
> 2	      999999	8	98	21	4	78
> 3	      999999	9	121	20	4	77
> 4	      999999	8	124	20	4	76
> 5	      999999	9	140	20	4	75
> 6	      999999	10	103	22	5	74
> 7	      999999	9	99	21	5	73
> 8	      999999	8	95	21	5	72
> 9	      999999	9	148	21	5	71
> 10	      999999	9	141	22	6	70
> 11	      999999	9	143	22	5	69
> 12	      999999	8	129	20	4	68
> 13	      999999	9	149	21	5	67
> 14	      999999	9	135	21	5	66
> 15	      999999	8	230	22	5	65

I confess I don't understand the above numbers.  What are min and max 
and in what units?  Are you saying the large max numbers are caused by 
the cascade?
> 
> 
> 
>>It appears that the "monotonic_clock" is being used to drive ktimers. 
>>The "monotonic_clock" was NEVER meant to poke outside of the kernel.  It 
>>is a raw kernel clock that is only required to be monotonic with nothing 
>>said about accuracy.  It should NOT be confused with CLOCK_MONOTONIC 
>>which is directly tied to xtime and therefor is ntp corrected.
> 
> 
> I'm well aware of that and this is a completely different playground. 
> 
> The ktimers implementation is _independent_ of the clock sources. The
> current clock source implementation may suck, but thats not a problem of
> ktimers at all. Its a problem of arch/XXX/timeYY and kernel/time.c. I
> did not spend too much time on that as John Stultz is working on the
> timesource and timeofday stuff and I really hope that this gets
> accepted.
> 
> The relation ship of clock sources and their accuracy is also a
> worthwhile field of discussion.
> 
> 
>>These are only the concerns I have from having a rather quick look at 
>>the code.  I am sure that there are other issues...
> 
> 
> It would be hubristic to deny that :)
> 
> OTH, 
> 
> - The posix timer tests run all successful, except the broken 2timertest
> which fails on any other HRT kernel too and the sleep to long for real
> timers when the clock is set backwards, which is easily solvable
> (working on that).

Your mileage seems to differ from mine.  Here is what I get from ./do_test:
The following tests failed:
clock_nanosleeptest
abs_timer_test
4-1
clock_settimetest
clock_gettimetest2
2timer_test 



Then, on the second run, it crashed in an attempt to get the monotonic 
clock (a divide error).  System is a dual PIII, 800Mhz.  This from the 
rt11 patch.
> 
> - The performance improvements in combination with simpler code is an
> argument of itself

-- 
George Anzinger   george@mvista.com
HRT (High-res-timers):  http://sourceforge.net/projects/high-res-timers/

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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-15 22:35     ` George Anzinger
@ 2005-09-15 22:53       ` Thomas Gleixner
  2005-09-15 23:10         ` George Anzinger
  2005-09-15 23:09       ` Daniel Walker
  1 sibling, 1 reply; 46+ messages in thread
From: Thomas Gleixner @ 2005-09-15 22:53 UTC (permalink / raw)
  To: george
  Cc: john stultz, Nish Aravamudan, Ingo Molnar, linux-kernel,
	Steven Rostedt, dwalker,
	'high-res-timers-discourse@lists.sourceforge.net'

On Thu, 2005-09-15 at 15:35 -0700, George Anzinger wrote:

> > Performance is a straw man argument here. You know very well that > 90%
> > of the timers are inaccurate "timeout" timers related to I/O,
> > networking, devices. Most of those never expire (the positive feedback
> > removes the timer before expiry) and those timers have no constraint to
> > be accurate, except for the fact that they have to detect an
> > device/network problem at some time. In this case it is completely
> > irrelevant whether the timeout occurs n msecs earlier or later.
> 
> I agree, but it not accuracy that I am arguing, but cpu cycles.  Those 
> we use in the kernel are not available for the user.

The time used for recascding is neither available :). Seriously, I'm
quite sure that the rbtree for the sorting of "timers" - not "timeouts"
- will not have any relevant performance impact. If there is a faster
sorted tree around, I have no problem to use that.

> I confess I don't understand the above numbers.  What are min and max 
> and in what units?  Are you saying the large max numbers are caused by 
> the cascade?

Sorry, all units usec.

Yes. The problem is the combined base lock, which holds off interrupts
for quite a bunch of time. Daniel was experiencing this too.
 
> > - The posix timer tests run all successful, except the broken 2timertest
> > which fails on any other HRT kernel too and the sleep to long for real
> > timers when the clock is set backwards, which is easily solvable
> > (working on that).
> 
> Your mileage seems to differ from mine.  Here is what I get from ./do_test:
> The following tests failed:
> clock_nanosleeptest
> abs_timer_test
> 4-1
> clock_settimetest
> clock_gettimetest2
> 2timer_test 

Hmm. Except for the 2timer_test, where my source seems to be broken it
works here. 

> Then, on the second run, it crashed in an attempt to get the monotonic 
> clock (a divide error).  System is a dual PIII, 800Mhz.  This from the 
> rt11 patch.

Hmm, divide error. I had one of those in the early phase due to some
strange 64/32 truncation problem, which was caused by nested
inline/macros. After unmingling the problem went away.

tglx



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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-15  9:20   ` Ingo Molnar
@ 2005-09-15 23:04     ` George Anzinger
  2005-09-15 23:20       ` Thomas Gleixner
  0 siblings, 1 reply; 46+ messages in thread
From: George Anzinger @ 2005-09-15 23:04 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker,
	'high-res-timers-discourse@lists.sourceforge.net',
	john stultz

Ingo Molnar wrote:
> * George Anzinger <george@mvista.com> wrote:
> 
> 
>>>the end-effect of ktimers is a much more deterministic HRT engine.  
>>>The original merging of HR timers into the stock timer wheel was a 
>>>Bad Idea (tm). We intend to push the ktimer subsystem upstream as 
>>>well.
>>
>>Well, having spent a bit of time looking at the code it appears that a 
>>lot of the ideas we looked at and discarded (see 
>>high-res-timers-discourse@lists.sourceforge.net) are in this.  Shame 
>>it was all done with out reference or comment to that list, anyone on 
>>it or even the lkml.
> 
> 
> this was done in the time frame of 2 days, and was posted ASAP - with you 
> Cc:-ed for the specific purpose of getting feedback from you.

Possibly your involvement was that short.  I rather doubt the code was 
written that quickly...  I first found out about it on the 12th from the 
rt5 patch you posted about 2pm.  Was there an earlier email?
> 
> given the very good performance results of ktimers, and the 
> simplification effect on the original HRT code:
> 
>    36 files changed, 2016 insertions(+), 3094 deletions(-)
> 
> it was a no-brainer to put it into the -rt tree.
> 
> 
>>I DO agree that it _looks_ nicer, cleaner and so on. But there are a 
>>lot of things we rejected in here and they really do need, at least, a 
>>hard look.
>>
>>A few of the top issues:
>>
>>time in nanoseconds 64-bits, requires a divide to do much of anything 
>>with it.  Divides are slow and should be avoided if possible.  This is 
>>especially true in the embedded market.
> 
> 
> Wrong. Divides are slow _on the micro micro level_. They make zero, nil, 
> nada difference in reality. The cleanliness difference between having a 
> flat nanosec scale and having some artificial 2x 32-bit structure are 
> significant.

Cleanliness can easily be obtained with a CPP macro.  I am not sure what 
the right answer is here.  I have heard complaints on the 64-bit thing 
on lkml WRT the work John Stultz is doing.  Also, it is real easy to 
abstract all the operations into CPP macros and choose 64 bit or 
timespec at compile time.
> 
> _By far_ the biggest problem of the HRT code is cleanliness (or the lack 
> of it), and the resulting maintenance overhead, and the resulting gut 
> reaction from upstream: "oh, yuck, bleh!". [Similar problems are true 
> for the timer code in general - by far the biggest issues are 
> organization and cleanliness, not micro-issues.]

I agree, the ktimers code looks clean.  I am concerned that all the 
issues be addressed, but time will shake that out.
> 
> Micro-level optimizations like 64-bit vs. 32-bit variables is the very 
> very last issue to consider - and this statement comes from me, an 
> admitted performance extremist. If the HRT code ever wants to go 
> upstream then it _must get much much cleaner_. Thomas has been doing 
> great work in this area.

Agreed, I just wish we could see it a bit earlier...
> 
> 
>>The rbtree is a high overhead tree. I suspect performance problems 
>>here. [...]
> 
> 
> Wrong. rbtrees are used for some of the most performance-critical areas 
> of the kernel: the VMA tree, the new ext3 reservations code [a 
> performance feature], access keys.
> 
> 
>>[...] If it is the right answer here, then why not use it for normal 
>>timers? [...]
> 
> 
> I'd like to remind you that the code is less than a week old.
> 
> But, i don't think we want to make the majority of normal timeouts 
> tree-based. There are in essence two fundamental time related objects in 
> the kernel: timeouts and timers. Timeouts never expire in 99% of the 
> cases - so they must be optimized for the 'fast insert+remove' code path.  
> Timers on the other hand expire in 99% of the cases, so they must be 
> optimized for the 'fast insert+expire' code path.

Timers do, but I am not so sure of sleeps.  Seems a lot of them are 
interrupted.  Still, as I said in the note to Thomas, I don't have a 
real answer here.  The hashed tree I used in HRT instead of the cascade, 
did eliminate the cascade.  The hashed tree is faster for small N and, 
by changing the hash bucket size, we can easily make N<4k or so small. 
For larger N, the rbtree or some such seems right.  As I said in the 
note to Thomas, I am NO fan of the cascade.
> 
> Also, for timers, since they are often used by time-deterministic code, 
> it does not hurt to have a fundamentally deterministic design. The 
> current upstream timer(timeout) wheel is fundamentally non-deterministic 
> with an increasing number of timers, due to the cascading design.

Interested in a hashed list.  It is rather easy to do and does NOT 
cascade.  It is an O(N/M) list for inserts, same as what there now for 
deletes and nearly the same for the run timer code.  It takes away all 
the cascade stuff so it will eliminate a all of that code.  Oh, "M" is 
the number of buckets and can easily be configured at compile time.
> 
> hence the separation of timers and timeouts. I think that this 
> distinction might as well stay for the long run.
> 
> and we'be been through a number of design variants during the past 
> couple of weeks in the -rt tree: we tried the original HRT patch, a 
> combo method with partly split HR timers, and now a completely separated 
> design. From what I've seen ktimers are the best solution so far.
> 

-- 
George Anzinger   george@mvista.com
HRT (High-res-timers):  http://sourceforge.net/projects/high-res-timers/

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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-15 22:35     ` George Anzinger
  2005-09-15 22:53       ` Thomas Gleixner
@ 2005-09-15 23:09       ` Daniel Walker
  2005-09-16  0:08         ` George Anzinger
  1 sibling, 1 reply; 46+ messages in thread
From: Daniel Walker @ 2005-09-15 23:09 UTC (permalink / raw)
  To: george
  Cc: tglx, john stultz, Nish Aravamudan, Ingo Molnar, linux-kernel,
	Steven Rostedt,
	'high-res-timers-discourse@lists.sourceforge.net'

On Thu, 2005-09-15 at 15:35 -0700, George Anzinger wrote:
> 
> In the early HRT patches the whole timer list was replaced with a hashed 
> list.  It was O(N/M) on insertion where we could easily choose M (for a 
> while it was even a config option).  Removal was just an unlink, same as 
> the cascade list.
> 
> To be clear on my take on this, as I understand it the rblist is 
> something like O(N*somelog 2).  What is left out here is the fixed 
> overhead of F which is there even if N = 1.  So we have something like 
> (F+O(f(N)) for a list.  For the most part we don't look at F, but as 
> list complexity grows, it gets larger thus pushing out the cross over 
> point to a higher "N" when comparing two lists.  I considered the rbtree 
> when doing the secondary list for HRT and concluded that "N" was small 
> enough that a simple O(N/2) list would do just fine as it would only 
> contain timers set to expire in the next jiffie.

The fact that we know in advance that a system is only going to a very
small number of these timers should be noted. You could just use a
regular list , and limit the total number of timers . I would hesitate
to stick a big data structure in when your only dealing with one or two
timers on average..

George, what's largest number of highres timers that someone might
need/want?

Daniel


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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-15 22:53       ` Thomas Gleixner
@ 2005-09-15 23:10         ` George Anzinger
  0 siblings, 0 replies; 46+ messages in thread
From: George Anzinger @ 2005-09-15 23:10 UTC (permalink / raw)
  To: tglx
  Cc: john stultz, Nish Aravamudan, Ingo Molnar, linux-kernel,
	Steven Rostedt, dwalker,
	'high-res-timers-discourse@lists.sourceforge.net'

Thomas Gleixner wrote:
~
>>>- The posix timer tests run all successful, except the broken 2timertest
>>>which fails on any other HRT kernel too and the sleep to long for real
>>>timers when the clock is set backwards, which is easily solvable
>>>(working on that).
>>
>>Your mileage seems to differ from mine.  Here is what I get from ./do_test:
>>The following tests failed:
>>clock_nanosleeptest
>>abs_timer_test
>>4-1
>>clock_settimetest
>>clock_gettimetest2
>>2timer_test 
> 
> 
> Hmm. Except for the 2timer_test, where my source seems to be broken it
> works here. 

The latest support source is in the CVS tree on the HRT site.  It is no 
longer a patch...
> 
> 
>>Then, on the second run, it crashed in an attempt to get the monotonic 
>>clock (a divide error).  System is a dual PIII, 800Mhz.  This from the 
>>rt11 patch.
> 
> 
> Hmm, divide error. I had one of those in the early phase due to some
> strange 64/32 truncation problem, which was caused by nested
> inline/macros. After unmingling the problem went away.

I suspect that the 64/32 div resulted in a >32 bit result which is a 
fault.  This was deep in monotonic_clock.  I would rather change to 
clock_monotonic (i.e. xtime+offset+walltomonotonic) and work that code 
patch.  monotonic_clock is just the wrong thing for this work.
> 
> tglx
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 

-- 
George Anzinger   george@mvista.com
HRT (High-res-timers):  http://sourceforge.net/projects/high-res-timers/

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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-15 23:04     ` George Anzinger
@ 2005-09-15 23:20       ` Thomas Gleixner
  0 siblings, 0 replies; 46+ messages in thread
From: Thomas Gleixner @ 2005-09-15 23:20 UTC (permalink / raw)
  To: george
  Cc: Ingo Molnar, linux-kernel, Steven Rostedt, dwalker,
	'high-res-timers-discourse@lists.sourceforge.net',
	john stultz

On Thu, 2005-09-15 at 16:04 -0700, George Anzinger wrote:

> Possibly your involvement was that short.  I rather doubt the code was 
> written that quickly...  I first found out about it on the 12th from the 
> rt5 patch you posted about 2pm.  Was there an earlier email?

The first sketch of ktimers was written in less than a day. Some
cleanups and the integration into -RT took not longer than 3-4 days.

tglx



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

* Re: 2.6.13-rt6, ktimer subsystem
  2005-09-15 23:09       ` Daniel Walker
@ 2005-09-16  0:08         ` George Anzinger
  0 siblings, 0 replies; 46+ messages in thread
From: George Anzinger @ 2005-09-16  0:08 UTC (permalink / raw)
  To: dwalker
  Cc: tglx, john stultz, Nish Aravamudan, Ingo Molnar, linux-kernel,
	Steven Rostedt,
	'high-res-timers-discourse@lists.sourceforge.net'

Daniel Walker wrote:
> On Thu, 2005-09-15 at 15:35 -0700, George Anzinger wrote:
> 
>>In the early HRT patches the whole timer list was replaced with a hashed 
>>list.  It was O(N/M) on insertion where we could easily choose M (for a 
>>while it was even a config option).  Removal was just an unlink, same as 
>>the cascade list.
>>
>>To be clear on my take on this, as I understand it the rblist is 
>>something like O(N*somelog 2).  What is left out here is the fixed 
>>overhead of F which is there even if N = 1.  So we have something like 
>>(F+O(f(N)) for a list.  For the most part we don't look at F, but as 
>>list complexity grows, it gets larger thus pushing out the cross over 
>>point to a higher "N" when comparing two lists.  I considered the rbtree 
>>when doing the secondary list for HRT and concluded that "N" was small 
>>enough that a simple O(N/2) list would do just fine as it would only 
>>contain timers set to expire in the next jiffie.
> 
> 
> The fact that we know in advance that a system is only going to a very
> small number of these timers should be noted. You could just use a
> regular list , and limit the total number of timers . I would hesitate
> to stick a big data structure in when your only dealing with one or two
> timers on average..
> 
> George, what's largest number of highres timers that someone might
> need/want?
> 
Well, the interesting thing is that, unless you change something, the 
system has a current limit of 1000 posix timers.  This can be changed, 
but, I suspect it is not changed very often.  And this handles all posix 
timers, low and high res.  Sleep is another thing, with a max of one 
sleep timer per task.  The ktimer list is also doing itimers, which are 
also limited to the number of tasks.

As for data structures, a hashed list requires a "list head" for each 
bucket while, I think the rblist only has one list head, but requires an 
additional list head (or is it two) in the entry data structure so this 
is a pay as you go list.

-- 
George Anzinger   george@mvista.com
HRT (High-res-timers):  http://sourceforge.net/projects/high-res-timers/

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

* 2.6.14-rc2-rt2
  2005-09-13 10:00 2.6.13-rt6, ktimer subsystem Ingo Molnar
                   ` (3 preceding siblings ...)
  2005-09-15  9:43 ` Roman Zippel
@ 2005-09-26  7:02 ` Ingo Molnar
  2005-09-27  6:13   ` 2.6.14-rc2-rt2 Eran Mann
                     ` (4 more replies)
  4 siblings, 5 replies; 46+ messages in thread
From: Ingo Molnar @ 2005-09-26  7:02 UTC (permalink / raw)
  To: linux-kernel; +Cc: Thomas Gleixner, Steven Rostedt, dwalker, emann, yang.yi


i have released the 2.6.14-rc2-rt2 tree, which can be downloaded from 
the usual place:

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

the biggest change is the merge to the 2.6.14 tree, but there are also 
updates all across the board: lots of ktimer updates and fixes from 
Thomas Gleixner, an important PI fix from Steven Rostedt, and lots of 
other details.

Changes since 2.6.13-rt6:

 - tons of ktimer updates: build fixes, SMP fixes and more (Thomas 
   Gleixner)

 - PI fix (Steven Rostedt)

 - ntfs fix for bit-spin-locks (Eran Mann)

 - updates/fixes in preparation of the ARM merge (Daniel Walker)

 - latency histogram cleanups (Yi Yang)

 - merge to 2.6.14-rc2

 - sysfs/scsi interaction workaround to get aic7xxx to boot

to build a 2.6.14-rc2-rt2 tree, the following patches should be applied:

   http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.tar.bz2
   http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.14-rc2.bz2
   http://redhat.com/~mingo/realtime-preempt/patch-2.6.14-rc2-rt2

	Ingo

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

* Re: 2.6.14-rc2-rt2
  2005-09-26  7:02 ` 2.6.14-rc2-rt2 Ingo Molnar
@ 2005-09-27  6:13   ` Eran Mann
  2005-09-27 10:33     ` 2.6.14-rc2-rt2 Ingo Molnar
  2005-09-27 16:59   ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
                     ` (3 subsequent siblings)
  4 siblings, 1 reply; 46+ messages in thread
From: Eran Mann @ 2005-09-27  6:13 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel

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

The attached 2 patches (against 2.6.14-rc2-rt3) seem to be required to 
compile dccp and nfnetlink (only compile-tested).

Ingo Molnar wrote:
> i have released the 2.6.14-rc2-rt2 tree, which can be downloaded from 
> the usual place:
> 
>    http://redhat.com/~mingo/realtime-preempt/
> 
...

[-- Attachment #2: rt-netfilter.patch --]
[-- Type: text/x-patch, Size: 895 bytes --]

--- linux-2.6.x/net/netfilter/nfnetlink_queue.c	2005-09-13 10:48:26.000000000 +0300
+++ linux-2.6.x-RT/net/netfilter/nfnetlink_queue.c	2005-09-27 08:20:10.000000000 +0300
@@ -149,7 +149,7 @@
 	atomic_set(&inst->id_sequence, 0);
 	/* needs to be two, since we _put() after creation */
 	atomic_set(&inst->use, 2);
-	inst->lock = SPIN_LOCK_UNLOCKED;
+	inst->lock = SPIN_LOCK_UNLOCKED(inst->lock);
 	INIT_LIST_HEAD(&inst->queue_list);
 
 	if (!try_module_get(THIS_MODULE))
--- linux-2.6.x/net/netfilter/nfnetlink_log.c	2005-09-13 10:48:25.000000000 +0300
+++ linux-2.6.x-RT/net/netfilter/nfnetlink_log.c	2005-09-27 08:50:58.000000000 +0300
@@ -152,7 +152,7 @@
 
 	memset(inst, 0, sizeof(*inst));
 	INIT_HLIST_NODE(&inst->hlist);
-	inst->lock = SPIN_LOCK_UNLOCKED;
+	inst->lock = SPIN_LOCK_UNLOCKED(inst->lock);
 	/* needs to be two, since we _put() after creation */
 	atomic_set(&inst->use, 2);
 

[-- Attachment #3: rt-dccp.patch --]
[-- Type: text/x-patch, Size: 1123 bytes --]

--- linux-2.6.x/net/dccp/ipv4.c	2005-09-25 15:49:57.000000000 +0300
+++ linux-2.6.x-RT/net/dccp/ipv4.c	2005-09-26 15:06:02.000000000 +0300
@@ -28,10 +28,10 @@
 #include "dccp.h"
 
 struct inet_hashinfo __cacheline_aligned dccp_hashinfo = {
-	.lhash_lock	= RW_LOCK_UNLOCKED,
+	.lhash_lock	= RW_LOCK_UNLOCKED(dccp_hashinfo.lhash_lock),
 	.lhash_users	= ATOMIC_INIT(0),
 	.lhash_wait = __WAIT_QUEUE_HEAD_INITIALIZER(dccp_hashinfo.lhash_wait),
-	.portalloc_lock	= SPIN_LOCK_UNLOCKED,
+	.portalloc_lock	= SPIN_LOCK_UNLOCKED(dccp_hashinfo.portalloc_lock),
 	.port_rover	= 1024 - 1,
 };
 
--- linux-2.6.x/net/dccp/minisocks.c	2005-09-25 15:49:57.000000000 +0300
+++ linux-2.6.x-RT/net/dccp/minisocks.c	2005-09-26 15:07:41.000000000 +0300
@@ -26,7 +26,7 @@
 struct inet_timewait_death_row dccp_death_row = {
 	.sysctl_max_tw_buckets = NR_FILE * 2,
 	.period		= DCCP_TIMEWAIT_LEN / INET_TWDR_TWKILL_SLOTS,
-	.death_lock	= SPIN_LOCK_UNLOCKED,
+	.death_lock	= SPIN_LOCK_UNLOCKED(dccp_death_row.death_lock),
 	.hashinfo	= &dccp_hashinfo,
 	.tw_timer	= TIMER_INITIALIZER(inet_twdr_hangman, 0,
 					    (unsigned long)&dccp_death_row),

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

* Re: 2.6.14-rc2-rt2
  2005-09-27  6:13   ` 2.6.14-rc2-rt2 Eran Mann
@ 2005-09-27 10:33     ` Ingo Molnar
  0 siblings, 0 replies; 46+ messages in thread
From: Ingo Molnar @ 2005-09-27 10:33 UTC (permalink / raw)
  To: Eran Mann; +Cc: linux-kernel


* Eran Mann <emann@mrv.com> wrote:

> The attached 2 patches (against 2.6.14-rc2-rt3) seem to be required to 
> compile dccp and nfnetlink (only compile-tested).

thanks, applied.

	Ingo

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

* Re: 2.6.14-rc2-rt2
  2005-09-26  7:02 ` 2.6.14-rc2-rt2 Ingo Molnar
  2005-09-27  6:13   ` 2.6.14-rc2-rt2 Eran Mann
@ 2005-09-27 16:59   ` Fernando Lopez-Lezcano
  2005-09-27 22:15     ` 2.6.14-rc2-rt2 Thomas Gleixner
  2005-09-27 23:10     ` 2.6.14-rc2-rt2 Daniel Walker
  2005-09-28  9:10   ` 2.6.14-rc2-rt2 Peter Zijlstra
                     ` (2 subsequent siblings)
  4 siblings, 2 replies; 46+ messages in thread
From: Fernando Lopez-Lezcano @ 2005-09-27 16:59 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker, emann, yang.yi

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

On Mon, 2005-09-26 at 09:02 +0200, Ingo Molnar wrote:
> i have released the 2.6.14-rc2-rt2 tree, which can be downloaded from 
> the usual place:
> 
>    http://redhat.com/~mingo/realtime-preempt/
> 
> the biggest change is the merge to the 2.6.14 tree, but there are also 
> updates all across the board: lots of ktimer updates and fixes from 
> Thomas Gleixner, an important PI fix from Steven Rostedt, and lots of 
> other details.

can't build 2.6.13-rc2-rt4 (also happened on rt1, I think):

  CHK     include/linux/version.h
  SYMLINK include/asm -> include/asm-i386
  SPLIT   include/linux/autoconf.h -> include/config/*
  CHK     usr/initramfs_list
  UPD     usr/initramfs_list
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
{standard input}: Assembler messages:
{standard input}:164: Error: can't resolve `.sched.text' {.sched.text
section} - `.Ltext0' {.text section}
{standard input}:165: Error: can't resolve `.sched.text' {.sched.text
section} - `.Ltext0' {.text section}
make[1]: *** [arch/i386/kernel/semaphore.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [arch/i386/kernel] Error 2
make: *** Waiting for unfinished jobs....

Failing .config attached. 
-- Fernando


[-- Attachment #2: kernel-2.6.13-i686.ccrma.config --]
[-- Type: text/plain, Size: 60451 bytes --]

# i386
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.14-rc2-rt1
# Sun Sep 25 19:46:04 2005
#
CONFIG_X86=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_GENERICTOD=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32

#
# General setup
#
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SIG_FORCE 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=y
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# 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_MGEODEGX1 is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
CONFIG_X86_GENERIC=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_PPRO_FENCE=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=y
CONFIG_HPET_EMULATE_RTC=y
# CONFIG_HIGH_RES_TIMERS is not set
# CONFIG_SMP is not set
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT_DESKTOP=y
# CONFIG_PREEMPT_RT is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_SOFTIRQS=y
CONFIG_PREEMPT_HARDIRQS=y
# CONFIG_SPINLOCK_BKL is not set
CONFIG_PREEMPT_BKL=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_ASM_SEMAPHORES=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
# CONFIG_X86_IOAPIC_FAST is not set
CONFIG_X86_TSC=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCE_NONFATAL is not set
# CONFIG_X86_MCE_P4THERMAL is not set
CONFIG_TOSHIBA=m
CONFIG_I8K=m
CONFIG_X86_REBOOTFIXUPS=y
CONFIG_MICROCODE=m
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m

#
# Firmware Drivers
#
CONFIG_EDD=m
CONFIG_DELL_RBU=m
CONFIG_DCDBAS=m
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_HIGHPTE=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_REGPARM=y
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_PHYSICAL_START=0x100000
# CONFIG_KEXEC is not set

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

#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_SLEEP_PROC_FS=y
CONFIG_ACPI_SLEEP_PROC_SLEEP=y
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_HOTKEY=m
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_ASUS=m
CONFIG_ACPI_IBM=m
CONFIG_ACPI_TOSHIBA=m
CONFIG_ACPI_BLACKLIST_YEAR=2001
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=m

#
# APM (Advanced Power Management) BIOS Support
#
CONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
CONFIG_APM_CPU_IDLE=y
# CONFIG_APM_DISPLAY_BLANK is not set
CONFIG_APM_RTC_IS_GMT=y
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=m
CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m

#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_POWERNOW_K6=m
CONFIG_X86_POWERNOW_K7=y
CONFIG_X86_POWERNOW_K7_ACPI=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_POWERNOW_K8_ACPI=y
# CONFIG_X86_GX_SUSPMOD is not set
CONFIG_X86_SPEEDSTEP_CENTRINO=y
CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
# CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE is not set
CONFIG_X86_SPEEDSTEP_ICH=y
CONFIG_X86_SPEEDSTEP_SMI=m
CONFIG_X86_P4_CLOCKMOD=m
CONFIG_X86_CPUFREQ_NFORCE2=m
CONFIG_X86_LONGRUN=y
CONFIG_X86_LONGHAUL=y

#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
CONFIG_X86_SPEEDSTEP_LIB=y
# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK 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_PCI_MMCONFIG=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=m
# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY_PROC=y
# CONFIG_PCI_DEBUG is not set
CONFIG_ISA_DMA_API=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=m
# CONFIG_PCMCIA_DEBUG is not set
CONFIG_PCMCIA=m
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_PCMCIA_IOCTL=y
CONFIG_CARDBUS=y

#
# PC-card bridges
#
CONFIG_YENTA=m
CONFIG_PD6729=m
CONFIG_I82092=m
CONFIG_I82365=m
CONFIG_TCIC=m
CONFIG_PCMCIA_PROBE=y
CONFIG_PCCARD_NONSTATIC=m

#
# PCI Hotplug Support
#
CONFIG_HOTPLUG_PCI=y
# CONFIG_HOTPLUG_PCI_FAKE is not set
CONFIG_HOTPLUG_PCI_COMPAQ=m
# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
# CONFIG_HOTPLUG_PCI_IBM is not set
# CONFIG_HOTPLUG_PCI_ACPI is not set
# CONFIG_HOTPLUG_PCI_CPCI is not set
CONFIG_HOTPLUG_PCI_SHPC=m
CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE=y

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

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=y
CONFIG_NET_KEY=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_FWMARK=y
CONFIG_IP_ROUTE_MULTIPATH=y
# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
CONFIG_TCP_CONG_ADVANCED=y

#
# TCP congestion control
#
CONFIG_TCP_CONG_BIC=m
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_SCALABLE=m

#
# IP: Virtual Server Configuration
#
CONFIG_IP_VS=m
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12

#
# IPVS transport protocol load balancing support
#
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y

#
# IPVS scheduler
#
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m

#
# IPVS application helper
#
CONFIG_IP_VS_FTP=m
CONFIG_IPV6=m
CONFIG_IPV6_PRIVACY=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_INET6_TUNNEL=m
CONFIG_IPV6_TUNNEL=m
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_BRIDGE_NETFILTER=y
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m

#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=m
CONFIG_IP_NF_CT_ACCT=y
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
CONFIG_IP_NF_CONNTRACK_NETLINK=m
CONFIG_IP_NF_CT_PROTO_SCTP=m
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
CONFIG_IP_NF_NETBIOS_NS=m
CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
CONFIG_IP_NF_PPTP=m
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_LIMIT=m
CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_MAC=m
CONFIG_IP_NF_MATCH_PKTTYPE=m
CONFIG_IP_NF_MATCH_MARK=m
CONFIG_IP_NF_MATCH_MULTIPORT=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_DSCP=m
CONFIG_IP_NF_MATCH_AH_ESP=m
CONFIG_IP_NF_MATCH_LENGTH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_TCPMSS=m
CONFIG_IP_NF_MATCH_HELPER=m
CONFIG_IP_NF_MATCH_STATE=m
CONFIG_IP_NF_MATCH_CONNTRACK=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_PHYSDEV=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
CONFIG_IP_NF_MATCH_SCTP=m
CONFIG_IP_NF_MATCH_DCCP=m
CONFIG_IP_NF_MATCH_COMMENT=m
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_CONNBYTES=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_MATCH_STRING=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_IP_NF_TARGET_TCPMSS=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_SAME=m
CONFIG_IP_NF_NAT_SNMP_BASIC=m
CONFIG_IP_NF_NAT_IRC=m
CONFIG_IP_NF_NAT_FTP=m
CONFIG_IP_NF_NAT_TFTP=m
CONFIG_IP_NF_NAT_AMANDA=m
CONFIG_IP_NF_NAT_PPTP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m

#
# IPv6: Netfilter Configuration (EXPERIMENTAL)
#
# CONFIG_IP6_NF_QUEUE is not set
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_LIMIT=m
CONFIG_IP6_NF_MATCH_MAC=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_MULTIPORT=m
CONFIG_IP6_NF_MATCH_OWNER=m
CONFIG_IP6_NF_MATCH_MARK=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_AHESP=m
CONFIG_IP6_NF_MATCH_LENGTH=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_MATCH_PHYSDEV=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_TARGET_MARK=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_RAW=m

#
# Bridge: Netfilter Configuration
#
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
CONFIG_BRIDGE_EBT_IP=m
CONFIG_BRIDGE_EBT_LIMIT=m
CONFIG_BRIDGE_EBT_MARK=m
CONFIG_BRIDGE_EBT_PKTTYPE=m
CONFIG_BRIDGE_EBT_STP=m
CONFIG_BRIDGE_EBT_VLAN=m
CONFIG_BRIDGE_EBT_ARPREPLY=m
CONFIG_BRIDGE_EBT_DNAT=m
CONFIG_BRIDGE_EBT_MARK_T=m
CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE_EBT_ULOG=m

#
# DCCP Configuration (EXPERIMENTAL)
#
CONFIG_IP_DCCP=m
CONFIG_INET_DCCP_DIAG=m

#
# DCCP CCIDs Configuration (EXPERIMENTAL)
#
CONFIG_IP_DCCP_CCID3=m
CONFIG_IP_DCCP_TFRC_LIB=m

#
# DCCP Kernel Hacking
#
# CONFIG_IP_DCCP_DEBUG is not set
# CONFIG_IP_DCCP_UNLOAD_HACK is not set

#
# SCTP Configuration (EXPERIMENTAL)
#
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
CONFIG_ATM=m
CONFIG_ATM_CLIP=m
# CONFIG_ATM_CLIP_NO_ICMP is not set
CONFIG_ATM_LANE=m
# CONFIG_ATM_MPOA is not set
CONFIG_ATM_BR2684=m
# CONFIG_ATM_BR2684_IPFILTER is not set
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
# CONFIG_DECNET is not set
CONFIG_LLC=y
# CONFIG_LLC2 is not set
CONFIG_IPX=m
# CONFIG_IPX_INTERN is not set
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=y
CONFIG_LTPC=m
CONFIG_COPS=m
CONFIG_COPS_DAYNA=y
CONFIG_COPS_TANGENT=y
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
CONFIG_IPDDP_DECAP=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
CONFIG_NET_DIVERT=y
# CONFIG_ECONET is not set
CONFIG_WAN_ROUTER=m
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CLK_JIFFIES=y
# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
# CONFIG_NET_SCH_CLK_CPU is not set
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_NET_CLS_IND=y
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_NBYTE=m
CONFIG_NET_EMATCH_U32=m
CONFIG_NET_EMATCH_META=m
CONFIG_NET_EMATCH_TEXT=m
CONFIG_NET_CLS_ACT=y
# CONFIG_NET_ACT_POLICE is not set
CONFIG_NET_ACT_GACT=m
# CONFIG_GACT_PROB is not set
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_IPT=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_SIMP=m

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
CONFIG_IRDA=m

#
# IrDA protocols
#
CONFIG_IRLAN=m
CONFIG_IRNET=m
CONFIG_IRCOMM=m
# CONFIG_IRDA_ULTRA is not set

#
# IrDA options
#
CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y
# CONFIG_IRDA_DEBUG is not set

#
# Infrared-port device drivers
#

#
# SIR device drivers
#
CONFIG_IRTTY_SIR=m

#
# Dongle support
#
CONFIG_DONGLE=y
CONFIG_ESI_DONGLE=m
CONFIG_ACTISYS_DONGLE=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_LITELINK_DONGLE=m
CONFIG_MA600_DONGLE=m
CONFIG_GIRBIL_DONGLE=m
CONFIG_MCP2120_DONGLE=m
CONFIG_OLD_BELKIN_DONGLE=m
CONFIG_ACT200L_DONGLE=m

#
# Old SIR device drivers
#
CONFIG_IRPORT_SIR=m

#
# Old Serial dongle support
#
# CONFIG_DONGLE_OLD is not set

#
# FIR device drivers
#
CONFIG_USB_IRDA=m
CONFIG_SIGMATEL_FIR=m
CONFIG_NSC_FIR=m
# CONFIG_WINBOND_FIR is not set
# CONFIG_TOSHIBA_FIR is not set
# CONFIG_SMC_IRCC_FIR is not set
# CONFIG_ALI_FIR is not set
# CONFIG_VLSI_FIR is not set
# CONFIG_VIA_FIR is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_CMTP=m
CONFIG_BT_HIDP=m

#
# Bluetooth device drivers
#
CONFIG_BT_HCIUSB=m
CONFIG_BT_HCIUSB_SCO=y
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_BCSP_TXCRC=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIDTL1=m
CONFIG_BT_HCIBT3C=m
CONFIG_BT_HCIBLUECARD=m
CONFIG_BT_HCIBTUART=m
CONFIG_BT_HCIVHCI=m
CONFIG_IEEE80211=m
# CONFIG_IEEE80211_DEBUG is not set
CONFIG_IEEE80211_CRYPT_WEP=m
CONFIG_IEEE80211_CRYPT_CCMP=m
CONFIG_IEEE80211_CRYPT_TKIP=m

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set

#
# Connector - unified userspace <-> kernelspace linker
#
CONFIG_CONNECTOR=m

#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=m
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_CONCAT=m
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_REDBOOT_PARTS=m
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
CONFIG_MTD_CMDLINE_PARTS=y

#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_BLOCK_RO=m
CONFIG_FTL=m
CONFIG_NFTL=m
CONFIG_NFTL_RW=y
CONFIG_INFTL=m

#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=m
CONFIG_MTD_JEDECPROBE=m
CONFIG_MTD_GEN_PROBE=m
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
CONFIG_MTD_CFI_INTELEXT=m
CONFIG_MTD_CFI_AMDSTD=m
CONFIG_MTD_CFI_AMDSTD_RETRY=3
CONFIG_MTD_CFI_STAA=m
CONFIG_MTD_CFI_UTIL=m
CONFIG_MTD_RAM=m
CONFIG_MTD_ROM=m
CONFIG_MTD_ABSENT=m

#
# Mapping drivers for chip access
#
CONFIG_MTD_COMPLEX_MAPPINGS=y
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_PNC2000 is not set
CONFIG_MTD_SC520CDP=m
CONFIG_MTD_NETSC520=m
CONFIG_MTD_TS5500=m
CONFIG_MTD_SBC_GXX=m
CONFIG_MTD_AMD76XROM=m
# CONFIG_MTD_ICHXROM is not set
CONFIG_MTD_SCB2_FLASH=m
# CONFIG_MTD_NETtel is not set
# CONFIG_MTD_DILNETPC is not set
CONFIG_MTD_L440GX=m
CONFIG_MTD_PCI=m
CONFIG_MTD_PLATRAM=m

#
# Self-contained MTD device drivers
#
CONFIG_MTD_PMC551=m
# CONFIG_MTD_PMC551_BUGFIX is not set
# CONFIG_MTD_PMC551_DEBUG is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
CONFIG_MTD_MTDRAM=m
CONFIG_MTDRAM_TOTAL_SIZE=4096
CONFIG_MTDRAM_ERASE_SIZE=128
# CONFIG_MTD_BLKMTD is not set
CONFIG_MTD_BLOCK2MTD=m

#
# Disk-On-Chip Device Drivers
#
CONFIG_MTD_DOC2000=m
# CONFIG_MTD_DOC2001 is not set
CONFIG_MTD_DOC2001PLUS=m
CONFIG_MTD_DOCPROBE=m
CONFIG_MTD_DOCECC=m
# CONFIG_MTD_DOCPROBE_ADVANCED is not set
CONFIG_MTD_DOCPROBE_ADDRESS=0

#
# NAND Flash Device Drivers
#
CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
CONFIG_MTD_NAND_IDS=m
# CONFIG_MTD_NAND_DISKONCHIP is not set
CONFIG_MTD_NAND_NANDSIM=y

#
# Parallel port support
#
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
CONFIG_PARPORT_PC_PCMCIA=m
CONFIG_PARPORT_NOT_PC=y
# CONFIG_PARPORT_GSC is not set
CONFIG_PARPORT_1284=y

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

#
# Protocols
#
CONFIG_ISAPNP=y
# CONFIG_PNPBIOS is not set
CONFIG_PNPACPI=y

#
# Block devices
#
CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
CONFIG_BLK_CPQ_DA=m
CONFIG_BLK_CPQ_CISS_DA=m
CONFIG_CISS_SCSI_TAPE=y
CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_UMEM=m
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=16384
CONFIG_BLK_DEV_INITRD=y
CONFIG_LBD=y
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE 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=m

#
# 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_IDECS=m
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_IDE_TASK_IOCTL is not set

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_BLK_DEV_CMD640 is not set
CONFIG_BLK_DEV_IDEPNP=y
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=y
CONFIG_BLK_DEV_ALI15X3=y
# CONFIG_WDC_ALI15X3 is not set
CONFIG_BLK_DEV_AMD74XX=y
CONFIG_BLK_DEV_ATIIXP=y
CONFIG_BLK_DEV_CMD64X=y
CONFIG_BLK_DEV_TRIFLEX=y
CONFIG_BLK_DEV_CY82C693=y
CONFIG_BLK_DEV_CS5520=y
CONFIG_BLK_DEV_CS5530=y
CONFIG_BLK_DEV_HPT34X=y
# CONFIG_HPT34X_AUTODMA is not set
CONFIG_BLK_DEV_HPT366=y
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
CONFIG_BLK_DEV_IT821X=m
# CONFIG_BLK_DEV_NS87415 is not set
CONFIG_BLK_DEV_PDC202XX_OLD=y
# CONFIG_PDC202XX_BURST is not set
CONFIG_BLK_DEV_PDC202XX_NEW=y
CONFIG_PDC202XX_FORCE=y
CONFIG_BLK_DEV_SVWKS=y
CONFIG_BLK_DEV_SIIMAGE=y
CONFIG_BLK_DEV_SIS5513=y
CONFIG_BLK_DEV_SLC90E66=y
# CONFIG_BLK_DEV_TRM290 is not set
CONFIG_BLK_DEV_VIA82CXXX=y
# 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_RAID_ATTRS=m
CONFIG_SCSI=m
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=m
CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_OSST=m
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
CONFIG_CHR_DEV_SCH=m

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

#
# SCSI Transport Attributes
#
CONFIG_SCSI_SPI_ATTRS=m
CONFIG_SCSI_FC_ATTRS=m
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_SAS_ATTRS=m

#
# SCSI low-level drivers
#
CONFIG_BLK_DEV_3W_XXXX_RAID=m
CONFIG_SCSI_3W_9XXX=m
# CONFIG_SCSI_7000FASST is not set
CONFIG_SCSI_ACARD=m
CONFIG_SCSI_AHA152X=m
CONFIG_SCSI_AHA1542=m
CONFIG_SCSI_AACRAID=m
CONFIG_SCSI_AIC7XXX=m
CONFIG_AIC7XXX_CMDS_PER_DEVICE=4
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
CONFIG_SCSI_AIC7XXX_OLD=m
CONFIG_SCSI_AIC79XX=m
CONFIG_AIC79XX_CMDS_PER_DEVICE=4
CONFIG_AIC79XX_RESET_DELAY_MS=15000
# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
# CONFIG_SCSI_DPT_I2O is not set
CONFIG_SCSI_IN2000=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
CONFIG_SCSI_SATA=m
CONFIG_SCSI_SATA_AHCI=m
CONFIG_SCSI_SATA_SVW=m
CONFIG_SCSI_ATA_PIIX=m
CONFIG_SCSI_SATA_MV=m
CONFIG_SCSI_SATA_NV=m
CONFIG_SCSI_SATA_PROMISE=m
CONFIG_SCSI_SATA_QSTOR=m
CONFIG_SCSI_SATA_SX4=m
CONFIG_SCSI_SATA_SIL=m
CONFIG_SCSI_SATA_SIS=m
CONFIG_SCSI_SATA_ULI=m
CONFIG_SCSI_SATA_VIA=m
CONFIG_SCSI_SATA_VITESSE=m
CONFIG_SCSI_BUSLOGIC=m
# CONFIG_SCSI_OMIT_FLASHPOINT is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
CONFIG_SCSI_FUTURE_DOMAIN=m
CONFIG_SCSI_GDTH=m
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INITIO=m
CONFIG_SCSI_INIA100=m
CONFIG_SCSI_PPA=m
CONFIG_SCSI_IMM=m
# CONFIG_SCSI_IZIP_EPP16 is not set
# CONFIG_SCSI_IZIP_SLOW_CTR is not set
# CONFIG_SCSI_NCR53C406A is not set
CONFIG_SCSI_SYM53C8XX_2=m
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
# CONFIG_SCSI_SYM53C8XX_IOMAPPED 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=m
# CONFIG_SCSI_QLOGIC_FC is not set
CONFIG_SCSI_QLOGIC_1280=m
CONFIG_SCSI_QLOGIC_1280_1040=y
CONFIG_SCSI_QLA2XXX=m
CONFIG_SCSI_QLA21XX=m
CONFIG_SCSI_QLA22XX=m
CONFIG_SCSI_QLA2300=m
CONFIG_SCSI_QLA2322=m
CONFIG_SCSI_QLA6312=m
CONFIG_SCSI_QLA24XX=m
CONFIG_SCSI_LPFC=m
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
CONFIG_SCSI_DC390T=m
# 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

#
# PCMCIA SCSI adapter support
#
CONFIG_PCMCIA_AHA152X=m
CONFIG_PCMCIA_FDOMAIN=m
CONFIG_PCMCIA_NINJA_SCSI=m
CONFIG_PCMCIA_QLOGIC=m
CONFIG_PCMCIA_SYM53C500=m

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

#
# Multi-device support (RAID and LVM)
#
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID10=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_MIRROR=m
CONFIG_DM_ZERO=m
CONFIG_DM_MULTIPATH=m
CONFIG_DM_MULTIPATH_EMC=m

#
# Fusion MPT device support
#
CONFIG_FUSION=y
CONFIG_FUSION_SPI=m
CONFIG_FUSION_FC=m
CONFIG_FUSION_MAX_SGE=128
CONFIG_FUSION_CTL=m
CONFIG_FUSION_LAN=m

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

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

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

#
# Protocol Drivers
#
CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_SBP2=m
# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
# CONFIG_IEEE1394_ETH1394 is not set
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m
CONFIG_IEEE1394_CMP=m
CONFIG_IEEE1394_AMDTP=m

#
# I2O device support
#
CONFIG_I2O=m
CONFIG_I2O_EXT_ADAPTEC=y
CONFIG_I2O_CONFIG=m
CONFIG_I2O_CONFIG_OLD_IOCTL=y
CONFIG_I2O_BUS=m
CONFIG_I2O_BLOCK=m
CONFIG_I2O_SCSI=m
CONFIG_I2O_PROC=m

#
# Network device support
#
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_BONDING=m
CONFIG_EQUALIZER=m
CONFIG_TUN=m
CONFIG_NET_SB1000=m

#
# ARCnet devices
#
# CONFIG_ARCNET is not set

#
# PHY device support
#
CONFIG_PHYLIB=m
CONFIG_PHYCONTROL=y

#
# MII PHY device drivers
#
CONFIG_MARVELL_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_LXT_PHY=m
CONFIG_CICADA_PHY=m

#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=m
CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_NET_VENDOR_3COM=y
CONFIG_EL1=m
CONFIG_EL2=m
CONFIG_ELPLUS=m
CONFIG_EL16=m
CONFIG_EL3=m
CONFIG_3C515=m
CONFIG_VORTEX=m
CONFIG_TYPHOON=m
CONFIG_LANCE=m
CONFIG_NET_VENDOR_SMC=y
CONFIG_WD80x3=m
CONFIG_ULTRA=m
CONFIG_SMC9194=m
CONFIG_NET_VENDOR_RACAL=y
# CONFIG_NI5010 is not set
CONFIG_NI52=m
CONFIG_NI65=m

#
# Tulip family network device support
#
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_TULIP=m
# CONFIG_TULIP_MWI is not set
CONFIG_TULIP_MMIO=y
# CONFIG_TULIP_NAPI is not set
CONFIG_DE4X5=m
CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCMCIA_XIRTULIP=m
# CONFIG_AT1700 is not set
CONFIG_DEPCA=m
CONFIG_HP100=m
CONFIG_NET_ISA=y
CONFIG_E2100=m
CONFIG_EWRK3=m
CONFIG_EEXPRESS=m
CONFIG_EEXPRESS_PRO=m
CONFIG_HPLAN_PLUS=m
CONFIG_HPLAN=m
CONFIG_LP486E=m
CONFIG_ETH16I=m
CONFIG_NE2000=m
CONFIG_ZNET=m
CONFIG_SEEQ8005=m
CONFIG_NET_PCI=y
CONFIG_PCNET32=m
CONFIG_AMD8111_ETH=m
CONFIG_AMD8111E_NAPI=y
CONFIG_ADAPTEC_STARFIRE=m
CONFIG_ADAPTEC_STARFIRE_NAPI=y
CONFIG_AC3200=m
CONFIG_APRICOT=m
CONFIG_B44=m
CONFIG_FORCEDETH=m
CONFIG_CS89x0=m
CONFIG_DGRS=m
CONFIG_EEPRO100=m
CONFIG_E100=m
CONFIG_FEALNX=m
CONFIG_NATSEMI=m
CONFIG_NE2K_PCI=m
CONFIG_8139CP=m
CONFIG_8139TOO=m
CONFIG_8139TOO_PIO=y
# CONFIG_8139TOO_TUNE_TWISTER is not set
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_SIS900=m
CONFIG_EPIC100=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_TLAN=m
CONFIG_VIA_RHINE=m
CONFIG_VIA_RHINE_MMIO=y
CONFIG_NET_POCKET=y
CONFIG_ATP=m
CONFIG_DE600=m
CONFIG_DE620=m

#
# Ethernet (1000 Mbit)
#
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_DL2K=m
CONFIG_E1000=m
CONFIG_E1000_NAPI=y
CONFIG_NS83820=m
CONFIG_HAMACHI=m
CONFIG_YELLOWFIN=m
CONFIG_R8169=m
CONFIG_R8169_NAPI=y
CONFIG_R8169_VLAN=y
CONFIG_SIS190=m
CONFIG_SKGE=m
CONFIG_SK98LIN=m
CONFIG_VIA_VELOCITY=m
CONFIG_TIGON3=m
CONFIG_BNX2=m

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

#
# Token Ring devices
#
CONFIG_TR=y
CONFIG_IBMTR=m
CONFIG_IBMOL=m
CONFIG_IBMLS=m
CONFIG_3C359=m
CONFIG_TMS380TR=m
CONFIG_TMSPCI=m
CONFIG_SKISA=m
CONFIG_PROTEON=m
CONFIG_ABYSS=m
CONFIG_SMCTR=m

#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y

#
# Obsolete Wireless cards support (pre-802.11)
#
# CONFIG_STRIP is not set
# CONFIG_ARLAN is not set
CONFIG_WAVELAN=m
CONFIG_PCMCIA_WAVELAN=m
CONFIG_PCMCIA_NETWAVE=m

#
# Wireless 802.11 Frequency Hopping cards support
#
CONFIG_PCMCIA_RAYCS=m

#
# Wireless 802.11b ISA/PCI cards support
#
CONFIG_IPW2100=m
CONFIG_IPW2100_MONITOR=y
# CONFIG_IPW_DEBUG is not set
CONFIG_IPW2200=m
CONFIG_AIRO=m
CONFIG_HERMES=m
CONFIG_PLX_HERMES=m
CONFIG_TMD_HERMES=m
CONFIG_NORTEL_HERMES=m
CONFIG_PCI_HERMES=m
CONFIG_ATMEL=m
CONFIG_PCI_ATMEL=m

#
# Wireless 802.11b Pcmcia/Cardbus cards support
#
CONFIG_PCMCIA_HERMES=m
CONFIG_PCMCIA_SPECTRUM=m
CONFIG_AIRO_CS=m
CONFIG_PCMCIA_ATMEL=m
CONFIG_PCMCIA_WL3501=m

#
# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
#
CONFIG_PRISM54=m
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
CONFIG_HOSTAP_PLX=m
CONFIG_HOSTAP_PCI=m
CONFIG_HOSTAP_CS=m
CONFIG_NET_WIRELESS=y

#
# PCMCIA network device support
#
CONFIG_NET_PCMCIA=y
CONFIG_PCMCIA_3C589=m
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_FMVJ18X=m
CONFIG_PCMCIA_PCNET=m
CONFIG_PCMCIA_NMCLAN=m
CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_AXNET=m
CONFIG_PCMCIA_IBMTR=m

#
# Wan interfaces
#
# CONFIG_WAN is not set

#
# ATM drivers
#
CONFIG_ATM_TCP=m
CONFIG_ATM_LANAI=m
CONFIG_ATM_ENI=m
# CONFIG_ATM_ENI_DEBUG is not set
# CONFIG_ATM_ENI_TUNE_BURST is not set
CONFIG_ATM_FIRESTREAM=m
# CONFIG_ATM_ZATM is not set
CONFIG_ATM_NICSTAR=m
# CONFIG_ATM_NICSTAR_USE_SUNI is not set
# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
CONFIG_ATM_IDT77252=m
# CONFIG_ATM_IDT77252_DEBUG is not set
# CONFIG_ATM_IDT77252_RCV_ALL is not set
CONFIG_ATM_IDT77252_USE_SUNI=y
CONFIG_ATM_AMBASSADOR=m
# CONFIG_ATM_AMBASSADOR_DEBUG is not set
CONFIG_ATM_HORIZON=m
# CONFIG_ATM_HORIZON_DEBUG is not set
# CONFIG_ATM_IA is not set
CONFIG_ATM_FORE200E_MAYBE=m
# CONFIG_ATM_FORE200E_PCA is not set
CONFIG_ATM_HE=m
# CONFIG_ATM_HE_USE_SUNI is not set
CONFIG_FDDI=y
# CONFIG_DEFXX is not set
CONFIG_SKFP=m
# CONFIG_HIPPI is not set
CONFIG_PLIP=m
CONFIG_PPP=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
# CONFIG_PPP_BSDCOMP is not set
CONFIG_PPPOE=m
CONFIG_PPPOATM=m
CONFIG_SLIP=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP_SMART=y
# CONFIG_SLIP_MODE_SLIP6 is not set
CONFIG_NET_FC=y
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=m
CONFIG_NETPOLL=y
CONFIG_NETPOLL_RX=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y

#
# ISDN subsystem
#
CONFIG_ISDN=m

#
# Old ISDN4Linux
#
CONFIG_ISDN_I4L=m
CONFIG_ISDN_PPP=y
CONFIG_ISDN_PPP_VJ=y
CONFIG_ISDN_MPP=y
CONFIG_IPPP_FILTER=y
# CONFIG_ISDN_PPP_BSDCOMP is not set
CONFIG_ISDN_AUDIO=y
CONFIG_ISDN_TTY_FAX=y

#
# ISDN feature submodules
#
CONFIG_ISDN_DRV_LOOP=m
CONFIG_ISDN_DIVERSION=m

#
# ISDN4Linux hardware drivers
#

#
# Passive cards
#
CONFIG_ISDN_DRV_HISAX=m

#
# D-channel protocol features
#
CONFIG_HISAX_EURO=y
CONFIG_DE_AOC=y
CONFIG_HISAX_NO_SENDCOMPLETE=y
CONFIG_HISAX_NO_LLC=y
CONFIG_HISAX_NO_KEYPAD=y
CONFIG_HISAX_1TR6=y
CONFIG_HISAX_NI1=y
CONFIG_HISAX_MAX_CARDS=8

#
# HiSax supported cards
#
CONFIG_HISAX_16_0=y
CONFIG_HISAX_16_3=y
CONFIG_HISAX_TELESPCI=y
CONFIG_HISAX_S0BOX=y
CONFIG_HISAX_AVM_A1=y
CONFIG_HISAX_FRITZPCI=y
CONFIG_HISAX_AVM_A1_PCMCIA=y
CONFIG_HISAX_ELSA=y
CONFIG_HISAX_IX1MICROR2=y
CONFIG_HISAX_DIEHLDIVA=y
CONFIG_HISAX_ASUSCOM=y
CONFIG_HISAX_TELEINT=y
CONFIG_HISAX_HFCS=y
CONFIG_HISAX_SEDLBAUER=y
CONFIG_HISAX_SPORTSTER=y
CONFIG_HISAX_MIC=y
CONFIG_HISAX_NETJET=y
CONFIG_HISAX_NETJET_U=y
CONFIG_HISAX_NICCY=y
CONFIG_HISAX_ISURF=y
CONFIG_HISAX_HSTSAPHIR=y
CONFIG_HISAX_BKM_A4T=y
CONFIG_HISAX_SCT_QUADRO=y
CONFIG_HISAX_GAZEL=y
CONFIG_HISAX_HFC_PCI=y
CONFIG_HISAX_W6692=y
CONFIG_HISAX_HFC_SX=y
CONFIG_HISAX_ENTERNOW_PCI=y
# CONFIG_HISAX_DEBUG is not set

#
# HiSax PCMCIA card service modules
#
CONFIG_HISAX_SEDLBAUER_CS=m
CONFIG_HISAX_ELSA_CS=m
CONFIG_HISAX_AVM_A1_CS=m
CONFIG_HISAX_TELES_CS=m

#
# HiSax sub driver modules
#
CONFIG_HISAX_ST5481=m
CONFIG_HISAX_HFCUSB=m
CONFIG_HISAX_HFC4S8S=m
CONFIG_HISAX_FRITZ_PCIPNP=m
CONFIG_HISAX_HDLC=y

#
# Active cards
#
CONFIG_ISDN_DRV_ICN=m
CONFIG_ISDN_DRV_PCBIT=m
CONFIG_ISDN_DRV_SC=m
CONFIG_ISDN_DRV_ACT2000=m
CONFIG_HYSDN=m
CONFIG_HYSDN_CAPI=y

#
# CAPI subsystem
#
CONFIG_ISDN_CAPI=m
CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPI20=m
CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
CONFIG_ISDN_CAPI_CAPIFS=m
CONFIG_ISDN_CAPI_CAPIDRV=m

#
# CAPI hardware drivers
#

#
# Active AVM cards
#
CONFIG_CAPI_AVM=y
CONFIG_ISDN_DRV_AVMB1_B1ISA=m
CONFIG_ISDN_DRV_AVMB1_B1PCI=m
CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
CONFIG_ISDN_DRV_AVMB1_T1ISA=m
CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
CONFIG_ISDN_DRV_AVMB1_T1PCI=m
CONFIG_ISDN_DRV_AVMB1_C4=m

#
# Active Eicon DIVA Server cards
#
CONFIG_CAPI_EICON=y
CONFIG_ISDN_DIVAS=m
CONFIG_ISDN_DIVAS_BRIPCI=y
CONFIG_ISDN_DIVAS_PRIPCI=y
CONFIG_ISDN_DIVAS_DIVACAPI=m
CONFIG_ISDN_DIVAS_USERIDI=m
CONFIG_ISDN_DIVAS_MAINT=m

#
# Telephony Support
#
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=m
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG 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=m
CONFIG_MOUSE_INPORT=m
CONFIG_MOUSE_ATIXL=y
CONFIG_MOUSE_LOGIBM=m
CONFIG_MOUSE_PC110PAD=m
CONFIG_MOUSE_VSXXXAA=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_A3D=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
CONFIG_JOYSTICK_GRIP_MP=m
CONFIG_JOYSTICK_GUILLEMOT=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_IFORCE_232=y
CONFIG_JOYSTICK_WARRIOR=m
CONFIG_JOYSTICK_MAGELLAN=m
CONFIG_JOYSTICK_SPACEORB=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_STINGER=m
CONFIG_JOYSTICK_TWIDJOY=m
CONFIG_JOYSTICK_DB9=m
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_TURBOGRAFX=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_GUNZE=m
CONFIG_TOUCHSCREEN_ELO=m
CONFIG_TOUCHSCREEN_MTOUCH=m
CONFIG_TOUCHSCREEN_MK712=m
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
CONFIG_INPUT_UINPUT=m

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
# 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=m
CONFIG_GAMEPORT=m
CONFIG_GAMEPORT_NS558=m
CONFIG_GAMEPORT_L4=m
CONFIG_GAMEPORT_EMU10K1=m
CONFIG_GAMEPORT_FM801=m

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_COMPUTONE is not set
CONFIG_ROCKETPORT=m
# CONFIG_CYCLADES is not set
# CONFIG_DIGIEPCA is not set
# CONFIG_ESPSERIAL is not set
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
# CONFIG_ISI is not set
CONFIG_SYNCLINK=m
CONFIG_SYNCLINKMP=m
CONFIG_N_HDLC=m
# CONFIG_RISCOM8 is not set
# CONFIG_SPECIALIX is not set
# CONFIG_SX is not set
# CONFIG_RIO is not set
CONFIG_STALDRV=y
# CONFIG_STALLION is not set
# CONFIG_ISTALLION is not set

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_CS=m
# CONFIG_SERIAL_8250_ACPI is not set
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_MANY_PORTS is not set
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_DETECT_IRQ=y
CONFIG_SERIAL_8250_RSA=y

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_JSM=m
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_PRINTER=m
CONFIG_LP_CONSOLE=y
CONFIG_PPDEV=m
CONFIG_TIPAR=m

#
# IPMI
#
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m

#
# Watchdog Cards
#
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set

#
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
CONFIG_ADVANTECH_WDT=m
CONFIG_ALIM1535_WDT=m
CONFIG_ALIM7101_WDT=m
CONFIG_SC520_WDT=m
CONFIG_EUROTECH_WDT=m
CONFIG_IB700_WDT=m
CONFIG_IBMASR=m
CONFIG_WAFER_WDT=m
CONFIG_I6300ESB_WDT=m
CONFIG_I8XX_TCO=m
CONFIG_SC1200_WDT=m
# CONFIG_60XX_WDT is not set
CONFIG_SBC8360_WDT=m
CONFIG_CPU5_WDT=m
CONFIG_W83627HF_WDT=m
CONFIG_W83877F_WDT=m
CONFIG_W83977F_WDT=m
CONFIG_MACHZ_WDT=m

#
# ISA-based Watchdog Cards
#
CONFIG_PCWATCHDOG=m
# CONFIG_MIXCOMWD is not set
CONFIG_WDT=m
# CONFIG_WDT_501 is not set

#
# PCI-based Watchdog Cards
#
CONFIG_PCIPCWATCHDOG=m
CONFIG_WDTPCI=m
CONFIG_WDT_501_PCI=y

#
# USB-based Watchdog Cards
#
CONFIG_USBPCWATCHDOG=m
CONFIG_HW_RANDOM=m
CONFIG_NVRAM=m
CONFIG_RTC=y
CONFIG_RTC_HISTOGRAM=m
CONFIG_BLOCKER=m
# CONFIG_LPPTEST is not set
CONFIG_DTLK=m
CONFIG_R3964=m
# CONFIG_APPLICOM is not set
CONFIG_SONYPI=m

#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
CONFIG_AGP=y
CONFIG_AGP_ALI=y
CONFIG_AGP_ATI=y
CONFIG_AGP_AMD=y
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
CONFIG_AGP_NVIDIA=y
CONFIG_AGP_SIS=y
CONFIG_AGP_SWORKS=y
CONFIG_AGP_VIA=y
CONFIG_AGP_EFFICEON=y
CONFIG_DRM=y
CONFIG_DRM_TDFX=m
CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_I810=m
CONFIG_DRM_I830=m
CONFIG_DRM_I915=m
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
CONFIG_DRM_SAVAGE=m

#
# PCMCIA character devices
#
CONFIG_SYNCLINK_CS=m
CONFIG_MWAVE=m
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
CONFIG_HANGCHECK_TIMER=m

#
# TPM devices
#
CONFIG_TCG_TPM=m
CONFIG_TCG_NSC=m
CONFIG_TCG_ATMEL=m
CONFIG_TCG_INFINEON=m

#
# I2C support
#
CONFIG_I2C=m
CONFIG_I2C_CHARDEV=m

#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m

#
# I2C Hardware Bus support
#
CONFIG_I2C_ALI1535=m
CONFIG_I2C_ALI1563=m
CONFIG_I2C_ALI15X3=m
CONFIG_I2C_AMD756=m
CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
# CONFIG_I2C_ELEKTOR is not set
CONFIG_I2C_I801=m
CONFIG_I2C_I810=m
CONFIG_I2C_PIIX4=m
CONFIG_I2C_ISA=m
CONFIG_I2C_NFORCE2=m
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
CONFIG_I2C_PROSAVAGE=m
CONFIG_I2C_SAVAGE4=m
# CONFIG_SCx200_ACB is not set
CONFIG_I2C_SIS5595=m
CONFIG_I2C_SIS630=m
CONFIG_I2C_SIS96X=m
CONFIG_I2C_STUB=m
CONFIG_I2C_VIA=m
CONFIG_I2C_VIAPRO=m
CONFIG_I2C_VOODOO3=m
CONFIG_I2C_PCA_ISA=m

#
# Miscellaneous I2C Chip support
#
CONFIG_SENSORS_DS1337=m
CONFIG_SENSORS_DS1374=m
CONFIG_SENSORS_EEPROM=m
CONFIG_SENSORS_PCF8574=m
CONFIG_SENSORS_PCA9539=m
CONFIG_SENSORS_PCF8591=m
CONFIG_SENSORS_RTC8564=m
CONFIG_SENSORS_MAX6875=m
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set

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

#
# Hardware Monitoring support
#
CONFIG_HWMON=m
CONFIG_HWMON_VID=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS1621=m
CONFIG_SENSORS_FSCHER=m
CONFIG_SENSORS_FSCPOS=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_LM63=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
CONFIG_SENSORS_LM78=m
CONFIG_SENSORS_LM80=m
CONFIG_SENSORS_LM83=m
CONFIG_SENSORS_LM85=m
CONFIG_SENSORS_LM87=m
CONFIG_SENSORS_LM90=m
CONFIG_SENSORS_LM92=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_SIS5595=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_VIA686A=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83792D=m
CONFIG_SENSORS_W83L785TS=m
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_HDAPS=m
# CONFIG_HWMON_DEBUG_CHIP is not set

#
# Misc devices
#
CONFIG_IBM_ASM=m

#
# Multimedia Capabilities Port drivers
#

#
# Multimedia devices
#
CONFIG_VIDEO_DEV=m

#
# Video For Linux
#

#
# Video Adapters
#
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_SAA6588=m
CONFIG_VIDEO_PMS=m
CONFIG_VIDEO_BWQCAM=m
CONFIG_VIDEO_CQCAM=m
CONFIG_VIDEO_W9966=m
CONFIG_VIDEO_CPIA=m
CONFIG_VIDEO_CPIA_PP=m
CONFIG_VIDEO_CPIA_USB=m
CONFIG_VIDEO_SAA5246A=m
CONFIG_VIDEO_SAA5249=m
CONFIG_TUNER_3036=m
CONFIG_VIDEO_STRADIS=m
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_BUZ=m
CONFIG_VIDEO_ZORAN_DC10=m
CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_LML33=m
CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_MEYE=m
CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_DPC=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_CX88=m
CONFIG_VIDEO_CX88_DVB=m
CONFIG_VIDEO_OVCAMCHIP=m

#
# Radio Adapters
#
CONFIG_RADIO_CADET=m
CONFIG_RADIO_RTRACK=m
CONFIG_RADIO_RTRACK2=m
CONFIG_RADIO_AZTECH=m
CONFIG_RADIO_GEMTEK=m
CONFIG_RADIO_GEMTEK_PCI=m
CONFIG_RADIO_MAXIRADIO=m
CONFIG_RADIO_MAESTRO=m
CONFIG_RADIO_SF16FMI=m
CONFIG_RADIO_SF16FMR2=m
CONFIG_RADIO_TERRATEC=m
CONFIG_RADIO_TRUST=m
CONFIG_RADIO_TYPHOON=m
CONFIG_RADIO_TYPHOON_PROC_FS=y
CONFIG_RADIO_ZOLTRIX=m

#
# Digital Video Broadcasting Devices
#
CONFIG_DVB=y
CONFIG_DVB_CORE=m

#
# Supported SAA7146 based PCI Adapters
#
CONFIG_DVB_AV7110=m
CONFIG_DVB_AV7110_OSD=y
CONFIG_DVB_BUDGET=m
CONFIG_DVB_BUDGET_CI=m
CONFIG_DVB_BUDGET_AV=m
CONFIG_DVB_BUDGET_PATCH=m

#
# Supported USB Adapters
#
CONFIG_DVB_USB=m
# CONFIG_DVB_USB_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_DIBUSB_MB=m
CONFIG_DVB_USB_DIBUSB_MC=m
CONFIG_DVB_USB_UMT_010=m
CONFIG_DVB_USB_CXUSB=m
CONFIG_DVB_USB_DIGITV=m
CONFIG_DVB_USB_VP7045=m
CONFIG_DVB_USB_VP702X=m
CONFIG_DVB_USB_NOVA_T_USB2=m
CONFIG_DVB_USB_DTT200U=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_DVB_CINERGYT2=m
CONFIG_DVB_CINERGYT2_TUNING=y
CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32
CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512
CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250
# CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE is not set

#
# Supported FlexCopII (B2C2) Adapters
#
CONFIG_DVB_B2C2_FLEXCOP=m
CONFIG_DVB_B2C2_FLEXCOP_PCI=m
CONFIG_DVB_B2C2_FLEXCOP_USB=m
# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set

#
# Supported BT878 Adapters
#
CONFIG_DVB_BT8XX=m

#
# Supported Pluto2 Adapters
#
CONFIG_DVB_PLUTO2=m

#
# Supported DVB Frontends
#

#
# Customise DVB Frontends
#

#
# DVB-S (satellite) frontends
#
CONFIG_DVB_STV0299=m
CONFIG_DVB_CX24110=m
CONFIG_DVB_TDA8083=m
CONFIG_DVB_TDA80XX=m
CONFIG_DVB_MT312=m
CONFIG_DVB_VES1X93=m
CONFIG_DVB_S5H1420=m

#
# DVB-T (terrestrial) frontends
#
CONFIG_DVB_SP8870=m
CONFIG_DVB_SP887X=m
CONFIG_DVB_CX22700=m
CONFIG_DVB_CX22702=m
CONFIG_DVB_L64781=m
CONFIG_DVB_TDA1004X=m
CONFIG_DVB_NXT6000=m
CONFIG_DVB_MT352=m
CONFIG_DVB_DIB3000MB=m
CONFIG_DVB_DIB3000MC=m

#
# DVB-C (cable) frontends
#
CONFIG_DVB_ATMEL_AT76C651=m
CONFIG_DVB_VES1820=m
CONFIG_DVB_TDA10021=m
CONFIG_DVB_STV0297=m

#
# ATSC (North American/Korean Terresterial DTV) frontends
#
CONFIG_DVB_NXT2002=m
CONFIG_DVB_OR51211=m
CONFIG_DVB_OR51132=m
CONFIG_DVB_BCM3510=m
CONFIG_DVB_LGDT330X=m
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_VIDEO_VIDEOBUF=m
CONFIG_VIDEO_TUNER=m
CONFIG_VIDEO_BUF=m
CONFIG_VIDEO_BUF_DVB=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m

#
# Graphics support
#
CONFIG_FB=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_SOFT_CURSOR=y
# CONFIG_FB_MACMODES is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
CONFIG_FB_CIRRUS=m
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
CONFIG_FB_ARC=m
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_VGA16=m
CONFIG_FB_VESA=y
CONFIG_VIDEO_SELECT=y
CONFIG_FB_HGA=m
CONFIG_FB_HGA_ACCEL=y
CONFIG_FB_NVIDIA=m
CONFIG_FB_NVIDIA_I2C=y
CONFIG_FB_RIVA=m
# CONFIG_FB_RIVA_I2C is not set
# CONFIG_FB_RIVA_DEBUG is not set
CONFIG_FB_I810=m
CONFIG_FB_I810_GTF=y
CONFIG_FB_I810_I2C=y
CONFIG_FB_INTEL=m
# CONFIG_FB_INTEL_DEBUG is not set
CONFIG_FB_MATROX=m
CONFIG_FB_MATROX_MILLENIUM=y
CONFIG_FB_MATROX_MYSTIQUE=y
CONFIG_FB_MATROX_G=y
CONFIG_FB_MATROX_I2C=m
CONFIG_FB_MATROX_MAVEN=m
CONFIG_FB_MATROX_MULTIHEAD=y
# CONFIG_FB_RADEON_OLD is not set
CONFIG_FB_RADEON=m
CONFIG_FB_RADEON_I2C=y
# CONFIG_FB_RADEON_DEBUG is not set
CONFIG_FB_ATY128=m
CONFIG_FB_ATY=m
CONFIG_FB_ATY_CT=y
CONFIG_FB_ATY_GENERIC_LCD=y
# CONFIG_FB_ATY_XL_INIT is not set
CONFIG_FB_ATY_GX=y
CONFIG_FB_SAVAGE=m
CONFIG_FB_SAVAGE_I2C=y
CONFIG_FB_SAVAGE_ACCEL=y
# CONFIG_FB_SIS is not set
CONFIG_FB_NEOMAGIC=m
CONFIG_FB_KYRO=m
CONFIG_FB_3DFX=m
CONFIG_FB_3DFX_ACCEL=y
CONFIG_FB_VOODOO1=m
CONFIG_FB_CYBLA=m
CONFIG_FB_TRIDENT=m
CONFIG_FB_TRIDENT_ACCEL=y
# CONFIG_FB_GEODE is not set
CONFIG_FB_S1D13XXX=m
# CONFIG_FB_VIRTUAL is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_MDA_CONSOLE=m
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y

#
# Logo configuration
#
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=m
CONFIG_BACKLIGHT_DEVICE=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_DEVICE=y

#
# Sound
#
CONFIG_SOUND=m

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_RTCTIMER=m
CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_GENERIC_DRIVER=y

#
# Generic devices
#
CONFIG_SND_MPU401_UART=m
CONFIG_SND_OPL3_LIB=m
CONFIG_SND_OPL4_LIB=m
CONFIG_SND_VX_LIB=m
CONFIG_SND_DUMMY=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
# CONFIG_SND_SERIAL_U16550 is not set
CONFIG_SND_MPU401=m

#
# ISA devices
#
CONFIG_SND_AD1848_LIB=m
CONFIG_SND_CS4231_LIB=m
CONFIG_SND_AD1816A=m
CONFIG_SND_AD1848=m
CONFIG_SND_CS4231=m
CONFIG_SND_CS4232=m
CONFIG_SND_CS4236=m
CONFIG_SND_ES968=m
CONFIG_SND_ES1688=m
CONFIG_SND_ES18XX=m
CONFIG_SND_GUS_SYNTH=m
CONFIG_SND_GUSCLASSIC=m
CONFIG_SND_GUSEXTREME=m
CONFIG_SND_GUSMAX=m
CONFIG_SND_INTERWAVE=m
CONFIG_SND_INTERWAVE_STB=m
CONFIG_SND_OPTI92X_AD1848=m
CONFIG_SND_OPTI92X_CS4231=m
CONFIG_SND_OPTI93X=m
CONFIG_SND_SB8=m
CONFIG_SND_SB16=m
CONFIG_SND_SBAWE=m
CONFIG_SND_SB16_CSP=y
# CONFIG_SND_WAVEFRONT is not set
CONFIG_SND_ALS100=m
CONFIG_SND_AZT2320=m
CONFIG_SND_CMI8330=m
CONFIG_SND_DT019X=m
CONFIG_SND_OPL3SA2=m
CONFIG_SND_SGALAXY=m
CONFIG_SND_SSCAPE=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_AC97_BUS=m

#
# PCI devices
#
CONFIG_SND_ALI5451=m
CONFIG_SND_ATIIXP=m
CONFIG_SND_ATIIXP_MODEM=m
CONFIG_SND_AU8810=m
CONFIG_SND_AU8820=m
CONFIG_SND_AU8830=m
CONFIG_SND_AZT3328=m
CONFIG_SND_BT87X=m
CONFIG_SND_BT87X_OVERCLOCK=y
CONFIG_SND_CS46XX=m
CONFIG_SND_CS46XX_NEW_DSP=y
CONFIG_SND_CS4281=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1X=m
CONFIG_SND_CA0106=m
CONFIG_SND_KORG1212=m
CONFIG_SND_MIXART=m
CONFIG_SND_NM256=m
CONFIG_SND_RME32=m
CONFIG_SND_RME96=m
CONFIG_SND_RME9652=m
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_TRIDENT=m
CONFIG_SND_YMFPCI=m
CONFIG_SND_AD1889=m
CONFIG_SND_ALS4000=m
CONFIG_SND_CMIPCI=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_ES1938=m
CONFIG_SND_ES1968=m
CONFIG_SND_MAESTRO3=m
CONFIG_SND_FM801=m
CONFIG_SND_FM801_TEA575X=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INTEL8X0=m
CONFIG_SND_INTEL8X0M=m
CONFIG_SND_SONICVIBES=m
CONFIG_SND_VIA82XX=m
CONFIG_SND_VIA82XX_MODEM=m
CONFIG_SND_VX222=m
CONFIG_SND_HDA_INTEL=m

#
# USB devices
#
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_USX2Y=m

#
# PCMCIA devices
#
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m

#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set

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

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set

#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_SPLIT_ISO=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_BIG_ENDIAN is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_UHCI_HCD=m
CONFIG_USB_SL811_HCD=m
CONFIG_USB_SL811_CS=m

#
# USB Device Class drivers
#
# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set

#
# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
#
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m

#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ONETOUCH=y

#
# USB Input Devices
#
CONFIG_USB_HID=y
CONFIG_USB_HIDINPUT=y
CONFIG_HID_FF=y
CONFIG_HID_PID=y
CONFIG_LOGITECH_FF=y
CONFIG_THRUSTMASTER_FF=y
CONFIG_USB_HIDDEV=y
CONFIG_USB_AIPTEK=m
CONFIG_USB_WACOM=m
CONFIG_USB_ACECAD=m
CONFIG_USB_KBTAB=m
CONFIG_USB_POWERMATE=m
CONFIG_USB_MTOUCH=m
CONFIG_USB_ITMTOUCH=m
CONFIG_USB_EGALAX=m
CONFIG_USB_YEALINK=m
CONFIG_USB_XPAD=m
CONFIG_USB_ATI_REMOTE=m
CONFIG_USB_KEYSPAN_REMOTE=m
CONFIG_USB_APPLETOUCH=m

#
# USB Imaging devices
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m

#
# USB Multimedia devices
#
CONFIG_USB_DABUSB=m
CONFIG_USB_VICAM=m
CONFIG_USB_DSBR=m
CONFIG_USB_IBMCAM=m
CONFIG_USB_KONICAWC=m
CONFIG_USB_OV511=m
CONFIG_USB_SE401=m
CONFIG_USB_SN9C102=m
CONFIG_USB_STV680=m
CONFIG_USB_W9968CF=m
CONFIG_USB_PWC=m

#
# USB Network Adapters
#
CONFIG_USB_CATC=m
CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_CDCETHER=m
CONFIG_USB_NET_GL620A=m
CONFIG_USB_NET_NET1080=m
CONFIG_USB_NET_PLUSB=m
# CONFIG_USB_NET_RNDIS_HOST is not set
CONFIG_USB_NET_CDC_SUBSET=m
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
CONFIG_USB_EPSON2888=y
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_ZD1201=m
CONFIG_USB_MON=y

#
# USB port drivers
#
CONFIG_USB_USS720=m

#
# USB Serial Converter support
#
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_AIRPRIME=m
CONFIG_USB_SERIAL_BELKIN=m
CONFIG_USB_SERIAL_WHITEHEAT=m
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
CONFIG_USB_SERIAL_CP2101=m
CONFIG_USB_SERIAL_CYPRESS_M8=m
CONFIG_USB_SERIAL_EMPEG=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_VISOR=m
CONFIG_USB_SERIAL_IPAQ=m
CONFIG_USB_SERIAL_IR=m
CONFIG_USB_SERIAL_EDGEPORT=m
CONFIG_USB_SERIAL_EDGEPORT_TI=m
CONFIG_USB_SERIAL_GARMIN=m
CONFIG_USB_SERIAL_IPW=m
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
CONFIG_USB_SERIAL_KEYSPAN=m
CONFIG_USB_SERIAL_KEYSPAN_MPR=y
CONFIG_USB_SERIAL_KEYSPAN_USA28=y
CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
CONFIG_USB_SERIAL_KEYSPAN_USA19=y
CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_SERIAL_HP4X=m
CONFIG_USB_SERIAL_SAFE=m
CONFIG_USB_SERIAL_SAFE_PADDED=y
CONFIG_USB_SERIAL_TI=m
CONFIG_USB_SERIAL_CYBERJACK=m
CONFIG_USB_SERIAL_XIRCOM=m
CONFIG_USB_SERIAL_OPTION=m
CONFIG_USB_SERIAL_OMNINET=m
CONFIG_USB_EZUSB=y

#
# USB Miscellaneous drivers
#
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
CONFIG_USB_AUERSWALD=m
CONFIG_USB_RIO500=m
CONFIG_USB_LEGOTOWER=m
CONFIG_USB_LCD=m
CONFIG_USB_LED=m
# CONFIG_USB_CYTHERM is not set
CONFIG_USB_PHIDGETKIT=m
CONFIG_USB_PHIDGETSERVO=m
CONFIG_USB_IDMOUSE=m
CONFIG_USB_SISUSBVGA=m
CONFIG_USB_SISUSBVGA_CON=y
CONFIG_USB_LD=m
CONFIG_USB_TEST=m

#
# USB DSL modem support
#
CONFIG_USB_ATM=m
CONFIG_USB_SPEEDTOUCH=m
CONFIG_USB_CXACRU=m
CONFIG_USB_XUSBATM=m

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set

#
# MMC/SD Card support
#
CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_BLOCK=m
CONFIG_MMC_WBSD=m

#
# InfiniBand support
#
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
CONFIG_INFINIBAND_MTHCA=m
# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
CONFIG_INFINIBAND_IPOIB=m
# CONFIG_INFINIBAND_IPOIB_DEBUG is not set

#
# SN Devices
#

#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_JBD=m
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_PROC_INFO=y
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
CONFIG_JFS_FS=m
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
CONFIG_XFS_EXPORT=y
CONFIG_XFS_QUOTA=m
CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_XFS_RT is not set
CONFIG_MINIX_FS=m
CONFIG_ROMFS_FS=m
CONFIG_INOTIFY=y
CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_ZISOFS_FS=y
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y
CONFIG_RELAYFS_FS=m

#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
CONFIG_AFFS_FS=m
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
CONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BFS_FS=m
CONFIG_EFS_FS=m
# CONFIG_JFFS_FS is not set
CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
CONFIG_CRAMFS=m
CONFIG_VXFS_FS=m
# CONFIG_HPFS_FS is not set
CONFIG_QNX4FS_FS=m
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set

#
# Network File Systems
#
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_RPCSEC_GSS_SPKM3=m
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_EXPERIMENTAL is not set
CONFIG_NCP_FS=m
CONFIG_NCPFS_PACKET_SIGNING=y
CONFIG_NCPFS_IOCTL_LOCKING=y
CONFIG_NCPFS_STRONG=y
CONFIG_NCPFS_NFS_NS=y
CONFIG_NCPFS_OS2_NS=y
CONFIG_NCPFS_SMALLDOS=y
CONFIG_NCPFS_NLS=y
CONFIG_NCPFS_EXTRAS=y
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
CONFIG_OSF_PARTITION=y
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_UNIXWARE_DISKLABEL=y
# CONFIG_LDM_PARTITION is not set
CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
CONFIG_SUN_PARTITION=y
CONFIG_EFI_PARTITION=y

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

#
# Profiling support
#
# CONFIG_PROFILING is not set

#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
# CONFIG_PRINTK_IGNORE_LOGLEVEL is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_PREEMPT is not set
CONFIG_DEBUG_SPINLOCK_SLEEP=y
CONFIG_WAKEUP_TIMING=y
# CONFIG_WAKEUP_LATENCY_HIST is not set
# 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_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_FS is not set
# CONFIG_USE_FRAME_POINTER is not set
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_KPROBES is not set
CONFIG_DEBUG_STACK_USAGE=y
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_4KSTACKS is not set
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y

#
# Security options
#
# CONFIG_KEYS is not set
CONFIG_SECURITY=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_CAPABILITIES=y
# CONFIG_SECURITY_ROOTPLUG is not set
# CONFIG_SECURITY_SECLVL is not set
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
CONFIG_SECURITY_SELINUX_DISABLE=y
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1

#
# Cryptographic options
#
CONFIG_CRYPTO=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_AES_586=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
# CONFIG_CRYPTO_TEST is not set
CONFIG_CRYPTO_SIGNATURE=y
CONFIG_CRYPTO_SIGNATURE_DSA=y
CONFIG_CRYPTO_MPILIB=y

#
# Hardware crypto devices
#
CONFIG_CRYPTO_DEV_PADLOCK=y
CONFIG_CRYPTO_DEV_PADLOCK_AES=y

#
# Library routines
#
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_PC=y

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

* Re: 2.6.14-rc2-rt2
  2005-09-27 16:59   ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
@ 2005-09-27 22:15     ` Thomas Gleixner
  2005-09-27 23:11       ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
  2005-09-27 23:10     ` 2.6.14-rc2-rt2 Daniel Walker
  1 sibling, 1 reply; 46+ messages in thread
From: Thomas Gleixner @ 2005-09-27 22:15 UTC (permalink / raw)
  To: Fernando Lopez-Lezcano
  Cc: Ingo Molnar, linux-kernel, Steven Rostedt, dwalker, emann, yang.yi

On Tue, 2005-09-27 at 09:59 -0700, Fernando Lopez-Lezcano wrote:
> {standard input}:165: Error: can't resolve `.sched.text' {.sched.text
> section} - `.Ltext0' {.text section}
> make[1]: *** [arch/i386/kernel/semaphore.o] Error 1
> make[1]: *** Waiting for unfinished jobs....
> make: *** [arch/i386/kernel] Error 2
> make: *** Waiting for unfinished jobs....

Thats a gcc problem. Which gcc version are you using ?

tglx



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

* Re: 2.6.14-rc2-rt2
  2005-09-27 16:59   ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
  2005-09-27 22:15     ` 2.6.14-rc2-rt2 Thomas Gleixner
@ 2005-09-27 23:10     ` Daniel Walker
  2005-09-28  3:04       ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
  1 sibling, 1 reply; 46+ messages in thread
From: Daniel Walker @ 2005-09-27 23:10 UTC (permalink / raw)
  To: Fernando Lopez-Lezcano
  Cc: Ingo Molnar, linux-kernel, Thomas Gleixner, Steven Rostedt,
	emann, yang.yi, mingo

On Tue, 2005-09-27 at 09:59 -0700, Fernando Lopez-Lezcano wrote:
>  UPD     include/linux/compile.h
> {standard input}: Assembler messages:
> {standard input}:164: Error: can't resolve `.sched.text' {.sched.text
> section} - `.Ltext0' {.text section}
> {standard input}:165: Error: can't resolve `.sched.text' {.sched.text
> section} - `.Ltext0' {.text section}
> make[1]: *** [arch/i386/kernel/semaphore.o] Error 1
> make[1]: *** Waiting for unfinished jobs....
> make: *** [arch/i386/kernel] Error 2
> make: *** Waiting for unfinished jobs....
> 
> Failing .config attached. 
> -- Fernando
> 

Here's the fix.

Index: linux-2.6.13/lib/semaphore-sleepers.c
===================================================================
--- linux-2.6.13.orig/lib/semaphore-sleepers.c
+++ linux-2.6.13/lib/semaphore-sleepers.c
@@ -176,3 +176,10 @@ fastcall int __compat_down_trylock(struc
 	spin_unlock_irqrestore(&sem->wait.lock, flags);
 	return 1;
 }
+
+int fastcall compat_sem_is_locked(struct compat_semaphore *sem)
+{
+	return (int) atomic_read(&sem->count) < 0;
+}
+
+EXPORT_SYMBOL(compat_sem_is_locked);
Index: linux-2.6.13/arch/i386/kernel/semaphore.c
===================================================================
--- linux-2.6.13.orig/arch/i386/kernel/semaphore.c
+++ linux-2.6.13/arch/i386/kernel/semaphore.c
@@ -102,10 +102,3 @@ asm(
 	"ret"
 );
 
-int fastcall compat_sem_is_locked(struct compat_semaphore *sem)
-{
-	return (int) atomic_read(&sem->count) < 0;
-}
-
-EXPORT_SYMBOL(compat_sem_is_locked);
-



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

* Re: 2.6.14-rc2-rt2
  2005-09-27 22:15     ` 2.6.14-rc2-rt2 Thomas Gleixner
@ 2005-09-27 23:11       ` Fernando Lopez-Lezcano
  0 siblings, 0 replies; 46+ messages in thread
From: Fernando Lopez-Lezcano @ 2005-09-27 23:11 UTC (permalink / raw)
  To: tglx; +Cc: Ingo Molnar, linux-kernel, Steven Rostedt, dwalker, emann, yang.yi

On Wed, 2005-09-28 at 00:15 +0200, Thomas Gleixner wrote:
> On Tue, 2005-09-27 at 09:59 -0700, Fernando Lopez-Lezcano wrote:
> > {standard input}:165: Error: can't resolve `.sched.text' {.sched.text
> > section} - `.Ltext0' {.text section}
> > make[1]: *** [arch/i386/kernel/semaphore.o] Error 1
> > make[1]: *** Waiting for unfinished jobs....
> > make: *** [arch/i386/kernel] Error 2
> > make: *** Waiting for unfinished jobs....
> 
> Thats a gcc problem. Which gcc version are you using ?

# gcc --version
gcc (GCC) 4.0.1 20050727 (Red Hat 4.0.1-5)
(on FC4)

-- Fernando



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

* Re: 2.6.14-rc2-rt2
  2005-09-27 23:10     ` 2.6.14-rc2-rt2 Daniel Walker
@ 2005-09-28  3:04       ` Fernando Lopez-Lezcano
  2005-09-28  9:48         ` 2.6.14-rc2-rt2 Ingo Molnar
  0 siblings, 1 reply; 46+ messages in thread
From: Fernando Lopez-Lezcano @ 2005-09-28  3:04 UTC (permalink / raw)
  To: dwalker
  Cc: Ingo Molnar, linux-kernel, Thomas Gleixner, Steven Rostedt,
	emann, yang.yi

On Tue, 2005-09-27 at 16:10 -0700, Daniel Walker wrote:
> On Tue, 2005-09-27 at 09:59 -0700, Fernando Lopez-Lezcano wrote:
> >  UPD     include/linux/compile.h
> > {standard input}: Assembler messages:
> > {standard input}:164: Error: can't resolve `.sched.text' {.sched.text
> > section} - `.Ltext0' {.text section}
> > {standard input}:165: Error: can't resolve `.sched.text' {.sched.text
> > section} - `.Ltext0' {.text section}
> > make[1]: *** [arch/i386/kernel/semaphore.o] Error 1
> > make[1]: *** Waiting for unfinished jobs....
> > make: *** [arch/i386/kernel] Error 2
> > make: *** Waiting for unfinished jobs....
> > 
> > Failing .config attached. 
>
> Here's the fix.

Hey thanks! That fixes that, but the compile fails further along:

  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
arch/i386/kernel/built-in.o(.text+0xf086): In function `do_powersaver':
longhaul.c: undefined reference to `safe_halt'
arch/i386/kernel/built-in.o(.text+0xf271): In function
`longhaul_setstate':
longhaul.c: undefined reference to `safe_halt'
make: *** [.tmp_vmlinux1] Error 1

-- Fernando



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

* Re: 2.6.14-rc2-rt2
  2005-09-26  7:02 ` 2.6.14-rc2-rt2 Ingo Molnar
  2005-09-27  6:13   ` 2.6.14-rc2-rt2 Eran Mann
  2005-09-27 16:59   ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
@ 2005-09-28  9:10   ` Peter Zijlstra
  2005-09-29 16:45   ` 2.6.14-rc2-rt2 Badari Pulavarty
  2005-10-02 15:18   ` 2.6.14-rc3-rt1 Ingo Molnar
  4 siblings, 0 replies; 46+ messages in thread
From: Peter Zijlstra @ 2005-09-28  9:10 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Steven Rostedt, dwalker, emann, yang.yi

Hi all,

-rt[45] do not compile with CONFIG_HOTPLUG_CPU. ktimers seem to mess up.
Not a biggie, don't need it anyway.

Peter

-- 
Peter Zijlstra <a.p.zijlstra@chello.nl>


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

* Re: 2.6.14-rc2-rt2
  2005-09-28  3:04       ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
@ 2005-09-28  9:48         ` Ingo Molnar
  2005-09-28 16:34           ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
  0 siblings, 1 reply; 46+ messages in thread
From: Ingo Molnar @ 2005-09-28  9:48 UTC (permalink / raw)
  To: Fernando Lopez-Lezcano
  Cc: dwalker, linux-kernel, Thomas Gleixner, Steven Rostedt, emann, yang.yi


* Fernando Lopez-Lezcano <nando@ccrma.Stanford.EDU> wrote:

> > Here's the fix.
> 
> Hey thanks! That fixes that, but the compile fails further along:
> 
>   CHK     include/linux/compile.h
>   UPD     include/linux/compile.h
> arch/i386/kernel/built-in.o(.text+0xf086): In function `do_powersaver':
> longhaul.c: undefined reference to `safe_halt'
> arch/i386/kernel/built-in.o(.text+0xf271): In function
> `longhaul_setstate':
> longhaul.c: undefined reference to `safe_halt'
> make: *** [.tmp_vmlinux1] Error 1

could you try 2.6.14-rc2-rt6, does it build?

	Ingo

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

* Re: 2.6.14-rc2-rt2
  2005-09-28  9:48         ` 2.6.14-rc2-rt2 Ingo Molnar
@ 2005-09-28 16:34           ` Fernando Lopez-Lezcano
  2005-09-29  9:07             ` 2.6.14-rc2-rt2 Eran Mann
  0 siblings, 1 reply; 46+ messages in thread
From: Fernando Lopez-Lezcano @ 2005-09-28 16:34 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: nando, dwalker, linux-kernel, Thomas Gleixner, Steven Rostedt,
	emann, yang.yi

On Wed, 2005-09-28 at 11:48 +0200, Ingo Molnar wrote:
> * Fernando Lopez-Lezcano <nando@ccrma.Stanford.EDU> wrote:
> 
> > > Here's the fix.
> > 
> > Hey thanks! That fixes that, but the compile fails further along:
> > 
> >   CHK     include/linux/compile.h
> >   UPD     include/linux/compile.h
> > arch/i386/kernel/built-in.o(.text+0xf086): In function `do_powersaver':
> > longhaul.c: undefined reference to `safe_halt'
> > arch/i386/kernel/built-in.o(.text+0xf271): In function
> > `longhaul_setstate':
> > longhaul.c: undefined reference to `safe_halt'
> > make: *** [.tmp_vmlinux1] Error 1
> 
> could you try 2.6.14-rc2-rt6, does it build?

No, sorry...

fs/ntfs/aops.c: In function 'ntfs_end_buffer_async_read':
fs/ntfs/aops.c:108: error: 'BH_Uptodate_Lock' undeclared (first use in
this function)
fs/ntfs/aops.c:108: error: (Each undeclared identifier is reported only
once
fs/ntfs/aops.c:108: error: for each function it appears in.)
make[2]: *** [fs/ntfs/aops.o] Error 1

and (probably unrelated to rt):

drivers/isdn/hisax/config.c: In function 'HiSax_readstatus':
drivers/isdn/hisax/config.c:636: warning: ignoring return value of
'copy_to_user', declared with attribute warn_unused_result
drivers/isdn/hisax/config.c:647: warning: ignoring return value of
'copy_to_user', declared with attribute warn_unused_result
drivers/isdn/hisax/callc.c: In function 'HiSax_writebuf_skb':
drivers/isdn/hisax/callc.c:1781: warning: large integer implicitly
truncated to unsigned type
drivers/isdn/hisax/st5481_usb.c: In function 'st5481_in_mode':
drivers/isdn/hisax/st5481_usb.c:648: error: 'URB_ASYNC_UNLINK'
undeclared (first use in this function)
drivers/isdn/hisax/st5481_usb.c:648: error: (Each undeclared identifier
is reported only once
drivers/isdn/hisax/st5481_usb.c:648: error: for each function it appears
in.)
make[3]: *** [drivers/isdn/hisax/st5481_usb.o] Error 1

-- Fernando



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

* Re: 2.6.14-rc2-rt2
  2005-09-28 16:34           ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
@ 2005-09-29  9:07             ` Eran Mann
  0 siblings, 0 replies; 46+ messages in thread
From: Eran Mann @ 2005-09-29  9:07 UTC (permalink / raw)
  To: Fernando Lopez-Lezcano
  Cc: Ingo Molnar, dwalker, linux-kernel, Thomas Gleixner,
	Steven Rostedt, yang.yi

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


Fernando Lopez-Lezcano wrote:
>>could you try 2.6.14-rc2-rt6, does it build?
> 
> 
> No, sorry...
> 
> fs/ntfs/aops.c: In function 'ntfs_end_buffer_async_read':
> fs/ntfs/aops.c:108: error: 'BH_Uptodate_Lock' undeclared (first use in
> this function)
> fs/ntfs/aops.c:108: error: (Each undeclared identifier is reported only
> once
> fs/ntfs/aops.c:108: error: for each function it appears in.)
> make[2]: *** [fs/ntfs/aops.o] Error 1
> 
> and (probably unrelated to rt):
> 
> drivers/isdn/hisax/config.c: In function 'HiSax_readstatus':
> drivers/isdn/hisax/config.c:636: warning: ignoring return value of
> 'copy_to_user', declared with attribute warn_unused_result
> drivers/isdn/hisax/config.c:647: warning: ignoring return value of
> 'copy_to_user', declared with attribute warn_unused_result
> drivers/isdn/hisax/callc.c: In function 'HiSax_writebuf_skb':
> drivers/isdn/hisax/callc.c:1781: warning: large integer implicitly
> truncated to unsigned type
> drivers/isdn/hisax/st5481_usb.c: In function 'st5481_in_mode':
> drivers/isdn/hisax/st5481_usb.c:648: error: 'URB_ASYNC_UNLINK'
> undeclared (first use in this function)
> drivers/isdn/hisax/st5481_usb.c:648: error: (Each undeclared identifier
> is reported only once
> drivers/isdn/hisax/st5481_usb.c:648: error: for each function it appears
> in.)
> make[3]: *** [drivers/isdn/hisax/st5481_usb.o] Error 1
> 
> -- Fernando
> 
> 
Regarding NTFS - try with the attached patch. It seems to be still 
missing from 2.6.14-rc2-rt7.

[-- Attachment #2: linux-rt-ntfs.patch --]
[-- Type: text/x-patch, Size: 994 bytes --]

--- fs/ntfs/aops.c.old	2005-09-25 16:20:26.000000000 +0300
+++ fs/ntfs/aops.c	2005-09-25 16:22:04.000000000 +0300
@@ -104,8 +104,7 @@
 				"0x%llx.", (unsigned long long)bh->b_blocknr);
 	}
 	first = page_buffers(page);
-	local_irq_save(flags);
-	bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
+	spin_lock_irqsave(&first->b_uptodate_lock, flags);
 	clear_buffer_async_read(bh);
 	unlock_buffer(bh);
 	tmp = bh;
@@ -120,8 +119,7 @@
 		}
 		tmp = tmp->b_this_page;
 	} while (tmp != bh);
-	bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
-	local_irq_restore(flags);
+	spin_unlock_irqrestore(&first->b_uptodate_lock, flags);
 	/*
 	 * If none of the buffers had errors then we can set the page uptodate,
 	 * but we first have to perform the post read mst fixups, if the
@@ -154,8 +152,7 @@
 	unlock_page(page);
 	return;
 still_busy:
-	bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
-	local_irq_restore(flags);
+	spin_unlock_irqrestore(&first->b_uptodate_lock, flags);
 	return;
 }
 

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

* Re: 2.6.14-rc2-rt2
  2005-09-26  7:02 ` 2.6.14-rc2-rt2 Ingo Molnar
                     ` (2 preceding siblings ...)
  2005-09-28  9:10   ` 2.6.14-rc2-rt2 Peter Zijlstra
@ 2005-09-29 16:45   ` Badari Pulavarty
  2005-09-30 10:58     ` 2.6.14-rc2-rt2 Ingo Molnar
  2005-10-02 15:18   ` 2.6.14-rc3-rt1 Ingo Molnar
  4 siblings, 1 reply; 46+ messages in thread
From: Badari Pulavarty @ 2005-09-29 16:45 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: lkml

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

On Mon, 2005-09-26 at 09:02 +0200, Ingo Molnar wrote:
> i have released the 2.6.14-rc2-rt2 tree, which can be downloaded from 
> the usual place:
> 
>    http://redhat.com/~mingo/realtime-preempt/
> 

Hi Ingo,

I noticed that you moved to "-rt7" already.
 "-rt7" fails to compile with CONFIG_NUMA.

mm/slab.c:2404: error: conflicting types for `kmem_cache_alloc_node'
include/linux/slab.h:122: error: previous declaration of
`kmem_cache_alloc_node'

Here is the simple fix.

Thanks,
Badari



[-- Attachment #2: rt7-fix.patch --]
[-- Type: text/x-patch, Size: 495 bytes --]

--- linux-2.6.14-rc2/mm/slab.c	2005-09-29 02:55:11.000000000 -0700
+++ linux-2.6.14-rc2-rt7/mm/slab.c	2005-09-29 02:48:05.000000000 -0700
@@ -2400,7 +2400,7 @@ out:
  * and can sleep. And it will allocate memory on the given node, which
  * can improve the performance for cpu bound structures.
  */
-void *kmem_cache_alloc_node(kmem_cache_t *cachep, int flags, int nodeid)
+void *kmem_cache_alloc_node(kmem_cache_t *cachep, unsigned int __nocast flags, int nodeid)
 {
 	int loop;
 	void *objp;

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

* Re: 2.6.14-rc2-rt2
  2005-09-29 16:45   ` 2.6.14-rc2-rt2 Badari Pulavarty
@ 2005-09-30 10:58     ` Ingo Molnar
  0 siblings, 0 replies; 46+ messages in thread
From: Ingo Molnar @ 2005-09-30 10:58 UTC (permalink / raw)
  To: Badari Pulavarty; +Cc: lkml


* Badari Pulavarty <pbadari@gmail.com> wrote:

> On Mon, 2005-09-26 at 09:02 +0200, Ingo Molnar wrote:
> > i have released the 2.6.14-rc2-rt2 tree, which can be downloaded from 
> > the usual place:
> > 
> >    http://redhat.com/~mingo/realtime-preempt/
> > 
> 
> Hi Ingo,
> 
> I noticed that you moved to "-rt7" already.
>  "-rt7" fails to compile with CONFIG_NUMA.
> 
> mm/slab.c:2404: error: conflicting types for `kmem_cache_alloc_node'
> include/linux/slab.h:122: error: previous declaration of
> `kmem_cache_alloc_node'
> 
> Here is the simple fix.

thanks, applied.

	Ingo

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

* 2.6.14-rc3-rt1
  2005-09-26  7:02 ` 2.6.14-rc2-rt2 Ingo Molnar
                     ` (3 preceding siblings ...)
  2005-09-29 16:45   ` 2.6.14-rc2-rt2 Badari Pulavarty
@ 2005-10-02 15:18   ` Ingo Molnar
  2005-10-02 15:42     ` 2.6.14-rc3-rt1 Mark Knecht
  2005-10-02 20:51     ` 2.6.14-rc3-rt1 Felix Oxley
  4 siblings, 2 replies; 46+ messages in thread
From: Ingo Molnar @ 2005-10-02 15:18 UTC (permalink / raw)
  To: linux-kernel
  Cc: ARM Kernel, Christoph Hellwig, Robert Schwebel, Manfred Gruber,
	john cooper, Russell King - ARM Linux, Thomas Gleixner,
	Clark Williams, Eran Mann, dwalker, Mark Knecht


i have released the 2.6.14-rc3-rt1 tree, which can be downloaded from 
the usual place:

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

the biggest change is the merge of the generic ARM-irq patches into the 
-rt tree, and a port of -rt to the ARM platform, by Thomas Gleixner and 
John Cooper.  There are also lots of updates and cleanups in the ktimer 
code.  Also, x64 should work again.  Plus smaller changes all around.
 
Changes since 2.6.14-rc2-rt2:

 - ARM-genirq code (Thomas Gleixner, me - testing by lots of people)

 - latency tracing on ARM (John Cooper)

 - port of -rt to ARM (Thomas Gleixner)

 - lots of ktimer updates/cleanups (Thomas Gleixner)

 - NTFS bit-spinlock fix (Eran Mann)

 - gcc4 build fix (Daniel Walker)

 - fix "No Forced Preemption (Server)" build problems
   (reported by Mark Knecht)

 - convert epca_lock to the new syntax (Daniel Walker)

 - typo fix in latency-hist prototype (Clark Williams)

 - netlink build fix (Eran Mann)

 - dccp build fix (Eran Mann)

 - x64 build fixes

 - fix audit.c compilation error

 - merge to 2.6.14-rc3

 - cpufreq build fix

 - pcmcia build fix

 - XFS build fix

to build a 2.6.14-rc3-rt1 tree, the following patches should be applied:

  http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.tar.bz2
  http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.14-rc3.bz2
  http://redhat.com/~mingo/realtime-preempt/patch-2.6.14-rc3-rt1

	Ingo

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

* Re: 2.6.14-rc3-rt1
  2005-10-02 15:18   ` 2.6.14-rc3-rt1 Ingo Molnar
@ 2005-10-02 15:42     ` Mark Knecht
  2005-10-02 19:25       ` 2.6.14-rc3-rt1 Mark Knecht
  2005-10-02 20:51     ` 2.6.14-rc3-rt1 Felix Oxley
  1 sibling, 1 reply; 46+ messages in thread
From: Mark Knecht @ 2005-10-02 15:42 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel

Thanks Ingo. 2.6.14-rc2-rt7 on AMD64 has been working well for me the
last few days. (After finally getting it to build!) I expect that I'll
build 2.6.14-rc3-rt1 today.

Cheers,
Mark

On 10/2/05, Ingo Molnar <mingo@elte.hu> wrote:
>
> i have released the 2.6.14-rc3-rt1 tree, which can be downloaded from
> the usual place:
>
>   http://redhat.com/~mingo/realtime-preempt/
>
> the biggest change is the merge of the generic ARM-irq patches into the
> -rt tree, and a port of -rt to the ARM platform, by Thomas Gleixner and
> John Cooper.  There are also lots of updates and cleanups in the ktimer
> code.  Also, x64 should work again.  Plus smaller changes all around.
>
> Changes since 2.6.14-rc2-rt2:
>
>  - ARM-genirq code (Thomas Gleixner, me - testing by lots of people)
>
>  - latency tracing on ARM (John Cooper)
>
>  - port of -rt to ARM (Thomas Gleixner)
>
>  - lots of ktimer updates/cleanups (Thomas Gleixner)
>
>  - NTFS bit-spinlock fix (Eran Mann)
>
>  - gcc4 build fix (Daniel Walker)
>
>  - fix "No Forced Preemption (Server)" build problems
>    (reported by Mark Knecht)
>
>  - convert epca_lock to the new syntax (Daniel Walker)
>
>  - typo fix in latency-hist prototype (Clark Williams)
>
>  - netlink build fix (Eran Mann)
>
>  - dccp build fix (Eran Mann)
>
>  - x64 build fixes
>
>  - fix audit.c compilation error
>
>  - merge to 2.6.14-rc3
>
>  - cpufreq build fix
>
>  - pcmcia build fix
>
>  - XFS build fix
>
> to build a 2.6.14-rc3-rt1 tree, the following patches should be applied:
>
>   http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.tar.bz2
>   http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.14-rc3.bz2
>   http://redhat.com/~mingo/realtime-preempt/patch-2.6.14-rc3-rt1
>
>         Ingo
>

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

* Re: 2.6.14-rc3-rt1
  2005-10-02 15:42     ` 2.6.14-rc3-rt1 Mark Knecht
@ 2005-10-02 19:25       ` Mark Knecht
  2005-10-06 17:13         ` 2.6.14-rc3-rt1 Steven Rostedt
  0 siblings, 1 reply; 46+ messages in thread
From: Mark Knecht @ 2005-10-02 19:25 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel

2.6.14-rc3-rt1 up and running for me. No problems at all building it.
I've got Jack running at <5mS and doing light streaming from 1394
drives. I'm using realtime-lsm.

The only problem I had over the last few days happened with
2.6.14-rc2-rt7. One time, when attempting to shutdown, the machine
hung after the 'Unloading Alsa modules...[OK]' step.

I'm going to be doing some composition/recording in Ardour this week.
I'll use one of these two RC kernels and see how it goes.

Cheers,
Mark

On 10/2/05, Mark Knecht <markknecht@gmail.com> wrote:
> Thanks Ingo. 2.6.14-rc2-rt7 on AMD64 has been working well for me the
> last few days. (After finally getting it to build!) I expect that I'll
> build 2.6.14-rc3-rt1 today.
>
> Cheers,
> Mark
>
> On 10/2/05, Ingo Molnar <mingo@elte.hu> wrote:
> >
> > i have released the 2.6.14-rc3-rt1 tree, which can be downloaded from
> > the usual place:
> >
> >   http://redhat.com/~mingo/realtime-preempt/
> >
> > the biggest change is the merge of the generic ARM-irq patches into the
> > -rt tree, and a port of -rt to the ARM platform, by Thomas Gleixner and
> > John Cooper.  There are also lots of updates and cleanups in the ktimer
> > code.  Also, x64 should work again.  Plus smaller changes all around.
> >
> > Changes since 2.6.14-rc2-rt2:
> >
> >  - ARM-genirq code (Thomas Gleixner, me - testing by lots of people)
> >
> >  - latency tracing on ARM (John Cooper)
> >
> >  - port of -rt to ARM (Thomas Gleixner)
> >
> >  - lots of ktimer updates/cleanups (Thomas Gleixner)
> >
> >  - NTFS bit-spinlock fix (Eran Mann)
> >
> >  - gcc4 build fix (Daniel Walker)
> >
> >  - fix "No Forced Preemption (Server)" build problems
> >    (reported by Mark Knecht)
> >
> >  - convert epca_lock to the new syntax (Daniel Walker)
> >
> >  - typo fix in latency-hist prototype (Clark Williams)
> >
> >  - netlink build fix (Eran Mann)
> >
> >  - dccp build fix (Eran Mann)
> >
> >  - x64 build fixes
> >
> >  - fix audit.c compilation error
> >
> >  - merge to 2.6.14-rc3
> >
> >  - cpufreq build fix
> >
> >  - pcmcia build fix
> >
> >  - XFS build fix
> >
> > to build a 2.6.14-rc3-rt1 tree, the following patches should be applied:
> >
> >   http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.tar.bz2
> >   http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.14-rc3.bz2
> >   http://redhat.com/~mingo/realtime-preempt/patch-2.6.14-rc3-rt1
> >
> >         Ingo
> >
>

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

* Re: 2.6.14-rc3-rt1
  2005-10-02 15:18   ` 2.6.14-rc3-rt1 Ingo Molnar
  2005-10-02 15:42     ` 2.6.14-rc3-rt1 Mark Knecht
@ 2005-10-02 20:51     ` Felix Oxley
  2005-10-02 21:55       ` 2.6.14-rc3-rt1 Felix Oxley
  2005-10-03  6:33       ` 2.6.14-rc3-rt1 Ingo Molnar
  1 sibling, 2 replies; 46+ messages in thread
From: Felix Oxley @ 2005-10-02 20:51 UTC (permalink / raw)
  To: linux-kernel; +Cc: Ingo Molnar, ralf


I have a compile error in drivers/net/hamradio/mkiss.c

	CC [M]  drivers/net/hamradio/mkiss.o
	drivers/net/hamradio/mkiss.c:625: error: 
	RW_LOCK_UNLOCKED’ undeclared here (not in a function)

Due to the fact that

	RW_LOCK_UNLOCKED 

has not been converted to the form

	RW_LOCK_UNLOCKED(name.lock)

by the RT patch.

But I don't actually need this module anyway. :-)
regards,
Felix

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

* Re: 2.6.14-rc3-rt1
  2005-10-02 20:51     ` 2.6.14-rc3-rt1 Felix Oxley
@ 2005-10-02 21:55       ` Felix Oxley
  2005-10-03  6:33       ` 2.6.14-rc3-rt1 Ingo Molnar
  1 sibling, 0 replies; 46+ messages in thread
From: Felix Oxley @ 2005-10-02 21:55 UTC (permalink / raw)
  To: linux-kernel; +Cc: ralf, Ingo Molnar

On Sunday 02 October 2005 21:51, Felix Oxley wrote:
> I have a compile error in drivers/net/hamradio/mkiss.c

I should have said - I have added Ralf Baechle to this post as I think he is 
the maintainer for this module.

Ralf, I hope that is OK? :-)

regards,
Felix

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

* Re: 2.6.14-rc3-rt1
  2005-10-02 20:51     ` 2.6.14-rc3-rt1 Felix Oxley
  2005-10-02 21:55       ` 2.6.14-rc3-rt1 Felix Oxley
@ 2005-10-03  6:33       ` Ingo Molnar
  1 sibling, 0 replies; 46+ messages in thread
From: Ingo Molnar @ 2005-10-03  6:33 UTC (permalink / raw)
  To: Felix Oxley; +Cc: linux-kernel, ralf


* Felix Oxley <lkml@oxley.org> wrote:

> I have a compile error in drivers/net/hamradio/mkiss.c
> 
> 	CC [M]  drivers/net/hamradio/mkiss.o
> 	drivers/net/hamradio/mkiss.c:625: error: 
> 	RW_LOCK_UNLOCKED’ undeclared here (not in a function)
> 
> Due to the fact that
> 
> 	RW_LOCK_UNLOCKED 
> 
> has not been converted to the form
> 
> 	RW_LOCK_UNLOCKED(name.lock)
> 
> by the RT patch.

i've applied the cleanup below to my tree - it might as well go upstream 
too, it's slightly more compact than the explicit initializer.

	Ingo

Signed-off-by: Ingo Molnar <mingo@elte.hu>

Index: linux/drivers/net/hamradio/mkiss.c
===================================================================
--- linux.orig/drivers/net/hamradio/mkiss.c
+++ linux/drivers/net/hamradio/mkiss.c
@@ -622,7 +622,7 @@ static void ax_setup(struct net_device *
  * best way to fix this is to use a rwlock in the tty struct, but for now we
  * use a single global rwlock for all ttys in ppp line discipline.
  */
-static rwlock_t disc_data_lock = RW_LOCK_UNLOCKED;
+static DEFINE_RWLOCK(disc_data_lock);
 
 static struct mkiss *mkiss_get(struct tty_struct *tty)
 {

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

* Re: 2.6.14-rc3-rt1
  2005-10-02 19:25       ` 2.6.14-rc3-rt1 Mark Knecht
@ 2005-10-06 17:13         ` Steven Rostedt
  2005-10-07 11:09           ` [patch] pcmcia-shutdown-fix.patch Ingo Molnar
  0 siblings, 1 reply; 46+ messages in thread
From: Steven Rostedt @ 2005-10-06 17:13 UTC (permalink / raw)
  To: Mark Knecht; +Cc: Ingo Molnar, linux-kernel, linux-pcmcia



On Sun, 2 Oct 2005, Mark Knecht wrote:

>
> The only problem I had over the last few days happened with
> 2.6.14-rc2-rt7. One time, when attempting to shutdown, the machine
> hung after the 'Unloading Alsa modules...[OK]' step.

Acutally it may be the next step.  Do you have pcmcia configured?  I've
been noticing that my system has been locking up on shutdown of the
pcmcia.

Ingo, here's the patch.  This should probably go upstream too since it can
happen there too.  The pccardd thread has a race in it that it can
shutdown in the TASK_INTERRUPTIBLE state.  Here's the fix.

-- Steve

PS. Thanks for the info on quilt ;-)

Index: linux-rt-quilt/drivers/pcmcia/cs.c
===================================================================
--- linux-rt-quilt.orig/drivers/pcmcia/cs.c	2005-10-06 08:03:56.000000000 -0400
+++ linux-rt-quilt/drivers/pcmcia/cs.c	2005-10-06 12:48:02.000000000 -0400
@@ -689,6 +689,9 @@
 		schedule();
 		try_to_freeze();
 	}
+	/* make sure we are running before we exit */
+	set_current_state(TASK_RUNNING);
+
 	remove_wait_queue(&skt->thread_wait, &wait);

 	/* remove from the device core */

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

* [patch] pcmcia-shutdown-fix.patch
  2005-10-06 17:13         ` 2.6.14-rc3-rt1 Steven Rostedt
@ 2005-10-07 11:09           ` Ingo Molnar
  2005-10-07 19:17             ` Russell King
  0 siblings, 1 reply; 46+ messages in thread
From: Ingo Molnar @ 2005-10-07 11:09 UTC (permalink / raw)
  To: Dominik Brodowski; +Cc: Mark Knecht, linux-kernel, linux-pcmcia, Steven Rostedt


* Steven Rostedt <rostedt@goodmis.org> wrote:

> Ingo, here's the patch.  This should probably go upstream too since it 
> can happen there too.  The pccardd thread has a race in it that it can 
> shutdown in the TASK_INTERRUPTIBLE state.  Here's the fix.

ah, certainly makes sense. Dominik, does it look good to you too? Patch 
below is for upstream.

	Ingo

----

The pccardd thread has a race in it that it can shutdown in the 
TASK_INTERRUPTIBLE state. Found on the -rt kernel.

From: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

--

 drivers/pcmcia/cs.c |    3 +++
 1 files changed, 3 insertions(+)

Index: linux/drivers/pcmcia/cs.c
===================================================================
--- linux.orig/drivers/pcmcia/cs.c
+++ linux/drivers/pcmcia/cs.c
@@ -689,6 +689,9 @@ static int pccardd(void *__skt)
 		schedule();
 		try_to_freeze();
 	}
+	/* make sure we are running before we exit */
+	set_current_state(TASK_RUNNING);
+
 	remove_wait_queue(&skt->thread_wait, &wait);
 
 	/* remove from the device core */

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

* Re: [patch] pcmcia-shutdown-fix.patch
  2005-10-07 11:09           ` [patch] pcmcia-shutdown-fix.patch Ingo Molnar
@ 2005-10-07 19:17             ` Russell King
  2005-10-07 19:46               ` Steven Rostedt
  2005-10-10 15:13               ` Steven Rostedt
  0 siblings, 2 replies; 46+ messages in thread
From: Russell King @ 2005-10-07 19:17 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Dominik Brodowski, Mark Knecht, linux-kernel, linux-pcmcia,
	Steven Rostedt

On Fri, Oct 07, 2005 at 01:09:14PM +0200, Ingo Molnar wrote:
> 
> * Steven Rostedt <rostedt@goodmis.org> wrote:
> 
> > Ingo, here's the patch.  This should probably go upstream too since it 
> > can happen there too.  The pccardd thread has a race in it that it can 
> > shutdown in the TASK_INTERRUPTIBLE state.  Here's the fix.
> 
> ah, certainly makes sense. Dominik, does it look good to you too? Patch 
> below is for upstream.

Looks correct to me (I'm the author of this code.)  Since it's
a bug fix, please send it upstream ASAP.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core

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

* Re: [patch] pcmcia-shutdown-fix.patch
  2005-10-07 19:17             ` Russell King
@ 2005-10-07 19:46               ` Steven Rostedt
  2005-10-10 15:13               ` Steven Rostedt
  1 sibling, 0 replies; 46+ messages in thread
From: Steven Rostedt @ 2005-10-07 19:46 UTC (permalink / raw)
  To: Russell King
  Cc: Ingo Molnar, Dominik Brodowski, Mark Knecht, linux-kernel, linux-pcmcia



On Fri, 7 Oct 2005, Russell King wrote:

> On Fri, Oct 07, 2005 at 01:09:14PM +0200, Ingo Molnar wrote:
> >
> > * Steven Rostedt <rostedt@goodmis.org> wrote:
> >
> > > Ingo, here's the patch.  This should probably go upstream too since it
> > > can happen there too.  The pccardd thread has a race in it that it can
> > > shutdown in the TASK_INTERRUPTIBLE state.  Here's the fix.
> >
> > ah, certainly makes sense. Dominik, does it look good to you too? Patch
> > below is for upstream.
>
> Looks correct to me (I'm the author of this code.)  Since it's
> a bug fix, please send it upstream ASAP.
>

Russell,

I believe that the email that Ingo was sending was an upstream patch.  You
cut out the patch part in this reply.  I'm sure if you just Ack that patch
and CC it to the powers that be, it will go in.

-- Steve


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

* Re: [patch] pcmcia-shutdown-fix.patch
  2005-10-07 19:17             ` Russell King
  2005-10-07 19:46               ` Steven Rostedt
@ 2005-10-10 15:13               ` Steven Rostedt
  2005-10-10 15:37                 ` Steven Rostedt
  1 sibling, 1 reply; 46+ messages in thread
From: Steven Rostedt @ 2005-10-10 15:13 UTC (permalink / raw)
  To: Russell King
  Cc: Ingo Molnar, Dominik Brodowski, Mark Knecht, linux-kernel,
	linux-pcmcia, Andrew Morton, Linus Torvalds


On Fri, 7 Oct 2005, Russell King wrote:

> On Fri, Oct 07, 2005 at 01:09:14PM +0200, Ingo Molnar wrote:
> >
> > * Steven Rostedt <rostedt@goodmis.org> wrote:
> >
> > > Ingo, here's the patch.  This should probably go upstream too since it
> > > can happen there too.  The pccardd thread has a race in it that it can
> > > shutdown in the TASK_INTERRUPTIBLE state.  Here's the fix.
> >
> > ah, certainly makes sense. Dominik, does it look good to you too? Patch
> > below is for upstream.
>
> Looks correct to me (I'm the author of this code.)  Since it's
> a bug fix, please send it upstream ASAP.
>

Just in case this was missed and hasn't been incorporated.  Here's the
patch once again:

-- Steve

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>

Index: linux-2.6.14-rc3/drivers/pcmcia/cs.c
===================================================================
--- linux-2.6.14-rc3/drivers/pcmcia/cs.c.orig	2005-10-06 06:56:17.000000000 -0400
+++ linux-2.6.14-rc3/drivers/pcmcia/cs.c	2005-10-10 11:05:09.000000000 -0400
@@ -689,6 +689,9 @@
 		schedule();
 		try_to_freeze();
 	}
+	/* make sure we are running before we exit */
+	set_current_state(TASK_RUNNING);
+
 	remove_wait_queue(&skt->thread_wait, &wait);

 	/* remove from the device core */

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

* Re: [patch] pcmcia-shutdown-fix.patch
  2005-10-10 15:13               ` Steven Rostedt
@ 2005-10-10 15:37                 ` Steven Rostedt
  0 siblings, 0 replies; 46+ messages in thread
From: Steven Rostedt @ 2005-10-10 15:37 UTC (permalink / raw)
  To: Russell King
  Cc: Ingo Molnar, Dominik Brodowski, Mark Knecht, linux-kernel,
	linux-pcmcia, Andrew Morton, Linus Torvalds



On Mon, 10 Oct 2005, Steven Rostedt wrote:

>
> On Fri, 7 Oct 2005, Russell King wrote:
>
> > On Fri, Oct 07, 2005 at 01:09:14PM +0200, Ingo Molnar wrote:
> > >
> > > * Steven Rostedt <rostedt@goodmis.org> wrote:
> > >
> > > > Ingo, here's the patch.  This should probably go upstream too since it
> > > > can happen there too.  The pccardd thread has a race in it that it can
> > > > shutdown in the TASK_INTERRUPTIBLE state.  Here's the fix.
> > >
> > > ah, certainly makes sense. Dominik, does it look good to you too? Patch
> > > below is for upstream.
> >
> > Looks correct to me (I'm the author of this code.)  Since it's
> > a bug fix, please send it upstream ASAP.
> >
>
> Just in case this was missed and hasn't been incorporated.  Here's the
> patch once again:
>

Oh, and I forgot to add the write-up that Ingo did to explain the patch.

----

The pccardd thread has a race in it that it can shutdown in the
TASK_INTERRUPTIBLE state. Found on the -rt kernel.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>


> -- Steve
>
> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
>
> Index: linux-2.6.14-rc3/drivers/pcmcia/cs.c
> ===================================================================
> --- linux-2.6.14-rc3/drivers/pcmcia/cs.c.orig	2005-10-06 06:56:17.000000000 -0400
> +++ linux-2.6.14-rc3/drivers/pcmcia/cs.c	2005-10-10 11:05:09.000000000 -0400
> @@ -689,6 +689,9 @@
>  		schedule();
>  		try_to_freeze();
>  	}
> +	/* make sure we are running before we exit */
> +	set_current_state(TASK_RUNNING);
> +
>  	remove_wait_queue(&skt->thread_wait, &wait);
>
>  	/* remove from the device core */
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

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

end of thread, other threads:[~2005-10-10 15:38 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-09-13 10:00 2.6.13-rt6, ktimer subsystem Ingo Molnar
2005-09-13 19:59 ` Lee Revell
2005-09-13 20:06   ` Lee Revell
2005-09-13 20:10   ` Ingo Molnar
2005-09-13 20:36     ` Lee Revell
2005-09-15  7:55       ` Ingo Molnar
2005-09-15 11:37         ` Ingo Molnar
2005-09-14 15:56 ` Darren Hart
2005-09-14 22:09   ` Darren Hart
2005-09-14 19:38 ` George Anzinger
2005-09-15  2:25   ` Thomas Gleixner
2005-09-15 22:35     ` George Anzinger
2005-09-15 22:53       ` Thomas Gleixner
2005-09-15 23:10         ` George Anzinger
2005-09-15 23:09       ` Daniel Walker
2005-09-16  0:08         ` George Anzinger
2005-09-15  9:20   ` Ingo Molnar
2005-09-15 23:04     ` George Anzinger
2005-09-15 23:20       ` Thomas Gleixner
2005-09-15  9:43 ` Roman Zippel
2005-09-26  7:02 ` 2.6.14-rc2-rt2 Ingo Molnar
2005-09-27  6:13   ` 2.6.14-rc2-rt2 Eran Mann
2005-09-27 10:33     ` 2.6.14-rc2-rt2 Ingo Molnar
2005-09-27 16:59   ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
2005-09-27 22:15     ` 2.6.14-rc2-rt2 Thomas Gleixner
2005-09-27 23:11       ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
2005-09-27 23:10     ` 2.6.14-rc2-rt2 Daniel Walker
2005-09-28  3:04       ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
2005-09-28  9:48         ` 2.6.14-rc2-rt2 Ingo Molnar
2005-09-28 16:34           ` 2.6.14-rc2-rt2 Fernando Lopez-Lezcano
2005-09-29  9:07             ` 2.6.14-rc2-rt2 Eran Mann
2005-09-28  9:10   ` 2.6.14-rc2-rt2 Peter Zijlstra
2005-09-29 16:45   ` 2.6.14-rc2-rt2 Badari Pulavarty
2005-09-30 10:58     ` 2.6.14-rc2-rt2 Ingo Molnar
2005-10-02 15:18   ` 2.6.14-rc3-rt1 Ingo Molnar
2005-10-02 15:42     ` 2.6.14-rc3-rt1 Mark Knecht
2005-10-02 19:25       ` 2.6.14-rc3-rt1 Mark Knecht
2005-10-06 17:13         ` 2.6.14-rc3-rt1 Steven Rostedt
2005-10-07 11:09           ` [patch] pcmcia-shutdown-fix.patch Ingo Molnar
2005-10-07 19:17             ` Russell King
2005-10-07 19:46               ` Steven Rostedt
2005-10-10 15:13               ` Steven Rostedt
2005-10-10 15:37                 ` Steven Rostedt
2005-10-02 20:51     ` 2.6.14-rc3-rt1 Felix Oxley
2005-10-02 21:55       ` 2.6.14-rc3-rt1 Felix Oxley
2005-10-03  6:33       ` 2.6.14-rc3-rt1 Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).