2.6.13-rt6, ktimer subsystem
Subsystems (6)
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
Quoted 4 lines · Ingo Molnar
i have released the 2.6.13-rt6 tree, which can be downloaded from the usual place:
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
Quoted 4 lines · Lee Revell
Quoted 3 lines · Ingo Molnar
i have released the 2.6.13-rt6 tree, which can be downloaded from the usual place:
Quoted 8 lines
Quoted 1 line
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
Quoted 4 lines · Lee Revell
Quoted 3 lines · Ingo Molnar
i have released the 2.6.13-rt6 tree, which can be downloaded from the usual place:
Quoted 8 lines
Quoted 1 line
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
Quoted 11 lines · Ingo Molnar
Quoted 9 lines · Lee Revell
Quoted 4 lines · Ingo Molnar
i have released the 2.6.13-rt6 tree, which can be downloaded from the usual place:
Ingo,
Quoted 7 lines
Quoted 3 lines
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
Quoted 9 lines · Lee Revell
Quoted 3 lines
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
Quoted 11 lines · Ingo Molnar
Quoted 8 lines · Lee Revell
Quoted 3 lines
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.
Quoted 5 lines
Quoted 1 line
Can this be worked around by disabling
CONFIG_HIGH_RES_TIMERS?on x64
HIGH_RES_TIMERSis 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
Quoted 4 lines · Ingo Molnar
i have released the 2.6.13-rt6 tree, which can be downloaded from the usual place:
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,
Signature · 5 lines
Darren Hart IBM Linux Technology Center Linux Kernel Team Phone: 503 578 3185 T/L: 775 3185
Quoted 7 lines · Darren Hart
Quoted 4 lines · Ingo Molnar
i have released the 2.6.13-rt6 tree, which can be downloaded from the usual place:
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.
Signature · 5 lines
Darren Hart IBM Linux Technology Center Linux Kernel Team Phone: 503 578 3185 T/L: 775 3185
Quoted 9 lines · Ingo Molnar
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.cis now using preemptible locks again, removing thecascade()worst-case latency. The cleanup factor is high as well: the ktimer framework slashes 1300+ lines off the HRT code. Seekernel/ktimer.cfor 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 [email protected]) 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...
Signature · 2 lines
George Anzinger [email protected] HRT (High-res-timers): http://sourceforge.net/projects/high-res-timers/
Quoted 5 lines · George Anzinger
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 [email protected]) 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.
Quoted 4 lines
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.
Quoted 1 line
This is especially true in the embedded market.
I'm well aware of the embedded market constraints.
Quoted 2 lines
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.
Quoted 4 lines
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
Quoted 5 lines
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 withCLOCK_MONOTONICwhich 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.
Quoted 2 lines
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
Quoted 10 lines · Thomas Gleixner
Quoted 1 line · George Anzinger
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 [email protected]) 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->HRTfork.
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.
Quoted 7 lines
Quoted 5 lines
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.
Quoted 8 lines
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...
Quoted 2 lines
~
Quoted 5 lines
Quoted 2 lines
The rbtree is a high overhead tree. I suspect performance problems here.
1. rbtree is available out of the box
True.
Quoted 10 lines
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.
Quoted 10 lines
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.
Quoted 55 lines
Quoted 3 lines
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_FIFOtasks usingclock_nanosleep(ABSTIME)
base interval = 1000 us, offset per task = 50 us tracing each latency value to disk16 cyclic
SCHED_OTHERtasks usingclock_nanosleep(ABSTIME)base interval = 1000 us, offset per task = 500 us tracing each latency value to diskwhile true; do hackbench 50; done
cat/dev/hda| nc atlas 4711This injects a (insane) load avg of >600 permantely
2.6.13-rt4 (cascade based implementation)
16 cyclicSCHED_FIFOtasks usingclock_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 652.6.13-rt11 (ktimers based implementation)
16 cyclicSCHED_FIFOtasks usingclock_nanosleep(ABSTIME)task loops min max average sigma prio
Quoted 16 lines
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?
Quoted 22 lines
Quoted 4 lines
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 withCLOCK_MONOTONICwhich 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/timeYYandkernel/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.
Quoted 1 line
These are only the concerns I have from having a rather quick look at the code. I am sure that there are other issues...
Quoted 8 lines
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_nanosleeptestabs_timer_test
4-1clock_settimetestclock_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.
Quoted 3 lines
- The performance improvements in combination with simpler code is an argument of itself
Signature · 2 lines
George Anzinger [email protected] HRT (High-res-timers): http://sourceforge.net/projects/high-res-timers/
Quoted 10 lines · George Anzinger
Quoted 7 lines
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.
Quoted 3 lines
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.
Quoted 5 lines
Quoted 4 lines
- 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).
Quoted 8 lines
Your mileage seems to differ from mine. Here is what I get from ./do_test:
The following tests failed:clock_nanosleeptestabs_timer_test
4-1clock_settimetestclock_gettimetest2
2timer_test
Hmm. Except for the 2timer_test, where my source seems to be broken it works here.
Quoted 3 lines
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
Thomas Gleixner wrote:
~
Quoted 15 lines
Quoted 5 lines
Quoted 4 lines
- 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).
Quoted 8 lines
Your mileage seems to differ from mine. Here is what I get from ./do_test:
The following tests failed:clock_nanosleeptestabs_timer_test
4-1clock_settimetestclock_gettimetest2
2timer_test
Quoted 2 lines
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...
Quoted 8 lines
Quoted 3 lines
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.
Quoted 10 lines
tglx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Signature · 2 lines
George Anzinger [email protected] HRT (High-res-timers): http://sourceforge.net/projects/high-res-timers/
Quoted 6 lines · George Anzinger
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.
Quoted 9 lines
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
Quoted 7 lines · Daniel Walker
Quoted 3 lines · George Anzinger
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.
Quoted 9 lines
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.
Signature · 2 lines
George Anzinger [email protected] HRT (High-res-timers): http://sourceforge.net/projects/high-res-timers/
Quoted 10 lines · George Anzinger
Quoted 4 lines
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 [email protected]) 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.
Quoted 9 lines
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.
Quoted 2 lines
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.
Quoted 2 lines
[...] 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
Quoted 9 lines · Ingo Molnar
Quoted 3 lines · George Anzinger
Quoted 1 line
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 [email protected]) 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?
Quoted 8 lines
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.
Quoted 8 lines
Quoted 5 lines
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
_onthe micro microlevel_. 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.
Quoted 2 lines
_Byfar_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.
Quoted 2 lines
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
_mustget much muchcleaner_. Thomas has been doing great work in this area.
Agreed, I just wish we could see it a bit earlier...
Quoted 8 lines
Quoted 3 lines
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.
Quoted 6 lines
Quoted 1 line
[...] 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.
Quoted 2 lines
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.
Quoted 5 lines
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.
Signature · 2 lines
George Anzinger [email protected] HRT (High-res-timers): http://sourceforge.net/projects/high-res-timers/
Quoted 3 lines · George Anzinger
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
Hi,
Quoted 3 lines · Ingo Molnar
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
2.6.14-rc2-rt2
In reply to Ingo Molnari 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
Re: 2.6.14-rc2-rt2
The attached 2 patches (against 2.6.14-rc2-rt3) seem to be required to compile dccp and nfnetlink (only compile-tested).
Quoted 4 lines · Ingo Molnar
i have released the 2.6.14-rc2-rt2 tree, which can be downloaded from the usual place:
...
net/netfilter/nfnetlink_queue.c +1 -1
@@ -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 ))
net/netfilter/nfnetlink_log.c +1 -1
@@ -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 );
net/dccp/ipv4.c +2 -2
@@ -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 , };
net/dccp/minisocks.c +1 -1
@@ -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),
Ingo Molnar
AppliedRe: 2.6.14-rc2-rt2
Quoted 2 lines · Eran Mann
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
Re: 2.6.14-rc2-rt2
In reply to Ingo MolnarQuoted 9 lines · Ingo Molnar
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
# 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=yCONFIG_CLEAN_COMPILE=yCONFIG_BROKEN_ON_SMP=yCONFIG_LOCK_KERNEL=yCONFIG_INIT_ENV_ARG_LIMIT=32
#
# General setup
#CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not setCONFIG_SWAP=yCONFIG_SYSVIPC=yCONFIG_POSIX_MQUEUE=yCONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not setCONFIG_SYSCTL=yCONFIG_AUDIT=yCONFIG_AUDITSYSCALL=yCONFIG_HOTPLUG=yCONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not setCONFIG_INITRAMFS_SOURCE=""
# CONFIG_EMBEDDED is not setCONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not setCONFIG_KALLSYMS_EXTRA_PASS=yCONFIG_PRINTK=yCONFIG_BUG=yCONFIG_BASE_FULL=yCONFIG_FUTEX=yCONFIG_EPOLL=yCONFIG_SHMEM=yCONFIG_CC_ALIGN_FUNCTIONS=0CONFIG_CC_ALIGN_LABELS=0CONFIG_CC_ALIGN_LOOPS=0CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not setCONFIG_BASE_SMALL=0
#
# Loadable module support
#CONFIG_MODULES=yCONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not setCONFIG_OBSOLETE_MODPARM=yCONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not setCONFIG_MODULE_SIG=y
# CONFIG_MODULE_SIG_FORCE is not setCONFIG_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 setCONFIG_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 setCONFIG_X86_GENERIC=yCONFIG_X86_CMPXCHG=yCONFIG_X86_XADD=yCONFIG_X86_L1_CACHE_SHIFT=7CONFIG_GENERIC_CALIBRATE_DELAY=yCONFIG_X86_PPRO_FENCE=yCONFIG_X86_WP_WORKS_OK=yCONFIG_X86_INVLPG=yCONFIG_X86_BSWAP=yCONFIG_X86_POPAD_OK=yCONFIG_X86_GOOD_APIC=yCONFIG_X86_INTEL_USERCOPY=yCONFIG_X86_USE_PPRO_CHECKSUM=yCONFIG_HPET_TIMER=yCONFIG_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 setCONFIG_PREEMPT_DESKTOP=y
# CONFIG_PREEMPT_RT is not setCONFIG_PREEMPT=yCONFIG_PREEMPT_SOFTIRQS=yCONFIG_PREEMPT_HARDIRQS=y
# CONFIG_SPINLOCK_BKL is not setCONFIG_PREEMPT_BKL=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_RCU_TORTURE_TEST is not setCONFIG_ASM_SEMAPHORES=yCONFIG_RWSEM_XCHGADD_ALGORITHM=yCONFIG_X86_UP_APIC=yCONFIG_X86_UP_IOAPIC=yCONFIG_X86_LOCAL_APIC=yCONFIG_X86_IO_APIC=y
# CONFIG_X86_IOAPIC_FAST is not setCONFIG_X86_TSC=yCONFIG_X86_MCE=y
# CONFIG_X86_MCE_NONFATAL is not set
# CONFIG_X86_MCE_P4THERMAL is not setCONFIG_TOSHIBA=mCONFIG_I8K=mCONFIG_X86_REBOOTFIXUPS=yCONFIG_MICROCODE=mCONFIG_X86_MSR=mCONFIG_X86_CPUID=m
#
# Firmware Drivers
#CONFIG_EDD=mCONFIG_DELL_RBU=mCONFIG_DCDBAS=m
# CONFIG_NOHIGHMEM is not setCONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not setCONFIG_HIGHMEM=yCONFIG_SELECT_MEMORY_MODEL=yCONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not setCONFIG_FLATMEM=yCONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not setCONFIG_HIGHPTE=y
# CONFIG_MATH_EMULATION is not setCONFIG_MTRR=y
# CONFIG_EFI is not setCONFIG_REGPARM=yCONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not setCONFIG_HZ_1000=yCONFIG_HZ=1000CONFIG_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=yCONFIG_ACPI_SLEEP=yCONFIG_ACPI_SLEEP_PROC_FS=y CONFIG_ACPI_SLEEP_PROC_SLEEP=yCONFIG_ACPI_AC=mCONFIG_ACPI_BATTERY=mCONFIG_ACPI_BUTTON=mCONFIG_ACPI_VIDEO=mCONFIG_ACPI_HOTKEY=mCONFIG_ACPI_FAN=yCONFIG_ACPI_PROCESSOR=yCONFIG_ACPI_THERMAL=yCONFIG_ACPI_ASUS=mCONFIG_ACPI_IBM=mCONFIG_ACPI_TOSHIBA=m CONFIG_ACPI_BLACKLIST_YEAR=2001
# CONFIG_ACPI_DEBUG is not setCONFIG_ACPI_EC=yCONFIG_ACPI_POWER=yCONFIG_ACPI_SYSTEM=yCONFIG_X86_PM_TIMER=yCONFIG_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 setCONFIG_APM_CPU_IDLE=y
# CONFIG_APM_DISPLAY_BLANK is not setCONFIG_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=yCONFIG_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=mCONFIG_X86_POWERNOW_K6=mCONFIG_X86_POWERNOW_K7=yCONFIG_X86_POWERNOW_K7_ACPI=yCONFIG_X86_POWERNOW_K8=mCONFIG_X86_POWERNOW_K8_ACPI=y
# CONFIG_X86_GX_SUSPMOD is not setCONFIG_X86_SPEEDSTEP_CENTRINO=yCONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
# CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE is not setCONFIG_X86_SPEEDSTEP_ICH=yCONFIG_X86_SPEEDSTEP_SMI=mCONFIG_X86_P4_CLOCKMOD=mCONFIG_X86_CPUFREQ_NFORCE2=mCONFIG_X86_LONGRUN=yCONFIG_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=yCONFIG_PCI_BIOS=yCONFIG_PCI_DIRECT=yCONFIG_PCI_MMCONFIG=yCONFIG_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=yCONFIG_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 setCONFIG_PCMCIA=mCONFIG_PCMCIA_LOAD_CIS=yCONFIG_PCMCIA_IOCTL=yCONFIG_CARDBUS=y
#
# PC-card bridges
#CONFIG_YENTA=mCONFIG_PD6729=mCONFIG_I82092=mCONFIG_I82365=mCONFIG_TCIC=mCONFIG_PCMCIA_PROBE=yCONFIG_PCCARD_NONSTATIC=m
#
# PCI Hotplug Support
#CONFIG_HOTPLUG_PCI=y
# CONFIG_HOTPLUG_PCI_FAKE is not setCONFIG_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 setCONFIG_HOTPLUG_PCI_SHPC=mCONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE=y
#
# Executable file formats
#CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not setCONFIG_BINFMT_MISC=y
#
# Networking
#CONFIG_NET=y
#
# Networking options
#CONFIG_PACKET=yCONFIG_PACKET_MMAP=yCONFIG_UNIX=yCONFIG_XFRM=yCONFIG_XFRM_USER=yCONFIG_NET_KEY=mCONFIG_INET=yCONFIG_IP_MULTICAST=yCONFIG_IP_ADVANCED_ROUTER=yCONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not setCONFIG_IP_FIB_HASH=yCONFIG_IP_MULTIPLE_TABLES=yCONFIG_IP_ROUTE_FWMARK=yCONFIG_IP_ROUTE_MULTIPATH=y
# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not setCONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not setCONFIG_NET_IPIP=mCONFIG_NET_IPGRE=mCONFIG_NET_IPGRE_BROADCAST=yCONFIG_IP_MROUTE=yCONFIG_IP_PIMSM_V1=yCONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not setCONFIG_SYN_COOKIES=yCONFIG_INET_AH=mCONFIG_INET_ESP=mCONFIG_INET_IPCOMP=mCONFIG_INET_TUNNEL=mCONFIG_INET_DIAG=yCONFIG_INET_TCP_DIAG=yCONFIG_TCP_CONG_ADVANCED=y
#
# TCP congestion control
#CONFIG_TCP_CONG_BIC=mCONFIG_TCP_CONG_WESTWOOD=mCONFIG_TCP_CONG_HTCP=mCONFIG_TCP_CONG_HSTCP=mCONFIG_TCP_CONG_HYBLA=mCONFIG_TCP_CONG_VEGAS=mCONFIG_TCP_CONG_SCALABLE=m
#
# IP: Virtual Server Configuration
#CONFIG_IP_VS=m
# CONFIG_IP_VS_DEBUG is not setCONFIG_IP_VS_TAB_BITS=12
#
# IPVS transport protocol load balancing support
#CONFIG_IP_VS_PROTO_TCP=yCONFIG_IP_VS_PROTO_UDP=yCONFIG_IP_VS_PROTO_ESP=yCONFIG_IP_VS_PROTO_AH=y
#
# IPVS scheduler
#CONFIG_IP_VS_RR=mCONFIG_IP_VS_WRR=mCONFIG_IP_VS_LC=mCONFIG_IP_VS_WLC=mCONFIG_IP_VS_LBLC=mCONFIG_IP_VS_LBLCR=mCONFIG_IP_VS_DH=mCONFIG_IP_VS_SH=mCONFIG_IP_VS_SED=mCONFIG_IP_VS_NQ=m
#
# IPVS application helper
#CONFIG_IP_VS_FTP=mCONFIG_IPV6=mCONFIG_IPV6_PRIVACY=yCONFIG_INET6_AH=mCONFIG_INET6_ESP=mCONFIG_INET6_IPCOMP=mCONFIG_INET6_TUNNEL=mCONFIG_IPV6_TUNNEL=mCONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not setCONFIG_BRIDGE_NETFILTER=yCONFIG_NETFILTER_NETLINK=mCONFIG_NETFILTER_NETLINK_QUEUE=mCONFIG_NETFILTER_NETLINK_LOG=m
#
# IP: Netfilter Configuration
#CONFIG_IP_NF_CONNTRACK=mCONFIG_IP_NF_CT_ACCT=yCONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CONNTRACK_EVENTS is not setCONFIG_IP_NF_CONNTRACK_NETLINK=mCONFIG_IP_NF_CT_PROTO_SCTP=mCONFIG_IP_NF_FTP=mCONFIG_IP_NF_IRC=mCONFIG_IP_NF_NETBIOS_NS=mCONFIG_IP_NF_TFTP=mCONFIG_IP_NF_AMANDA=mCONFIG_IP_NF_PPTP=mCONFIG_IP_NF_QUEUE=mCONFIG_IP_NF_IPTABLES=mCONFIG_IP_NF_MATCH_LIMIT=mCONFIG_IP_NF_MATCH_IPRANGE=mCONFIG_IP_NF_MATCH_MAC=mCONFIG_IP_NF_MATCH_PKTTYPE=mCONFIG_IP_NF_MATCH_MARK=mCONFIG_IP_NF_MATCH_MULTIPORT=mCONFIG_IP_NF_MATCH_TOS=mCONFIG_IP_NF_MATCH_RECENT=mCONFIG_IP_NF_MATCH_ECN=mCONFIG_IP_NF_MATCH_DSCP=mCONFIG_IP_NF_MATCH_AH_ESP=mCONFIG_IP_NF_MATCH_LENGTH=mCONFIG_IP_NF_MATCH_TTL=mCONFIG_IP_NF_MATCH_TCPMSS=mCONFIG_IP_NF_MATCH_HELPER=mCONFIG_IP_NF_MATCH_STATE=mCONFIG_IP_NF_MATCH_CONNTRACK=mCONFIG_IP_NF_MATCH_OWNER=mCONFIG_IP_NF_MATCH_PHYSDEV=mCONFIG_IP_NF_MATCH_ADDRTYPE=mCONFIG_IP_NF_MATCH_REALM=mCONFIG_IP_NF_MATCH_SCTP=mCONFIG_IP_NF_MATCH_DCCP=mCONFIG_IP_NF_MATCH_COMMENT=mCONFIG_IP_NF_MATCH_CONNMARK=mCONFIG_IP_NF_MATCH_CONNBYTES=mCONFIG_IP_NF_MATCH_HASHLIMIT=mCONFIG_IP_NF_MATCH_STRING=mCONFIG_IP_NF_FILTER=mCONFIG_IP_NF_TARGET_REJECT=mCONFIG_IP_NF_TARGET_LOG=mCONFIG_IP_NF_TARGET_ULOG=mCONFIG_IP_NF_TARGET_TCPMSS=mCONFIG_IP_NF_NAT=mCONFIG_IP_NF_NAT_NEEDED=yCONFIG_IP_NF_TARGET_MASQUERADE=mCONFIG_IP_NF_TARGET_REDIRECT=mCONFIG_IP_NF_TARGET_NETMAP=mCONFIG_IP_NF_TARGET_SAME=mCONFIG_IP_NF_NAT_SNMP_BASIC=mCONFIG_IP_NF_NAT_IRC=mCONFIG_IP_NF_NAT_FTP=mCONFIG_IP_NF_NAT_TFTP=mCONFIG_IP_NF_NAT_AMANDA=mCONFIG_IP_NF_NAT_PPTP=mCONFIG_IP_NF_MANGLE=mCONFIG_IP_NF_TARGET_TOS=mCONFIG_IP_NF_TARGET_ECN=mCONFIG_IP_NF_TARGET_DSCP=mCONFIG_IP_NF_TARGET_MARK=mCONFIG_IP_NF_TARGET_CLASSIFY=mCONFIG_IP_NF_TARGET_TTL=mCONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not setCONFIG_IP_NF_RAW=mCONFIG_IP_NF_TARGET_NOTRACK=mCONFIG_IP_NF_ARPTABLES=mCONFIG_IP_NF_ARPFILTER=mCONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration (EXPERIMENTAL)
#
# CONFIG_IP6_NF_QUEUE is not setCONFIG_IP6_NF_IPTABLES=mCONFIG_IP6_NF_MATCH_LIMIT=mCONFIG_IP6_NF_MATCH_MAC=mCONFIG_IP6_NF_MATCH_RT=mCONFIG_IP6_NF_MATCH_OPTS=mCONFIG_IP6_NF_MATCH_FRAG=mCONFIG_IP6_NF_MATCH_HL=mCONFIG_IP6_NF_MATCH_MULTIPORT=mCONFIG_IP6_NF_MATCH_OWNER=mCONFIG_IP6_NF_MATCH_MARK=mCONFIG_IP6_NF_MATCH_IPV6HEADER=mCONFIG_IP6_NF_MATCH_AHESP=mCONFIG_IP6_NF_MATCH_LENGTH=mCONFIG_IP6_NF_MATCH_EUI64=mCONFIG_IP6_NF_MATCH_PHYSDEV=mCONFIG_IP6_NF_FILTER=mCONFIG_IP6_NF_TARGET_LOG=mCONFIG_IP6_NF_TARGET_REJECT=mCONFIG_IP6_NF_MANGLE=mCONFIG_IP6_NF_TARGET_MARK=mCONFIG_IP6_NF_TARGET_HL=mCONFIG_IP6_NF_RAW=m
#
# Bridge: Netfilter Configuration
#CONFIG_BRIDGE_NF_EBTABLES=mCONFIG_BRIDGE_EBT_BROUTE=mCONFIG_BRIDGE_EBT_T_FILTER=mCONFIG_BRIDGE_EBT_T_NAT=mCONFIG_BRIDGE_EBT_802_3=mCONFIG_BRIDGE_EBT_AMONG=mCONFIG_BRIDGE_EBT_ARP=mCONFIG_BRIDGE_EBT_IP=mCONFIG_BRIDGE_EBT_LIMIT=mCONFIG_BRIDGE_EBT_MARK=mCONFIG_BRIDGE_EBT_PKTTYPE=mCONFIG_BRIDGE_EBT_STP=mCONFIG_BRIDGE_EBT_VLAN=mCONFIG_BRIDGE_EBT_ARPREPLY=mCONFIG_BRIDGE_EBT_DNAT=mCONFIG_BRIDGE_EBT_MARK_T=mCONFIG_BRIDGE_EBT_REDIRECT=mCONFIG_BRIDGE_EBT_SNAT=mCONFIG_BRIDGE_EBT_LOG=mCONFIG_BRIDGE_EBT_ULOG=m
#
# DCCP Configuration (EXPERIMENTAL)
#CONFIG_IP_DCCP=mCONFIG_INET_DCCP_DIAG=m
#
# DCCP CCIDs Configuration (EXPERIMENTAL)
#CONFIG_IP_DCCP_CCID3=mCONFIG_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 setCONFIG_SCTP_HMAC_MD5=yCONFIG_ATM=mCONFIG_ATM_CLIP=m
# CONFIG_ATM_CLIP_NO_ICMP is not setCONFIG_ATM_LANE=m
# CONFIG_ATM_MPOA is not setCONFIG_ATM_BR2684=m
# CONFIG_ATM_BR2684_IPFILTER is not setCONFIG_BRIDGE=mCONFIG_VLAN_8021Q=m
# CONFIG_DECNET is not setCONFIG_LLC=y
# CONFIG_LLC2 is not setCONFIG_IPX=m
# CONFIG_IPX_INTERN is not setCONFIG_ATALK=mCONFIG_DEV_APPLETALK=yCONFIG_LTPC=mCONFIG_COPS=mCONFIG_COPS_DAYNA=yCONFIG_COPS_TANGENT=yCONFIG_IPDDP=mCONFIG_IPDDP_ENCAP=yCONFIG_IPDDP_DECAP=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not setCONFIG_NET_DIVERT=y
# CONFIG_ECONET is not setCONFIG_WAN_ROUTER=mCONFIG_NET_SCHED=yCONFIG_NET_SCH_CLK_JIFFIES=y
# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
# CONFIG_NET_SCH_CLK_CPU is not setCONFIG_NET_SCH_CBQ=mCONFIG_NET_SCH_HTB=mCONFIG_NET_SCH_HFSC=mCONFIG_NET_SCH_ATM=mCONFIG_NET_SCH_PRIO=mCONFIG_NET_SCH_RED=mCONFIG_NET_SCH_SFQ=mCONFIG_NET_SCH_TEQL=mCONFIG_NET_SCH_TBF=mCONFIG_NET_SCH_GRED=mCONFIG_NET_SCH_DSMARK=mCONFIG_NET_SCH_NETEM=mCONFIG_NET_SCH_INGRESS=mCONFIG_NET_QOS=yCONFIG_NET_ESTIMATOR=yCONFIG_NET_CLS=yCONFIG_NET_CLS_BASIC=mCONFIG_NET_CLS_TCINDEX=mCONFIG_NET_CLS_ROUTE4=mCONFIG_NET_CLS_ROUTE=yCONFIG_NET_CLS_FW=mCONFIG_NET_CLS_U32=mCONFIG_CLS_U32_PERF=yCONFIG_NET_CLS_IND=yCONFIG_CLS_U32_MARK=yCONFIG_NET_CLS_RSVP=mCONFIG_NET_CLS_RSVP6=mCONFIG_NET_EMATCH=yCONFIG_NET_EMATCH_STACK=32CONFIG_NET_EMATCH_CMP=mCONFIG_NET_EMATCH_NBYTE=mCONFIG_NET_EMATCH_U32=mCONFIG_NET_EMATCH_META=mCONFIG_NET_EMATCH_TEXT=mCONFIG_NET_CLS_ACT=y
# CONFIG_NET_ACT_POLICE is not setCONFIG_NET_ACT_GACT=m
# CONFIG_GACT_PROB is not setCONFIG_NET_ACT_MIRRED=mCONFIG_NET_ACT_IPT=mCONFIG_NET_ACT_PEDIT=mCONFIG_NET_ACT_SIMP=m
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not setCONFIG_IRDA=m
#
# IrDA protocols
#CONFIG_IRLAN=mCONFIG_IRNET=mCONFIG_IRCOMM=m
# CONFIG_IRDA_ULTRA is not set
#
# IrDA options
#CONFIG_IRDA_CACHE_LAST_LSAP=yCONFIG_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=yCONFIG_ESI_DONGLE=mCONFIG_ACTISYS_DONGLE=mCONFIG_TEKRAM_DONGLE=mCONFIG_LITELINK_DONGLE=mCONFIG_MA600_DONGLE=mCONFIG_GIRBIL_DONGLE=mCONFIG_MCP2120_DONGLE=mCONFIG_OLD_BELKIN_DONGLE=mCONFIG_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=mCONFIG_SIGMATEL_FIR=mCONFIG_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 setCONFIG_BT=mCONFIG_BT_L2CAP=mCONFIG_BT_SCO=mCONFIG_BT_RFCOMM=mCONFIG_BT_RFCOMM_TTY=yCONFIG_BT_BNEP=mCONFIG_BT_BNEP_MC_FILTER=yCONFIG_BT_BNEP_PROTO_FILTER=yCONFIG_BT_CMTP=mCONFIG_BT_HIDP=m
#
# Bluetooth device drivers
#CONFIG_BT_HCIUSB=mCONFIG_BT_HCIUSB_SCO=yCONFIG_BT_HCIUART=mCONFIG_BT_HCIUART_H4=yCONFIG_BT_HCIUART_BCSP=yCONFIG_BT_HCIUART_BCSP_TXCRC=yCONFIG_BT_HCIBCM203X=mCONFIG_BT_HCIBPA10X=mCONFIG_BT_HCIBFUSB=mCONFIG_BT_HCIDTL1=mCONFIG_BT_HCIBT3C=mCONFIG_BT_HCIBLUECARD=mCONFIG_BT_HCIBTUART=mCONFIG_BT_HCIVHCI=mCONFIG_IEEE80211=m
# CONFIG_IEEE80211_DEBUG is not setCONFIG_IEEE80211_CRYPT_WEP=mCONFIG_IEEE80211_CRYPT_CCMP=mCONFIG_IEEE80211_CRYPT_TKIP=m
#
# Device Drivers
#
#
# Generic Driver Options
#CONFIG_STANDALONE=yCONFIG_PREVENT_FIRMWARE_BUILD=yCONFIG_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 setCONFIG_MTD_CONCAT=mCONFIG_MTD_PARTITIONS=yCONFIG_MTD_REDBOOT_PARTS=mCONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
# CONFIG_MTD_REDBOOT_PARTS_READONLY is not setCONFIG_MTD_CMDLINE_PARTS=y
#
# User Modules And Translation Layers
#CONFIG_MTD_CHAR=mCONFIG_MTD_BLOCK=mCONFIG_MTD_BLOCK_RO=mCONFIG_FTL=mCONFIG_NFTL=mCONFIG_NFTL_RW=yCONFIG_INFTL=m
#
# RAM/ROM/Flash chip drivers
#CONFIG_MTD_CFI=mCONFIG_MTD_JEDECPROBE=mCONFIG_MTD_GEN_PROBE=m
# CONFIG_MTD_CFI_ADV_OPTIONS is not setCONFIG_MTD_MAP_BANK_WIDTH_1=yCONFIG_MTD_MAP_BANK_WIDTH_2=yCONFIG_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 setCONFIG_MTD_CFI_I1=yCONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not setCONFIG_MTD_CFI_INTELEXT=mCONFIG_MTD_CFI_AMDSTD=mCONFIG_MTD_CFI_AMDSTD_RETRY=3CONFIG_MTD_CFI_STAA=mCONFIG_MTD_CFI_UTIL=mCONFIG_MTD_RAM=mCONFIG_MTD_ROM=mCONFIG_MTD_ABSENT=m
#
# Mapping drivers for chip access
#CONFIG_MTD_COMPLEX_MAPPINGS=y
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_PNC2000 is not setCONFIG_MTD_SC520CDP=mCONFIG_MTD_NETSC520=mCONFIG_MTD_TS5500=mCONFIG_MTD_SBC_GXX=mCONFIG_MTD_AMD76XROM=m
# CONFIG_MTD_ICHXROM is not setCONFIG_MTD_SCB2_FLASH=m
# CONFIG_MTD_NETtel is not set
# CONFIG_MTD_DILNETPC is not setCONFIG_MTD_L440GX=mCONFIG_MTD_PCI=mCONFIG_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 setCONFIG_MTD_MTDRAM=mCONFIG_MTDRAM_TOTAL_SIZE=4096CONFIG_MTDRAM_ERASE_SIZE=128
# CONFIG_MTD_BLKMTD is not setCONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
#CONFIG_MTD_DOC2000=m
# CONFIG_MTD_DOC2001 is not setCONFIG_MTD_DOC2001PLUS=mCONFIG_MTD_DOCPROBE=mCONFIG_MTD_DOCECC=m
# CONFIG_MTD_DOCPROBE_ADVANCED is not setCONFIG_MTD_DOCPROBE_ADDRESS=0
#
# NAND Flash Device Drivers
#CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_VERIFY_WRITE is not setCONFIG_MTD_NAND_IDS=m
# CONFIG_MTD_NAND_DISKONCHIP is not setCONFIG_MTD_NAND_NANDSIM=y
#
# Parallel port support
#CONFIG_PARPORT=mCONFIG_PARPORT_PC=mCONFIG_PARPORT_SERIAL=m
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not setCONFIG_PARPORT_PC_PCMCIA=mCONFIG_PARPORT_NOT_PC=y
# CONFIG_PARPORT_GSC is not setCONFIG_PARPORT_1284=y
#
# Plug and Play support
#CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set
#
# Protocols
#CONFIG_ISAPNP=y
# CONFIG_PNPBIOS is not setCONFIG_PNPACPI=y
#
# Block devices
#CONFIG_BLK_DEV_FD=m
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not setCONFIG_BLK_CPQ_DA=mCONFIG_BLK_CPQ_CISS_DA=mCONFIG_CISS_SCSI_TAPE=yCONFIG_BLK_DEV_DAC960=mCONFIG_BLK_DEV_UMEM=m
# CONFIG_BLK_DEV_COW_COMMON is not setCONFIG_BLK_DEV_LOOP=mCONFIG_BLK_DEV_CRYPTOLOOP=mCONFIG_BLK_DEV_NBD=mCONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_UB is not setCONFIG_BLK_DEV_RAM=yCONFIG_BLK_DEV_RAM_COUNT=16CONFIG_BLK_DEV_RAM_SIZE=16384CONFIG_BLK_DEV_INITRD=yCONFIG_LBD=yCONFIG_CDROM_PKTCDVD=mCONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#CONFIG_IOSCHED_NOOP=yCONFIG_IOSCHED_AS=yCONFIG_IOSCHED_DEADLINE=yCONFIG_IOSCHED_CFQ=yCONFIG_ATA_OVER_ETH=m
#
# ATA/ATAPI/MFM/RLL support
#CONFIG_IDE=yCONFIG_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=yCONFIG_IDEDISK_MULTI_MODE=yCONFIG_BLK_DEV_IDECS=mCONFIG_BLK_DEV_IDECD=yCONFIG_BLK_DEV_IDETAPE=mCONFIG_BLK_DEV_IDEFLOPPY=yCONFIG_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 setCONFIG_BLK_DEV_IDEPNP=yCONFIG_BLK_DEV_IDEPCI=yCONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not setCONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not setCONFIG_BLK_DEV_RZ1000=yCONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not setCONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not setCONFIG_BLK_DEV_AEC62XX=yCONFIG_BLK_DEV_ALI15X3=y
# CONFIG_WDC_ALI15X3 is not setCONFIG_BLK_DEV_AMD74XX=yCONFIG_BLK_DEV_ATIIXP=yCONFIG_BLK_DEV_CMD64X=yCONFIG_BLK_DEV_TRIFLEX=yCONFIG_BLK_DEV_CY82C693=yCONFIG_BLK_DEV_CS5520=yCONFIG_BLK_DEV_CS5530=yCONFIG_BLK_DEV_HPT34X=y
# CONFIG_HPT34X_AUTODMA is not setCONFIG_BLK_DEV_HPT366=y
# CONFIG_BLK_DEV_SC1200 is not setCONFIG_BLK_DEV_PIIX=yCONFIG_BLK_DEV_IT821X=m
# CONFIG_BLK_DEV_NS87415 is not setCONFIG_BLK_DEV_PDC202XX_OLD=y
# CONFIG_PDC202XX_BURST is not setCONFIG_BLK_DEV_PDC202XX_NEW=yCONFIG_PDC202XX_FORCE=yCONFIG_BLK_DEV_SVWKS=yCONFIG_BLK_DEV_SIIMAGE=yCONFIG_BLK_DEV_SIS5513=yCONFIG_BLK_DEV_SLC90E66=y
# CONFIG_BLK_DEV_TRM290 is not setCONFIG_BLK_DEV_VIA82CXXX=y
# CONFIG_IDE_ARM is not set
# CONFIG_IDE_CHIPSETS is not setCONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not setCONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
#CONFIG_RAID_ATTRS=mCONFIG_SCSI=mCONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#CONFIG_BLK_DEV_SD=mCONFIG_CHR_DEV_ST=mCONFIG_CHR_DEV_OSST=mCONFIG_BLK_DEV_SR=mCONFIG_BLK_DEV_SR_VENDOR=yCONFIG_CHR_DEV_SG=mCONFIG_CHR_DEV_SCH=m
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs #
# CONFIG_SCSI_MULTI_LUN is not set CONFIG_SCSI_CONSTANTS=yCONFIG_SCSI_LOGGING=y
#
# SCSI Transport Attributes
#CONFIG_SCSI_SPI_ATTRS=mCONFIG_SCSI_FC_ATTRS=mCONFIG_SCSI_ISCSI_ATTRS=mCONFIG_SCSI_SAS_ATTRS=m
#
# SCSI low-level drivers
#CONFIG_BLK_DEV_3W_XXXX_RAID=mCONFIG_SCSI_3W_9XXX=m
# CONFIG_SCSI_7000FASST is not setCONFIG_SCSI_ACARD=mCONFIG_SCSI_AHA152X=mCONFIG_SCSI_AHA1542=mCONFIG_SCSI_AACRAID=mCONFIG_SCSI_AIC7XXX=mCONFIG_AIC7XXX_CMDS_PER_DEVICE=4CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not setCONFIG_AIC7XXX_DEBUG_MASK=0
# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not setCONFIG_SCSI_AIC7XXX_OLD=mCONFIG_SCSI_AIC79XX=mCONFIG_AIC79XX_CMDS_PER_DEVICE=4CONFIG_AIC79XX_RESET_DELAY_MS=15000
# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
# CONFIG_AIC79XX_DEBUG_ENABLE is not setCONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
# CONFIG_SCSI_DPT_I2O is not setCONFIG_SCSI_IN2000=mCONFIG_MEGARAID_NEWGEN=yCONFIG_MEGARAID_MM=mCONFIG_MEGARAID_MAILBOX=mCONFIG_SCSI_SATA=mCONFIG_SCSI_SATA_AHCI=mCONFIG_SCSI_SATA_SVW=mCONFIG_SCSI_ATA_PIIX=mCONFIG_SCSI_SATA_MV=mCONFIG_SCSI_SATA_NV=mCONFIG_SCSI_SATA_PROMISE=mCONFIG_SCSI_SATA_QSTOR=mCONFIG_SCSI_SATA_SX4=mCONFIG_SCSI_SATA_SIL=mCONFIG_SCSI_SATA_SIS=mCONFIG_SCSI_SATA_ULI=mCONFIG_SCSI_SATA_VIA=mCONFIG_SCSI_SATA_VITESSE=mCONFIG_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 setCONFIG_SCSI_FUTURE_DOMAIN=mCONFIG_SCSI_GDTH=m
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not setCONFIG_SCSI_IPS=mCONFIG_SCSI_INITIO=mCONFIG_SCSI_INIA100=mCONFIG_SCSI_PPA=mCONFIG_SCSI_IMM=m
# CONFIG_SCSI_IZIP_EPP16 is not set
# CONFIG_SCSI_IZIP_SLOW_CTR is not set
# CONFIG_SCSI_NCR53C406A is not setCONFIG_SCSI_SYM53C8XX_2=mCONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16CONFIG_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 setCONFIG_SCSI_QLOGIC_FAS=m
# CONFIG_SCSI_QLOGIC_FC is not setCONFIG_SCSI_QLOGIC_1280=mCONFIG_SCSI_QLOGIC_1280_1040=yCONFIG_SCSI_QLA2XXX=mCONFIG_SCSI_QLA21XX=mCONFIG_SCSI_QLA22XX=mCONFIG_SCSI_QLA2300=mCONFIG_SCSI_QLA2322=mCONFIG_SCSI_QLA6312=mCONFIG_SCSI_QLA24XX=mCONFIG_SCSI_LPFC=m
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not setCONFIG_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=mCONFIG_PCMCIA_FDOMAIN=mCONFIG_PCMCIA_NINJA_SCSI=mCONFIG_PCMCIA_QLOGIC=mCONFIG_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=yCONFIG_BLK_DEV_MD=yCONFIG_MD_LINEAR=mCONFIG_MD_RAID0=mCONFIG_MD_RAID1=mCONFIG_MD_RAID10=mCONFIG_MD_RAID5=mCONFIG_MD_RAID6=mCONFIG_MD_MULTIPATH=mCONFIG_MD_FAULTY=mCONFIG_BLK_DEV_DM=mCONFIG_DM_CRYPT=mCONFIG_DM_SNAPSHOT=mCONFIG_DM_MIRROR=mCONFIG_DM_ZERO=mCONFIG_DM_MULTIPATH=mCONFIG_DM_MULTIPATH_EMC=m
#
# Fusion MPT device support
#CONFIG_FUSION=yCONFIG_FUSION_SPI=mCONFIG_FUSION_FC=mCONFIG_FUSION_MAX_SGE=128CONFIG_FUSION_CTL=mCONFIG_FUSION_LAN=m
#
# IEEE 1394 (FireWire) support
#CONFIG_IEEE1394=m
#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not setCONFIG_IEEE1394_OUI_DB=y
# CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not setCONFIG_IEEE1394_EXPORT_FULL_API=y
#
# Device Drivers
#
# CONFIG_IEEE1394_PCILYNX is not setCONFIG_IEEE1394_OHCI1394=m
#
# Protocol Drivers
#CONFIG_IEEE1394_VIDEO1394=mCONFIG_IEEE1394_SBP2=m
# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
# CONFIG_IEEE1394_ETH1394 is not setCONFIG_IEEE1394_DV1394=mCONFIG_IEEE1394_RAWIO=mCONFIG_IEEE1394_CMP=mCONFIG_IEEE1394_AMDTP=m
#
# I2O device support
#CONFIG_I2O=mCONFIG_I2O_EXT_ADAPTEC=yCONFIG_I2O_CONFIG=mCONFIG_I2O_CONFIG_OLD_IOCTL=yCONFIG_I2O_BUS=mCONFIG_I2O_BLOCK=mCONFIG_I2O_SCSI=mCONFIG_I2O_PROC=m
#
# Network device support
#CONFIG_NETDEVICES=yCONFIG_DUMMY=mCONFIG_BONDING=mCONFIG_EQUALIZER=mCONFIG_TUN=mCONFIG_NET_SB1000=m
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# PHY device support
#CONFIG_PHYLIB=mCONFIG_PHYCONTROL=y
#
# MII PHY device drivers
#CONFIG_MARVELL_PHY=mCONFIG_DAVICOM_PHY=mCONFIG_QSEMI_PHY=mCONFIG_LXT_PHY=mCONFIG_CICADA_PHY=m
#
# Ethernet (10 or 100Mbit)
#CONFIG_NET_ETHERNET=yCONFIG_MII=mCONFIG_HAPPYMEAL=mCONFIG_SUNGEM=mCONFIG_NET_VENDOR_3COM=yCONFIG_EL1=mCONFIG_EL2=mCONFIG_ELPLUS=mCONFIG_EL16=mCONFIG_EL3=mCONFIG_3C515=mCONFIG_VORTEX=mCONFIG_TYPHOON=mCONFIG_LANCE=mCONFIG_NET_VENDOR_SMC=y
CONFIG_WD80x3=mCONFIG_ULTRA=mCONFIG_SMC9194=mCONFIG_NET_VENDOR_RACAL=y
# CONFIG_NI5010 is not setCONFIG_NI52=mCONFIG_NI65=m
#
# Tulip family network device support
#CONFIG_NET_TULIP=yCONFIG_DE2104X=mCONFIG_TULIP=m
# CONFIG_TULIP_MWI is not setCONFIG_TULIP_MMIO=y
# CONFIG_TULIP_NAPI is not setCONFIG_DE4X5=mCONFIG_WINBOND_840=mCONFIG_DM9102=mCONFIG_ULI526X=mCONFIG_PCMCIA_XIRCOM=mCONFIG_PCMCIA_XIRTULIP=m
# CONFIG_AT1700 is not setCONFIG_DEPCA=mCONFIG_HP100=mCONFIG_NET_ISA=yCONFIG_E2100=mCONFIG_EWRK3=mCONFIG_EEXPRESS=mCONFIG_EEXPRESS_PRO=mCONFIG_HPLAN_PLUS=mCONFIG_HPLAN=mCONFIG_LP486E=mCONFIG_ETH16I=mCONFIG_NE2000=mCONFIG_ZNET=mCONFIG_SEEQ8005=mCONFIG_NET_PCI=yCONFIG_PCNET32=mCONFIG_AMD8111_ETH=mCONFIG_AMD8111E_NAPI=yCONFIG_ADAPTEC_STARFIRE=mCONFIG_ADAPTEC_STARFIRE_NAPI=yCONFIG_AC3200=mCONFIG_APRICOT=mCONFIG_B44=mCONFIG_FORCEDETH=m
CONFIG_CS89x0=mCONFIG_DGRS=mCONFIG_EEPRO100=mCONFIG_E100=mCONFIG_FEALNX=mCONFIG_NATSEMI=mCONFIG_NE2K_PCI=mCONFIG_8139CP=mCONFIG_8139TOO=mCONFIG_8139TOO_PIO=y
# CONFIG_8139TOO_TUNE_TWISTER is not setCONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not setCONFIG_SIS900=mCONFIG_EPIC100=mCONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not setCONFIG_TLAN=mCONFIG_VIA_RHINE=mCONFIG_VIA_RHINE_MMIO=yCONFIG_NET_POCKET=yCONFIG_ATP=mCONFIG_DE600=mCONFIG_DE620=m
#
# Ethernet (1000 Mbit)
#CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not setCONFIG_DL2K=mCONFIG_E1000=mCONFIG_E1000_NAPI=yCONFIG_NS83820=mCONFIG_HAMACHI=mCONFIG_YELLOWFIN=mCONFIG_R8169=mCONFIG_R8169_NAPI=yCONFIG_R8169_VLAN=yCONFIG_SIS190=mCONFIG_SKGE=mCONFIG_SK98LIN=mCONFIG_VIA_VELOCITY=mCONFIG_TIGON3=mCONFIG_BNX2=m
#
# Ethernet (10000 Mbit)
#CONFIG_CHELSIO_T1=mCONFIG_IXGB=mCONFIG_IXGB_NAPI=yCONFIG_S2IO=mCONFIG_S2IO_NAPI=y
# CONFIG_2BUFF_MODE is not set
#
# Token Ring devices
#CONFIG_TR=yCONFIG_IBMTR=mCONFIG_IBMOL=mCONFIG_IBMLS=mCONFIG_3C359=mCONFIG_TMS380TR=mCONFIG_TMSPCI=mCONFIG_SKISA=mCONFIG_PROTEON=mCONFIG_ABYSS=mCONFIG_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 setCONFIG_WAVELAN=mCONFIG_PCMCIA_WAVELAN=mCONFIG_PCMCIA_NETWAVE=m
#
# Wireless 802.11 Frequency Hopping cards support
#CONFIG_PCMCIA_RAYCS=m
#
# Wireless 802.11b ISA/PCI cards support
#CONFIG_IPW2100=mCONFIG_IPW2100_MONITOR=y
# CONFIG_IPW_DEBUG is not setCONFIG_IPW2200=mCONFIG_AIRO=mCONFIG_HERMES=mCONFIG_PLX_HERMES=mCONFIG_TMD_HERMES=mCONFIG_NORTEL_HERMES=mCONFIG_PCI_HERMES=mCONFIG_ATMEL=mCONFIG_PCI_ATMEL=m
#
# Wireless 802.11b Pcmcia/Cardbus cards support
#CONFIG_PCMCIA_HERMES=mCONFIG_PCMCIA_SPECTRUM=mCONFIG_AIRO_CS=mCONFIG_PCMCIA_ATMEL=mCONFIG_PCMCIA_WL3501=m
#
# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support #CONFIG_PRISM54=mCONFIG_HOSTAP=mCONFIG_HOSTAP_FIRMWARE=y CONFIG_HOSTAP_PLX=mCONFIG_HOSTAP_PCI=mCONFIG_HOSTAP_CS=mCONFIG_NET_WIRELESS=y
#
# PCMCIA network device support
#CONFIG_NET_PCMCIA=yCONFIG_PCMCIA_3C589=mCONFIG_PCMCIA_3C574=mCONFIG_PCMCIA_FMVJ18X=mCONFIG_PCMCIA_PCNET=mCONFIG_PCMCIA_NMCLAN=mCONFIG_PCMCIA_SMC91C92=mCONFIG_PCMCIA_XIRC2PS=mCONFIG_PCMCIA_AXNET=mCONFIG_PCMCIA_IBMTR=m
#
# Wan interfaces
#
# CONFIG_WAN is not set
#
# ATM drivers
#CONFIG_ATM_TCP=mCONFIG_ATM_LANAI=mCONFIG_ATM_ENI=m
# CONFIG_ATM_ENI_DEBUG is not set
# CONFIG_ATM_ENI_TUNE_BURST is not setCONFIG_ATM_FIRESTREAM=m
# CONFIG_ATM_ZATM is not setCONFIG_ATM_NICSTAR=m
# CONFIG_ATM_NICSTAR_USE_SUNI is not set
# CONFIG_ATM_NICSTAR_USE_IDT77105 is not setCONFIG_ATM_IDT77252=m
# CONFIG_ATM_IDT77252_DEBUG is not set
# CONFIG_ATM_IDT77252_RCV_ALL is not setCONFIG_ATM_IDT77252_USE_SUNI=yCONFIG_ATM_AMBASSADOR=m
# CONFIG_ATM_AMBASSADOR_DEBUG is not setCONFIG_ATM_HORIZON=m
# CONFIG_ATM_HORIZON_DEBUG is not set
# CONFIG_ATM_IA is not setCONFIG_ATM_FORE200E_MAYBE=m
# CONFIG_ATM_FORE200E_PCA is not setCONFIG_ATM_HE=m
# CONFIG_ATM_HE_USE_SUNI is not setCONFIG_FDDI=y
# CONFIG_DEFXX is not setCONFIG_SKFP=m
# CONFIG_HIPPI is not setCONFIG_PLIP=mCONFIG_PPP=mCONFIG_PPP_MULTILINK=yCONFIG_PPP_FILTER=yCONFIG_PPP_ASYNC=mCONFIG_PPP_SYNC_TTY=mCONFIG_PPP_DEFLATE=m
# CONFIG_PPP_BSDCOMP is not setCONFIG_PPPOE=mCONFIG_PPPOATM=mCONFIG_SLIP=mCONFIG_SLIP_COMPRESSED=yCONFIG_SLIP_SMART=y
# CONFIG_SLIP_MODE_SLIP6 is not setCONFIG_NET_FC=y
# CONFIG_SHAPER is not setCONFIG_NETCONSOLE=mCONFIG_NETPOLL=yCONFIG_NETPOLL_RX=yCONFIG_NETPOLL_TRAP=yCONFIG_NET_POLL_CONTROLLER=y
#
# ISDN subsystem
#CONFIG_ISDN=m
#
# Old ISDN4Linux
#CONFIG_ISDN_I4L=mCONFIG_ISDN_PPP=yCONFIG_ISDN_PPP_VJ=yCONFIG_ISDN_MPP=yCONFIG_IPPP_FILTER=y
# CONFIG_ISDN_PPP_BSDCOMP is not setCONFIG_ISDN_AUDIO=yCONFIG_ISDN_TTY_FAX=y
#
# ISDN feature submodules
#CONFIG_ISDN_DRV_LOOP=mCONFIG_ISDN_DIVERSION=m
#
# ISDN4Linux hardware drivers
#
#
# Passive cards
#CONFIG_ISDN_DRV_HISAX=m
#
# D-channel protocol features
#CONFIG_HISAX_EURO=yCONFIG_DE_AOC=yCONFIG_HISAX_NO_SENDCOMPLETE=yCONFIG_HISAX_NO_LLC=yCONFIG_HISAX_NO_KEYPAD=yCONFIG_HISAX_1TR6=yCONFIG_HISAX_NI1=yCONFIG_HISAX_MAX_CARDS=8
#
# HiSax supported cards
#CONFIG_HISAX_16_0=yCONFIG_HISAX_16_3=yCONFIG_HISAX_TELESPCI=yCONFIG_HISAX_S0BOX=yCONFIG_HISAX_AVM_A1=yCONFIG_HISAX_FRITZPCI=yCONFIG_HISAX_AVM_A1_PCMCIA=yCONFIG_HISAX_ELSA=yCONFIG_HISAX_IX1MICROR2=yCONFIG_HISAX_DIEHLDIVA=yCONFIG_HISAX_ASUSCOM=yCONFIG_HISAX_TELEINT=yCONFIG_HISAX_HFCS=yCONFIG_HISAX_SEDLBAUER=yCONFIG_HISAX_SPORTSTER=yCONFIG_HISAX_MIC=yCONFIG_HISAX_NETJET=yCONFIG_HISAX_NETJET_U=yCONFIG_HISAX_NICCY=yCONFIG_HISAX_ISURF=yCONFIG_HISAX_HSTSAPHIR=yCONFIG_HISAX_BKM_A4T=yCONFIG_HISAX_SCT_QUADRO=yCONFIG_HISAX_GAZEL=yCONFIG_HISAX_HFC_PCI=yCONFIG_HISAX_W6692=yCONFIG_HISAX_HFC_SX=yCONFIG_HISAX_ENTERNOW_PCI=y
# CONFIG_HISAX_DEBUG is not set
#
# HiSax PCMCIA card service modules
#CONFIG_HISAX_SEDLBAUER_CS=mCONFIG_HISAX_ELSA_CS=mCONFIG_HISAX_AVM_A1_CS=mCONFIG_HISAX_TELES_CS=m
#
# HiSax sub driver modules
#CONFIG_HISAX_ST5481=mCONFIG_HISAX_HFCUSB=mCONFIG_HISAX_HFC4S8S=mCONFIG_HISAX_FRITZ_PCIPNP=mCONFIG_HISAX_HDLC=y
#
# Active cards
#CONFIG_ISDN_DRV_ICN=mCONFIG_ISDN_DRV_PCBIT=mCONFIG_ISDN_DRV_SC=mCONFIG_ISDN_DRV_ACT2000=mCONFIG_HYSDN=mCONFIG_HYSDN_CAPI=y
#
# CAPI subsystem
#CONFIG_ISDN_CAPI=mCONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=yCONFIG_ISDN_CAPI_MIDDLEWARE=yCONFIG_ISDN_CAPI_CAPI20=mCONFIG_ISDN_CAPI_CAPIFS_BOOL=yCONFIG_ISDN_CAPI_CAPIFS=mCONFIG_ISDN_CAPI_CAPIDRV=m
#
# CAPI hardware drivers
#
#
# Active AVM cards
#CONFIG_CAPI_AVM=yCONFIG_ISDN_DRV_AVMB1_B1ISA=mCONFIG_ISDN_DRV_AVMB1_B1PCI=mCONFIG_ISDN_DRV_AVMB1_B1PCIV4=yCONFIG_ISDN_DRV_AVMB1_T1ISA=mCONFIG_ISDN_DRV_AVMB1_B1PCMCIA=mCONFIG_ISDN_DRV_AVMB1_AVM_CS=mCONFIG_ISDN_DRV_AVMB1_T1PCI=mCONFIG_ISDN_DRV_AVMB1_C4=m
#
# Active Eicon DIVA Server cards
#CONFIG_CAPI_EICON=yCONFIG_ISDN_DIVAS=mCONFIG_ISDN_DIVAS_BRIPCI=yCONFIG_ISDN_DIVAS_PRIPCI=yCONFIG_ISDN_DIVAS_DIVACAPI=mCONFIG_ISDN_DIVAS_USERIDI=mCONFIG_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 setCONFIG_INPUT_MOUSEDEV_SCREEN_X=1024CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768CONFIG_INPUT_JOYDEV=m
# CONFIG_INPUT_TSDEV is not setCONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#CONFIG_INPUT_KEYBOARD=yCONFIG_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 setCONFIG_INPUT_MOUSE=yCONFIG_MOUSE_PS2=yCONFIG_MOUSE_SERIAL=mCONFIG_MOUSE_INPORT=mCONFIG_MOUSE_ATIXL=yCONFIG_MOUSE_LOGIBM=mCONFIG_MOUSE_PC110PAD=mCONFIG_MOUSE_VSXXXAA=mCONFIG_INPUT_JOYSTICK=yCONFIG_JOYSTICK_ANALOG=mCONFIG_JOYSTICK_A3D=mCONFIG_JOYSTICK_ADI=mCONFIG_JOYSTICK_COBRA=mCONFIG_JOYSTICK_GF2K=mCONFIG_JOYSTICK_GRIP=mCONFIG_JOYSTICK_GRIP_MP=mCONFIG_JOYSTICK_GUILLEMOT=mCONFIG_JOYSTICK_INTERACT=mCONFIG_JOYSTICK_SIDEWINDER=mCONFIG_JOYSTICK_TMDC=mCONFIG_JOYSTICK_IFORCE=mCONFIG_JOYSTICK_IFORCE_USB=yCONFIG_JOYSTICK_IFORCE_232=yCONFIG_JOYSTICK_WARRIOR=mCONFIG_JOYSTICK_MAGELLAN=mCONFIG_JOYSTICK_SPACEORB=mCONFIG_JOYSTICK_SPACEBALL=mCONFIG_JOYSTICK_STINGER=mCONFIG_JOYSTICK_TWIDJOY=mCONFIG_JOYSTICK_DB9=mCONFIG_JOYSTICK_GAMECON=mCONFIG_JOYSTICK_TURBOGRAFX=mCONFIG_JOYSTICK_JOYDUMP=mCONFIG_INPUT_TOUCHSCREEN=yCONFIG_TOUCHSCREEN_GUNZE=mCONFIG_TOUCHSCREEN_ELO=mCONFIG_TOUCHSCREEN_MTOUCH=mCONFIG_TOUCHSCREEN_MK712=mCONFIG_INPUT_MISC=yCONFIG_INPUT_PCSPKR=mCONFIG_INPUT_UINPUT=m
#
# Hardware I/O ports
#CONFIG_SERIO=yCONFIG_SERIO_I8042=yCONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not setCONFIG_SERIO_LIBPS2=yCONFIG_SERIO_RAW=mCONFIG_GAMEPORT=mCONFIG_GAMEPORT_NS558=mCONFIG_GAMEPORT_L4=mCONFIG_GAMEPORT_EMU10K1=mCONFIG_GAMEPORT_FM801=m
#
# Character devices
#CONFIG_VT=yCONFIG_VT_CONSOLE=yCONFIG_HW_CONSOLE=yCONFIG_SERIAL_NONSTANDARD=y
# CONFIG_COMPUTONE is not setCONFIG_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 setCONFIG_SYNCLINK=mCONFIG_SYNCLINKMP=mCONFIG_N_HDLC=m
# CONFIG_RISCOM8 is not set
# CONFIG_SPECIALIX is not set
# CONFIG_SX is not set
# CONFIG_RIO is not setCONFIG_STALDRV=y
# CONFIG_STALLION is not set
# CONFIG_ISTALLION is not set
#
# Serial drivers
#CONFIG_SERIAL_8250=yCONFIG_SERIAL_8250_CONSOLE=yCONFIG_SERIAL_8250_CS=m
# CONFIG_SERIAL_8250_ACPI is not setCONFIG_SERIAL_8250_NR_UARTS=4CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_MANY_PORTS is not setCONFIG_SERIAL_8250_SHARE_IRQ=yCONFIG_SERIAL_8250_DETECT_IRQ=yCONFIG_SERIAL_8250_RSA=y
#
# Non-8250 serial port support
#CONFIG_SERIAL_CORE=yCONFIG_SERIAL_CORE_CONSOLE=yCONFIG_SERIAL_JSM=mCONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not setCONFIG_PRINTER=mCONFIG_LP_CONSOLE=yCONFIG_PPDEV=mCONFIG_TIPAR=m
#
# IPMI
#CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not setCONFIG_IPMI_DEVICE_INTERFACE=mCONFIG_IPMI_SI=mCONFIG_IPMI_WATCHDOG=mCONFIG_IPMI_POWEROFF=m
#
# Watchdog Cards
#CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
#
# Watchdog Device Drivers
#CONFIG_SOFT_WATCHDOG=mCONFIG_ACQUIRE_WDT=mCONFIG_ADVANTECH_WDT=mCONFIG_ALIM1535_WDT=mCONFIG_ALIM7101_WDT=mCONFIG_SC520_WDT=mCONFIG_EUROTECH_WDT=mCONFIG_IB700_WDT=mCONFIG_IBMASR=mCONFIG_WAFER_WDT=mCONFIG_I6300ESB_WDT=mCONFIG_I8XX_TCO=mCONFIG_SC1200_WDT=m
# CONFIG_60XX_WDT is not setCONFIG_SBC8360_WDT=mCONFIG_CPU5_WDT=mCONFIG_W83627HF_WDT=mCONFIG_W83877F_WDT=mCONFIG_W83977F_WDT=mCONFIG_MACHZ_WDT=m
#
# ISA-based Watchdog Cards
#CONFIG_PCWATCHDOG=m
# CONFIG_MIXCOMWD is not setCONFIG_WDT=m
# CONFIG_WDT_501 is not set
#
# PCI-based Watchdog Cards
#CONFIG_PCIPCWATCHDOG=mCONFIG_WDTPCI=mCONFIG_WDT_501_PCI=y
#
# USB-based Watchdog Cards
#CONFIG_USBPCWATCHDOG=mCONFIG_HW_RANDOM=mCONFIG_NVRAM=mCONFIG_RTC=yCONFIG_RTC_HISTOGRAM=mCONFIG_BLOCKER=m
# CONFIG_LPPTEST is not setCONFIG_DTLK=mCONFIG_R3964=m
# CONFIG_APPLICOM is not setCONFIG_SONYPI=m
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not setCONFIG_AGP=yCONFIG_AGP_ALI=yCONFIG_AGP_ATI=yCONFIG_AGP_AMD=yCONFIG_AGP_AMD64=yCONFIG_AGP_INTEL=yCONFIG_AGP_NVIDIA=yCONFIG_AGP_SIS=yCONFIG_AGP_SWORKS=yCONFIG_AGP_VIA=yCONFIG_AGP_EFFICEON=yCONFIG_DRM=yCONFIG_DRM_TDFX=mCONFIG_DRM_R128=mCONFIG_DRM_RADEON=mCONFIG_DRM_I810=mCONFIG_DRM_I830=mCONFIG_DRM_I915=mCONFIG_DRM_MGA=mCONFIG_DRM_SIS=mCONFIG_DRM_VIA=mCONFIG_DRM_SAVAGE=m
#
# PCMCIA character devices
#CONFIG_SYNCLINK_CS=mCONFIG_MWAVE=m
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not setCONFIG_HANGCHECK_TIMER=m
#
# TPM devices
#CONFIG_TCG_TPM=mCONFIG_TCG_NSC=mCONFIG_TCG_ATMEL=mCONFIG_TCG_INFINEON=m
#
# I2C support
#CONFIG_I2C=mCONFIG_I2C_CHARDEV=m
#
# I2C Algorithms
#CONFIG_I2C_ALGOBIT=mCONFIG_I2C_ALGOPCF=mCONFIG_I2C_ALGOPCA=m
#
# I2C Hardware Bus support
#CONFIG_I2C_ALI1535=mCONFIG_I2C_ALI1563=mCONFIG_I2C_ALI15X3=mCONFIG_I2C_AMD756=mCONFIG_I2C_AMD756_S4882=mCONFIG_I2C_AMD8111=m
# CONFIG_I2C_ELEKTOR is not setCONFIG_I2C_I801=mCONFIG_I2C_I810=mCONFIG_I2C_PIIX4=mCONFIG_I2C_ISA=mCONFIG_I2C_NFORCE2=m
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PARPORT_LIGHT is not setCONFIG_I2C_PROSAVAGE=mCONFIG_I2C_SAVAGE4=m
# CONFIG_SCx200_ACB is not setCONFIG_I2C_SIS5595=mCONFIG_I2C_SIS630=mCONFIG_I2C_SIS96X=mCONFIG_I2C_STUB=mCONFIG_I2C_VIA=mCONFIG_I2C_VIAPRO=mCONFIG_I2C_VOODOO3=mCONFIG_I2C_PCA_ISA=m
#
# Miscellaneous I2C Chip support
#CONFIG_SENSORS_DS1337=mCONFIG_SENSORS_DS1374=mCONFIG_SENSORS_EEPROM=mCONFIG_SENSORS_PCF8574=mCONFIG_SENSORS_PCA9539=mCONFIG_SENSORS_PCF8591=mCONFIG_SENSORS_RTC8564=mCONFIG_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=mCONFIG_HWMON_VID=mCONFIG_SENSORS_ADM1021=mCONFIG_SENSORS_ADM1025=mCONFIG_SENSORS_ADM1026=mCONFIG_SENSORS_ADM1031=mCONFIG_SENSORS_ADM9240=mCONFIG_SENSORS_ASB100=mCONFIG_SENSORS_ATXP1=mCONFIG_SENSORS_DS1621=mCONFIG_SENSORS_FSCHER=mCONFIG_SENSORS_FSCPOS=mCONFIG_SENSORS_GL518SM=mCONFIG_SENSORS_GL520SM=mCONFIG_SENSORS_IT87=mCONFIG_SENSORS_LM63=mCONFIG_SENSORS_LM75=mCONFIG_SENSORS_LM77=mCONFIG_SENSORS_LM78=mCONFIG_SENSORS_LM80=mCONFIG_SENSORS_LM83=mCONFIG_SENSORS_LM85=mCONFIG_SENSORS_LM87=mCONFIG_SENSORS_LM90=mCONFIG_SENSORS_LM92=mCONFIG_SENSORS_MAX1619=mCONFIG_SENSORS_PC87360=mCONFIG_SENSORS_SIS5595=mCONFIG_SENSORS_SMSC47M1=mCONFIG_SENSORS_SMSC47B397=mCONFIG_SENSORS_VIA686A=mCONFIG_SENSORS_W83781D=mCONFIG_SENSORS_W83792D=mCONFIG_SENSORS_W83L785TS=mCONFIG_SENSORS_W83627HF=mCONFIG_SENSORS_W83627EHF=mCONFIG_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=mCONFIG_VIDEO_SAA6588=mCONFIG_VIDEO_PMS=mCONFIG_VIDEO_BWQCAM=mCONFIG_VIDEO_CQCAM=mCONFIG_VIDEO_W9966=mCONFIG_VIDEO_CPIA=mCONFIG_VIDEO_CPIA_PP=mCONFIG_VIDEO_CPIA_USB=mCONFIG_VIDEO_SAA5246A=mCONFIG_VIDEO_SAA5249=mCONFIG_TUNER_3036=mCONFIG_VIDEO_STRADIS=mCONFIG_VIDEO_ZORAN=mCONFIG_VIDEO_ZORAN_BUZ=mCONFIG_VIDEO_ZORAN_DC10=mCONFIG_VIDEO_ZORAN_DC30=mCONFIG_VIDEO_ZORAN_LML33=mCONFIG_VIDEO_ZORAN_LML33R10=mCONFIG_VIDEO_MEYE=mCONFIG_VIDEO_SAA7134=mCONFIG_VIDEO_SAA7134_DVB=mCONFIG_VIDEO_MXB=mCONFIG_VIDEO_DPC=mCONFIG_VIDEO_HEXIUM_ORION=mCONFIG_VIDEO_HEXIUM_GEMINI=mCONFIG_VIDEO_CX88=mCONFIG_VIDEO_CX88_DVB=mCONFIG_VIDEO_OVCAMCHIP=m
#
# Radio Adapters
#CONFIG_RADIO_CADET=mCONFIG_RADIO_RTRACK=mCONFIG_RADIO_RTRACK2=mCONFIG_RADIO_AZTECH=mCONFIG_RADIO_GEMTEK=mCONFIG_RADIO_GEMTEK_PCI=mCONFIG_RADIO_MAXIRADIO=mCONFIG_RADIO_MAESTRO=mCONFIG_RADIO_SF16FMI=mCONFIG_RADIO_SF16FMR2=mCONFIG_RADIO_TERRATEC=mCONFIG_RADIO_TRUST=mCONFIG_RADIO_TYPHOON=mCONFIG_RADIO_TYPHOON_PROC_FS=yCONFIG_RADIO_ZOLTRIX=m
#
# Digital Video Broadcasting Devices
#CONFIG_DVB=yCONFIG_DVB_CORE=m
#
# Supported SAA7146 based PCI Adapters
#CONFIG_DVB_AV7110=mCONFIG_DVB_AV7110_OSD=yCONFIG_DVB_BUDGET=mCONFIG_DVB_BUDGET_CI=mCONFIG_DVB_BUDGET_AV=mCONFIG_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=mCONFIG_DVB_USB_CXUSB=mCONFIG_DVB_USB_DIGITV=mCONFIG_DVB_USB_VP7045=mCONFIG_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=mCONFIG_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=mCONFIG_DVB_B2C2_FLEXCOP_PCI=mCONFIG_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=mCONFIG_DVB_CX24110=mCONFIG_DVB_TDA8083=mCONFIG_DVB_TDA80XX=mCONFIG_DVB_MT312=mCONFIG_DVB_VES1X93=mCONFIG_DVB_S5H1420=m
#
# DVB-T (terrestrial) frontends
#CONFIG_DVB_SP8870=mCONFIG_DVB_SP887X=mCONFIG_DVB_CX22700=mCONFIG_DVB_CX22702=mCONFIG_DVB_L64781=mCONFIG_DVB_TDA1004X=mCONFIG_DVB_NXT6000=mCONFIG_DVB_MT352=mCONFIG_DVB_DIB3000MB=mCONFIG_DVB_DIB3000MC=m
#
# DVB-C (cable) frontends
#CONFIG_DVB_ATMEL_AT76C651=mCONFIG_DVB_VES1820=mCONFIG_DVB_TDA10021=mCONFIG_DVB_STV0297=m
#
# ATSC (North American/Korean Terresterial DTV) frontends #CONFIG_DVB_NXT2002=mCONFIG_DVB_OR51211=mCONFIG_DVB_OR51132=mCONFIG_DVB_BCM3510=mCONFIG_DVB_LGDT330X=mCONFIG_VIDEO_SAA7146=mCONFIG_VIDEO_SAA7146_VV=m CONFIG_VIDEO_VIDEOBUF=mCONFIG_VIDEO_TUNER=mCONFIG_VIDEO_BUF=mCONFIG_VIDEO_BUF_DVB=mCONFIG_VIDEO_BTCX=mCONFIG_VIDEO_IR=mCONFIG_VIDEO_TVEEPROM=m
#
# Graphics support
#CONFIG_FB=yCONFIG_FB_CFB_FILLRECT=yCONFIG_FB_CFB_COPYAREA=yCONFIG_FB_CFB_IMAGEBLIT=yCONFIG_FB_SOFT_CURSOR=y
# CONFIG_FB_MACMODES is not setCONFIG_FB_MODE_HELPERS=yCONFIG_FB_TILEBLITTING=yCONFIG_FB_CIRRUS=m
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not setCONFIG_FB_ARC=m
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not setCONFIG_FB_VGA16=mCONFIG_FB_VESA=yCONFIG_VIDEO_SELECT=yCONFIG_FB_HGA=mCONFIG_FB_HGA_ACCEL=yCONFIG_FB_NVIDIA=mCONFIG_FB_NVIDIA_I2C=yCONFIG_FB_RIVA=m
# CONFIG_FB_RIVA_I2C is not set
# CONFIG_FB_RIVA_DEBUG is not setCONFIG_FB_I810=mCONFIG_FB_I810_GTF=yCONFIG_FB_I810_I2C=yCONFIG_FB_INTEL=m
# CONFIG_FB_INTEL_DEBUG is not setCONFIG_FB_MATROX=mCONFIG_FB_MATROX_MILLENIUM=yCONFIG_FB_MATROX_MYSTIQUE=yCONFIG_FB_MATROX_G=yCONFIG_FB_MATROX_I2C=mCONFIG_FB_MATROX_MAVEN=mCONFIG_FB_MATROX_MULTIHEAD=y
# CONFIG_FB_RADEON_OLD is not setCONFIG_FB_RADEON=mCONFIG_FB_RADEON_I2C=y
# CONFIG_FB_RADEON_DEBUG is not setCONFIG_FB_ATY128=mCONFIG_FB_ATY=mCONFIG_FB_ATY_CT=yCONFIG_FB_ATY_GENERIC_LCD=y
# CONFIG_FB_ATY_XL_INIT is not setCONFIG_FB_ATY_GX=yCONFIG_FB_SAVAGE=mCONFIG_FB_SAVAGE_I2C=yCONFIG_FB_SAVAGE_ACCEL=y
# CONFIG_FB_SIS is not setCONFIG_FB_NEOMAGIC=mCONFIG_FB_KYRO=mCONFIG_FB_3DFX=mCONFIG_FB_3DFX_ACCEL=yCONFIG_FB_VOODOO1=mCONFIG_FB_CYBLA=mCONFIG_FB_TRIDENT=mCONFIG_FB_TRIDENT_ACCEL=y
# CONFIG_FB_GEODE is not setCONFIG_FB_S1D13XXX=m
# CONFIG_FB_VIRTUAL is not set
#
# Console display driver support
#CONFIG_VGA_CONSOLE=yCONFIG_MDA_CONSOLE=mCONFIG_DUMMY_CONSOLE=yCONFIG_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 setCONFIG_LOGO_LINUX_CLUT224=yCONFIG_BACKLIGHT_LCD_SUPPORT=yCONFIG_BACKLIGHT_CLASS_DEVICE=mCONFIG_BACKLIGHT_DEVICE=yCONFIG_LCD_CLASS_DEVICE=mCONFIG_LCD_DEVICE=y
#
# Sound
#CONFIG_SOUND=m
#
# Advanced Linux Sound Architecture
#CONFIG_SND=mCONFIG_SND_TIMER=mCONFIG_SND_PCM=mCONFIG_SND_HWDEP=mCONFIG_SND_RAWMIDI=mCONFIG_SND_SEQUENCER=mCONFIG_SND_SEQ_DUMMY=mCONFIG_SND_OSSEMUL=yCONFIG_SND_MIXER_OSS=mCONFIG_SND_PCM_OSS=mCONFIG_SND_SEQUENCER_OSS=yCONFIG_SND_RTCTIMER=mCONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not setCONFIG_SND_GENERIC_DRIVER=y
#
# Generic devices
#CONFIG_SND_MPU401_UART=mCONFIG_SND_OPL3_LIB=mCONFIG_SND_OPL4_LIB=mCONFIG_SND_VX_LIB=mCONFIG_SND_DUMMY=mCONFIG_SND_VIRMIDI=mCONFIG_SND_MTPAV=m
# CONFIG_SND_SERIAL_U16550 is not setCONFIG_SND_MPU401=m
#
# ISA devices
#CONFIG_SND_AD1848_LIB=mCONFIG_SND_CS4231_LIB=mCONFIG_SND_AD1816A=mCONFIG_SND_AD1848=mCONFIG_SND_CS4231=mCONFIG_SND_CS4232=mCONFIG_SND_CS4236=mCONFIG_SND_ES968=mCONFIG_SND_ES1688=mCONFIG_SND_ES18XX=mCONFIG_SND_GUS_SYNTH=mCONFIG_SND_GUSCLASSIC=mCONFIG_SND_GUSEXTREME=mCONFIG_SND_GUSMAX=mCONFIG_SND_INTERWAVE=mCONFIG_SND_INTERWAVE_STB=mCONFIG_SND_OPTI92X_AD1848=mCONFIG_SND_OPTI92X_CS4231=mCONFIG_SND_OPTI93X=mCONFIG_SND_SB8=mCONFIG_SND_SB16=mCONFIG_SND_SBAWE=mCONFIG_SND_SB16_CSP=y
# CONFIG_SND_WAVEFRONT is not setCONFIG_SND_ALS100=mCONFIG_SND_AZT2320=mCONFIG_SND_CMI8330=mCONFIG_SND_DT019X=mCONFIG_SND_OPL3SA2=mCONFIG_SND_SGALAXY=mCONFIG_SND_SSCAPE=mCONFIG_SND_AC97_CODEC=mCONFIG_SND_AC97_BUS=m
#
# PCI devices
#CONFIG_SND_ALI5451=mCONFIG_SND_ATIIXP=mCONFIG_SND_ATIIXP_MODEM=mCONFIG_SND_AU8810=mCONFIG_SND_AU8820=mCONFIG_SND_AU8830=mCONFIG_SND_AZT3328=mCONFIG_SND_BT87X=mCONFIG_SND_BT87X_OVERCLOCK=yCONFIG_SND_CS46XX=mCONFIG_SND_CS46XX_NEW_DSP=yCONFIG_SND_CS4281=mCONFIG_SND_EMU10K1=mCONFIG_SND_EMU10K1X=mCONFIG_SND_CA0106=mCONFIG_SND_KORG1212=mCONFIG_SND_MIXART=mCONFIG_SND_NM256=mCONFIG_SND_RME32=mCONFIG_SND_RME96=mCONFIG_SND_RME9652=mCONFIG_SND_HDSP=mCONFIG_SND_HDSPM=mCONFIG_SND_TRIDENT=mCONFIG_SND_YMFPCI=mCONFIG_SND_AD1889=mCONFIG_SND_ALS4000=mCONFIG_SND_CMIPCI=mCONFIG_SND_ENS1370=mCONFIG_SND_ENS1371=mCONFIG_SND_ES1938=mCONFIG_SND_ES1968=mCONFIG_SND_MAESTRO3=mCONFIG_SND_FM801=mCONFIG_SND_FM801_TEA575X=mCONFIG_SND_ICE1712=mCONFIG_SND_ICE1724=mCONFIG_SND_INTEL8X0=mCONFIG_SND_INTEL8X0M=mCONFIG_SND_SONICVIBES=mCONFIG_SND_VIA82XX=mCONFIG_SND_VIA82XX_MODEM=mCONFIG_SND_VX222=mCONFIG_SND_HDA_INTEL=m
#
# USB devices
#CONFIG_SND_USB_AUDIO=mCONFIG_SND_USB_USX2Y=m
#
# PCMCIA devices
#CONFIG_SND_VXPOCKET=mCONFIG_SND_PDAUDIOCF=m
#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
#
# USB support
#CONFIG_USB_ARCH_HAS_HCD=yCONFIG_USB_ARCH_HAS_OHCI=yCONFIG_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 setCONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
#
# USB Host Controller Drivers
#CONFIG_USB_EHCI_HCD=mCONFIG_USB_EHCI_SPLIT_ISO=yCONFIG_USB_EHCI_ROOT_HUB_TT=yCONFIG_USB_ISP116X_HCD=mCONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_BIG_ENDIAN is not setCONFIG_USB_OHCI_LITTLE_ENDIAN=yCONFIG_USB_UHCI_HCD=mCONFIG_USB_SL811_HCD=mCONFIG_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=mCONFIG_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 setCONFIG_USB_STORAGE_DATAFAB=yCONFIG_USB_STORAGE_FREECOM=yCONFIG_USB_STORAGE_ISD200=yCONFIG_USB_STORAGE_DPCM=yCONFIG_USB_STORAGE_USBAT=yCONFIG_USB_STORAGE_SDDR09=yCONFIG_USB_STORAGE_SDDR55=yCONFIG_USB_STORAGE_JUMPSHOT=yCONFIG_USB_STORAGE_ONETOUCH=y
#
# USB Input Devices
#CONFIG_USB_HID=yCONFIG_USB_HIDINPUT=yCONFIG_HID_FF=yCONFIG_HID_PID=yCONFIG_LOGITECH_FF=yCONFIG_THRUSTMASTER_FF=yCONFIG_USB_HIDDEV=yCONFIG_USB_AIPTEK=mCONFIG_USB_WACOM=mCONFIG_USB_ACECAD=mCONFIG_USB_KBTAB=mCONFIG_USB_POWERMATE=mCONFIG_USB_MTOUCH=mCONFIG_USB_ITMTOUCH=mCONFIG_USB_EGALAX=mCONFIG_USB_YEALINK=mCONFIG_USB_XPAD=mCONFIG_USB_ATI_REMOTE=mCONFIG_USB_KEYSPAN_REMOTE=mCONFIG_USB_APPLETOUCH=m
#
# USB Imaging devices
#CONFIG_USB_MDC800=mCONFIG_USB_MICROTEK=m
#
# USB Multimedia devices
#CONFIG_USB_DABUSB=mCONFIG_USB_VICAM=mCONFIG_USB_DSBR=mCONFIG_USB_IBMCAM=mCONFIG_USB_KONICAWC=mCONFIG_USB_OV511=mCONFIG_USB_SE401=mCONFIG_USB_SN9C102=mCONFIG_USB_STV680=mCONFIG_USB_W9968CF=mCONFIG_USB_PWC=m
#
# USB Network Adapters
#CONFIG_USB_CATC=mCONFIG_USB_KAWETH=mCONFIG_USB_PEGASUS=mCONFIG_USB_RTL8150=mCONFIG_USB_USBNET=mCONFIG_USB_NET_AX8817X=mCONFIG_USB_NET_CDCETHER=mCONFIG_USB_NET_GL620A=mCONFIG_USB_NET_NET1080=mCONFIG_USB_NET_PLUSB=m
# CONFIG_USB_NET_RNDIS_HOST is not setCONFIG_USB_NET_CDC_SUBSET=mCONFIG_USB_ALI_M5632=yCONFIG_USB_AN2720=yCONFIG_USB_BELKIN=yCONFIG_USB_ARMLINUX=yCONFIG_USB_EPSON2888=yCONFIG_USB_NET_ZAURUS=mCONFIG_USB_ZD1201=mCONFIG_USB_MON=y
#
# USB port drivers
#CONFIG_USB_USS720=m
#
# USB Serial Converter support
#CONFIG_USB_SERIAL=mCONFIG_USB_SERIAL_GENERIC=yCONFIG_USB_SERIAL_AIRPRIME=mCONFIG_USB_SERIAL_BELKIN=mCONFIG_USB_SERIAL_WHITEHEAT=mCONFIG_USB_SERIAL_DIGI_ACCELEPORT=mCONFIG_USB_SERIAL_CP2101=mCONFIG_USB_SERIAL_CYPRESS_M8=mCONFIG_USB_SERIAL_EMPEG=mCONFIG_USB_SERIAL_FTDI_SIO=mCONFIG_USB_SERIAL_VISOR=mCONFIG_USB_SERIAL_IPAQ=mCONFIG_USB_SERIAL_IR=mCONFIG_USB_SERIAL_EDGEPORT=mCONFIG_USB_SERIAL_EDGEPORT_TI=mCONFIG_USB_SERIAL_GARMIN=mCONFIG_USB_SERIAL_IPW=mCONFIG_USB_SERIAL_KEYSPAN_PDA=mCONFIG_USB_SERIAL_KEYSPAN=mCONFIG_USB_SERIAL_KEYSPAN_MPR=yCONFIG_USB_SERIAL_KEYSPAN_USA28=yCONFIG_USB_SERIAL_KEYSPAN_USA28X=yCONFIG_USB_SERIAL_KEYSPAN_USA28XA=yCONFIG_USB_SERIAL_KEYSPAN_USA28XB=yCONFIG_USB_SERIAL_KEYSPAN_USA19=yCONFIG_USB_SERIAL_KEYSPAN_USA18X=yCONFIG_USB_SERIAL_KEYSPAN_USA19W=yCONFIG_USB_SERIAL_KEYSPAN_USA19QW=yCONFIG_USB_SERIAL_KEYSPAN_USA19QI=yCONFIG_USB_SERIAL_KEYSPAN_USA49W=yCONFIG_USB_SERIAL_KEYSPAN_USA49WLC=yCONFIG_USB_SERIAL_KLSI=mCONFIG_USB_SERIAL_KOBIL_SCT=mCONFIG_USB_SERIAL_MCT_U232=mCONFIG_USB_SERIAL_PL2303=mCONFIG_USB_SERIAL_HP4X=mCONFIG_USB_SERIAL_SAFE=mCONFIG_USB_SERIAL_SAFE_PADDED=yCONFIG_USB_SERIAL_TI=mCONFIG_USB_SERIAL_CYBERJACK=mCONFIG_USB_SERIAL_XIRCOM=mCONFIG_USB_SERIAL_OPTION=mCONFIG_USB_SERIAL_OMNINET=mCONFIG_USB_EZUSB=y
#
# USB Miscellaneous drivers
#CONFIG_USB_EMI62=mCONFIG_USB_EMI26=mCONFIG_USB_AUERSWALD=mCONFIG_USB_RIO500=mCONFIG_USB_LEGOTOWER=mCONFIG_USB_LCD=mCONFIG_USB_LED=m
# CONFIG_USB_CYTHERM is not setCONFIG_USB_PHIDGETKIT=mCONFIG_USB_PHIDGETSERVO=mCONFIG_USB_IDMOUSE=mCONFIG_USB_SISUSBVGA=mCONFIG_USB_SISUSBVGA_CON=yCONFIG_USB_LD=mCONFIG_USB_TEST=m
#
# USB DSL modem support
#CONFIG_USB_ATM=mCONFIG_USB_SPEEDTOUCH=mCONFIG_USB_CXACRU=mCONFIG_USB_XUSBATM=m
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
#
# MMC/SD Card support
#CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not setCONFIG_MMC_BLOCK=mCONFIG_MMC_WBSD=m
#
# InfiniBand support
#CONFIG_INFINIBAND=mCONFIG_INFINIBAND_USER_MAD=mCONFIG_INFINIBAND_USER_ACCESS=mCONFIG_INFINIBAND_MTHCA=m
# CONFIG_INFINIBAND_MTHCA_DEBUG is not setCONFIG_INFINIBAND_IPOIB=m
# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
#
# SN Devices
#
#
# File systems
#CONFIG_EXT2_FS=yCONFIG_EXT2_FS_XATTR=yCONFIG_EXT2_FS_POSIX_ACL=yCONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not setCONFIG_EXT3_FS=mCONFIG_EXT3_FS_XATTR=yCONFIG_EXT3_FS_POSIX_ACL=yCONFIG_EXT3_FS_SECURITY=yCONFIG_JBD=m
# CONFIG_JBD_DEBUG is not setCONFIG_FS_MBCACHE=yCONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not setCONFIG_REISERFS_PROC_INFO=yCONFIG_REISERFS_FS_XATTR=yCONFIG_REISERFS_FS_POSIX_ACL=yCONFIG_REISERFS_FS_SECURITY=yCONFIG_JFS_FS=mCONFIG_JFS_POSIX_ACL=yCONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not setCONFIG_FS_POSIX_ACL=yCONFIG_XFS_FS=mCONFIG_XFS_EXPORT=yCONFIG_XFS_QUOTA=mCONFIG_XFS_SECURITY=yCONFIG_XFS_POSIX_ACL=y
# CONFIG_XFS_RT is not setCONFIG_MINIX_FS=mCONFIG_ROMFS_FS=mCONFIG_INOTIFY=yCONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not setCONFIG_QFMT_V2=yCONFIG_QUOTACTL=yCONFIG_DNOTIFY=yCONFIG_AUTOFS_FS=mCONFIG_AUTOFS4_FS=mCONFIG_FUSE_FS=m
#
# CD-ROM/DVD Filesystems
#CONFIG_ISO9660_FS=yCONFIG_JOLIET=yCONFIG_ZISOFS=yCONFIG_ZISOFS_FS=yCONFIG_UDF_FS=mCONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#CONFIG_FAT_FS=mCONFIG_MSDOS_FS=mCONFIG_VFAT_FS=mCONFIG_FAT_DEFAULT_CODEPAGE=437CONFIG_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=yCONFIG_PROC_KCORE=yCONFIG_SYSFS=yCONFIG_TMPFS=yCONFIG_HUGETLBFS=yCONFIG_HUGETLB_PAGE=yCONFIG_RAMFS=yCONFIG_RELAYFS_FS=m
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not setCONFIG_AFFS_FS=mCONFIG_HFS_FS=mCONFIG_HFSPLUS_FS=mCONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG is not setCONFIG_BFS_FS=mCONFIG_EFS_FS=m
# CONFIG_JFFS_FS is not setCONFIG_JFFS2_FS=mCONFIG_JFFS2_FS_DEBUG=0CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not setCONFIG_JFFS2_ZLIB=yCONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not setCONFIG_CRAMFS=mCONFIG_VXFS_FS=m
# CONFIG_HPFS_FS is not setCONFIG_QNX4FS_FS=mCONFIG_SYSV_FS=mCONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
#
# Network File Systems
#CONFIG_NFS_FS=mCONFIG_NFS_V3=yCONFIG_NFS_V3_ACL=yCONFIG_NFS_V4=yCONFIG_NFS_DIRECTIO=yCONFIG_NFSD=mCONFIG_NFSD_V2_ACL=yCONFIG_NFSD_V3=yCONFIG_NFSD_V3_ACL=yCONFIG_NFSD_V4=yCONFIG_NFSD_TCP=yCONFIG_LOCKD=mCONFIG_LOCKD_V4=yCONFIG_EXPORTFS=mCONFIG_NFS_ACL_SUPPORT=mCONFIG_NFS_COMMON=yCONFIG_SUNRPC=mCONFIG_SUNRPC_GSS=mCONFIG_RPCSEC_GSS_KRB5=mCONFIG_RPCSEC_GSS_SPKM3=mCONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not setCONFIG_CIFS=m
# CONFIG_CIFS_STATS is not setCONFIG_CIFS_XATTR=yCONFIG_CIFS_POSIX=y
# CONFIG_CIFS_EXPERIMENTAL is not setCONFIG_NCP_FS=mCONFIG_NCPFS_PACKET_SIGNING=yCONFIG_NCPFS_IOCTL_LOCKING=yCONFIG_NCPFS_STRONG=yCONFIG_NCPFS_NFS_NS=yCONFIG_NCPFS_OS2_NS=yCONFIG_NCPFS_SMALLDOS=yCONFIG_NCPFS_NLS=yCONFIG_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 setCONFIG_OSF_PARTITION=y
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not setCONFIG_MAC_PARTITION=yCONFIG_MSDOS_PARTITION=yCONFIG_BSD_DISKLABEL=yCONFIG_MINIX_SUBPARTITION=yCONFIG_SOLARIS_X86_PARTITION=yCONFIG_UNIXWARE_DISKLABEL=y
# CONFIG_LDM_PARTITION is not setCONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not setCONFIG_SUN_PARTITION=yCONFIG_EFI_PARTITION=y
#
# Native Language Support
#CONFIG_NLS=yCONFIG_NLS_DEFAULT="utf8"CONFIG_NLS_CODEPAGE_437=yCONFIG_NLS_CODEPAGE_737=mCONFIG_NLS_CODEPAGE_775=mCONFIG_NLS_CODEPAGE_850=mCONFIG_NLS_CODEPAGE_852=mCONFIG_NLS_CODEPAGE_855=mCONFIG_NLS_CODEPAGE_857=mCONFIG_NLS_CODEPAGE_860=mCONFIG_NLS_CODEPAGE_861=mCONFIG_NLS_CODEPAGE_862=mCONFIG_NLS_CODEPAGE_863=mCONFIG_NLS_CODEPAGE_864=mCONFIG_NLS_CODEPAGE_865=mCONFIG_NLS_CODEPAGE_866=mCONFIG_NLS_CODEPAGE_869=mCONFIG_NLS_CODEPAGE_936=mCONFIG_NLS_CODEPAGE_950=mCONFIG_NLS_CODEPAGE_932=mCONFIG_NLS_CODEPAGE_949=mCONFIG_NLS_CODEPAGE_874=mCONFIG_NLS_ISO8859_8=mCONFIG_NLS_CODEPAGE_1250=mCONFIG_NLS_CODEPAGE_1251=mCONFIG_NLS_ASCII=yCONFIG_NLS_ISO8859_1=mCONFIG_NLS_ISO8859_2=mCONFIG_NLS_ISO8859_3=mCONFIG_NLS_ISO8859_4=mCONFIG_NLS_ISO8859_5=mCONFIG_NLS_ISO8859_6=mCONFIG_NLS_ISO8859_7=mCONFIG_NLS_ISO8859_9=mCONFIG_NLS_ISO8859_13=mCONFIG_NLS_ISO8859_14=mCONFIG_NLS_ISO8859_15=mCONFIG_NLS_KOI8_R=mCONFIG_NLS_KOI8_U=mCONFIG_NLS_UTF8=m
#
# Profiling support
#
# CONFIG_PROFILING is not set
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
# CONFIG_PRINTK_IGNORE_LOGLEVEL is not setCONFIG_DEBUG_KERNEL=yCONFIG_MAGIC_SYSRQ=yCONFIG_LOG_BUF_SHIFT=17CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_PREEMPT is not setCONFIG_DEBUG_SPINLOCK_SLEEP=yCONFIG_WAKEUP_TIMING=y
# CONFIG_WAKEUP_LATENCY_HIST is not set
# CONFIG_CRITICAL_PREEMPT_TIMING is not set
# CONFIG_CRITICAL_IRQSOFF_TIMING is not setCONFIG_LATENCY_TIMING=y
# CONFIG_LATENCY_TRACE is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_HIGHMEM is not setCONFIG_DEBUG_BUGVERBOSE=yCONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_FS is not set
# CONFIG_USE_FRAME_POINTER is not setCONFIG_EARLY_PRINTK=yCONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_KPROBES is not setCONFIG_DEBUG_STACK_USAGE=y
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_4KSTACKS is not setCONFIG_X86_FIND_SMP_CONFIG=yCONFIG_X86_MPPARSE=y
#
# Security options
#
# CONFIG_KEYS is not setCONFIG_SECURITY=yCONFIG_SECURITY_NETWORK=yCONFIG_SECURITY_CAPABILITIES=y
# CONFIG_SECURITY_ROOTPLUG is not set
# CONFIG_SECURITY_SECLVL is not setCONFIG_SECURITY_SELINUX=yCONFIG_SECURITY_SELINUX_BOOTPARAM=yCONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1CONFIG_SECURITY_SELINUX_DISABLE=yCONFIG_SECURITY_SELINUX_DEVELOP=yCONFIG_SECURITY_SELINUX_AVC_STATS=yCONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
#
# Cryptographic options
#CONFIG_CRYPTO=yCONFIG_CRYPTO_HMAC=yCONFIG_CRYPTO_NULL=mCONFIG_CRYPTO_MD4=mCONFIG_CRYPTO_MD5=yCONFIG_CRYPTO_SHA1=yCONFIG_CRYPTO_SHA256=mCONFIG_CRYPTO_SHA512=mCONFIG_CRYPTO_WP512=mCONFIG_CRYPTO_TGR192=mCONFIG_CRYPTO_DES=mCONFIG_CRYPTO_BLOWFISH=mCONFIG_CRYPTO_TWOFISH=mCONFIG_CRYPTO_SERPENT=mCONFIG_CRYPTO_AES=mCONFIG_CRYPTO_AES_586=mCONFIG_CRYPTO_CAST5=mCONFIG_CRYPTO_CAST6=mCONFIG_CRYPTO_TEA=mCONFIG_CRYPTO_ARC4=mCONFIG_CRYPTO_KHAZAD=mCONFIG_CRYPTO_ANUBIS=mCONFIG_CRYPTO_DEFLATE=mCONFIG_CRYPTO_MICHAEL_MIC=mCONFIG_CRYPTO_CRC32C=m
# CONFIG_CRYPTO_TEST is not setCONFIG_CRYPTO_SIGNATURE=yCONFIG_CRYPTO_SIGNATURE_DSA=yCONFIG_CRYPTO_MPILIB=y
#
# Hardware crypto devices
#CONFIG_CRYPTO_DEV_PADLOCK=yCONFIG_CRYPTO_DEV_PADLOCK_AES=y
#
# Library routines
#CONFIG_CRC_CCITT=mCONFIG_CRC16=mCONFIG_CRC32=yCONFIG_LIBCRC32C=mCONFIG_ZLIB_INFLATE=yCONFIG_ZLIB_DEFLATE=mCONFIG_TEXTSEARCH=yCONFIG_TEXTSEARCH_KMP=mCONFIG_TEXTSEARCH_BM=mCONFIG_TEXTSEARCH_FSM=mCONFIG_GENERIC_HARDIRQS=yCONFIG_GENERIC_IRQ_PROBE=yCONFIG_X86_BIOS_REBOOT=yCONFIG_PC=y
Re: 2.6.14-rc2-rt2
Quoted 6 lines · Fernando Lopez-Lezcano
{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
Re: 2.6.14-rc2-rt2
Quoted 9 lines · Thomas Gleixner
Quoted 6 lines · Fernando Lopez-Lezcano
{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
Re: 2.6.14-rc2-rt2
In reply to Fernando Lopez-LezcanoQuoted 11 lines · Fernando Lopez-Lezcano
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....
Quoted 3 lines
Failing .config attached.
-- Fernando
Here's the fix.
lib/semaphore-sleepers.c +7 -0
@@ -176,3 +176,10 @@ fastcall int __compat_down_trylock(strucspin_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);
arch/i386/kernel/semaphore.c +0 -7
@@ -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); -
Re: 2.6.14-rc2-rt2
Quoted 12 lines · Daniel Walker
Quoted 11 lines · Fernando Lopez-Lezcano
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....
Quoted 3 lines
Quoted 1 line
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
Re: 2.6.14-rc2-rt2
Quoted 4 lines · Fernando Lopez-Lezcano
Quoted 1 line
Here's the fix.
Hey thanks! That fixes that, but the compile fails further along:
Quoted 8 lines
CHK
include/linux/compile.h
UPDinclude/linux/compile.h
arch/i386/kernel/built-in.o(.text+0xf086): In function `do_powersaver':longhaul.c: undefined reference tosafe_halt' arch/i386/kernel/built-in.o(.text+0xf271): In functionlonghaul_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
Re: 2.6.14-rc2-rt2
Quoted 15 lines · Ingo Molnar
Quoted 4 lines · Fernando Lopez-Lezcano
Quoted 1 line
Here's the fix.
Hey thanks! That fixes that, but the compile fails further along:
Quoted 8 lines
CHK
include/linux/compile.h
UPDinclude/linux/compile.h
arch/i386/kernel/built-in.o(.text+0xf086): In function `do_powersaver':longhaul.c: undefined reference tosafe_halt' arch/i386/kernel/built-in.o(.text+0xf271): In functionlonghaul_setstate':longhaul.c: undefined reference to `safe_halt'
make: *** [.tmp_vmlinux1] Error 1
Quoted 1 line
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 oncefs/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 typedrivers/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 oncedrivers/isdn/hisax/st5481_usb.c:648: error: for each function it appears in.)
make[3]: *** [drivers/isdn/hisax/st5481_usb.o] Error 1
-- Fernando
Re: 2.6.14-rc2-rt2
Quoted 32 lines · Fernando Lopez-Lezcano
Quoted 1 line
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 oncefs/ntfs/aops.c:108: error: for each function it appears in.) make[2]: *** [fs/ntfs/aops.o] Error 1and (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 attributewarn_unused_resultdrivers/isdn/hisax/config.c:647: warning: ignoring return value of 'copy_to_user', declared with attributewarn_unused_resultdrivers/isdn/hisax/callc.c: In function 'HiSax_writebuf_skb':drivers/isdn/hisax/callc.c:1781: warning: large integer implicitly truncated to unsigned typedrivers/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 oncedrivers/isdn/hisax/st5481_usb.c:648: error: for each function it appears in.)
make[3]: *** [drivers/isdn/hisax/st5481_usb.o] Error 1
Quoted 3 lines
-- Fernando
Regarding NTFS - try with the attached patch. It seems to be still missing from 2.6.14-rc2-rt7.
ntfs/aops.c renamed from ntfs/aops.c.old +3 -6
@@ -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 ; }
Re: 2.6.14-rc2-rt2
In reply to Ingo MolnarHi all,
-rt[45] do not compile with CONFIG_HOTPLUG_CPU. ktimers seem to mess up. Not a biggie, don't need it anyway.
Peter
Signature · 1 line
Peter Zijlstra <[email protected]>
Re: 2.6.14-rc2-rt2
In reply to Ingo MolnarQuoted 5 lines · Ingo Molnar
i have released the 2.6.14-rc2-rt2 tree, which can be downloaded from the usual place:
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
mm/slab.c +1 -1
@@ -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;
Ingo Molnar
AppliedRe: 2.6.14-rc2-rt2
Quoted 9 lines · Badari Pulavarty
Quoted 5 lines · Ingo Molnar
i have released the 2.6.14-rc2-rt2 tree, which can be downloaded from the usual place:
Hi Ingo,
Quoted 8 lines
I noticed that you moved to "-rt7" already.
"-rt7" fails to compile withCONFIG_NUMA.
mm/slab.c:2404: error: conflicting types forkmem_cache_alloc_node' include/linux/slab.h:122: error: previous declaration ofkmem_cache_alloc_node'Here is the simple fix.
thanks, applied.
Ingo
2.6.14-rc3-rt1
In reply to Ingo Molnari 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
Re: 2.6.14-rc3-rt1
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
Quoted 56 lines · Ingo Molnar
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_lockto 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.ccompilation 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-rt1Ingo
Re: 2.6.14-rc3-rt1
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
Quoted 65 lines · Mark Knecht
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,
MarkQuoted 56 lines · Ingo Molnar
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_lockto 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.ccompilation 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-rt1Ingo
Re: 2.6.14-rc3-rt1
Quoted 4 lines · Mark Knecht
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 ;-)
drivers/pcmcia/cs.c +3 -0
@@ -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 */
PATCH 1/1 pcmcia-shutdown-fix.patch
Quoted 3 lines · Steven Rostedt
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_INTERRUPTIBLEstate. 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 <[email protected]>
--
drivers/pcmcia/cs.c | 3 +++ 1 files changed, 3 insertions(+)
drivers/pcmcia/cs.c +3 -0
@@ -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 */
Re: [patch] pcmcia-shutdown-fix.patch
Quoted 9 lines · Ingo Molnar
Quoted 3 lines · Steven Rostedt
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_INTERRUPTIBLEstate. 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.
Signature · 3 lines
Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 Serial core
Re: [patch] pcmcia-shutdown-fix.patch
Quoted 8 lines · Russell King
Quoted 7 lines · Ingo Molnar
Quoted 3 lines · Steven Rostedt
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_INTERRUPTIBLEstate. Here's the fix.
Quoted 6 lines
Quoted 2 lines
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
Re: [patch] pcmcia-shutdown-fix.patch
In reply to Russell KingQuoted 8 lines · Russell King
Quoted 7 lines · Ingo Molnar
Quoted 3 lines · Steven Rostedt
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_INTERRUPTIBLEstate. Here's the fix.
Quoted 6 lines
Quoted 2 lines
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
drivers/pcmcia/cs.c renamed from drivers/pcmcia/cs.c.orig +3 -0
@@ -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 */
Re: [patch] pcmcia-shutdown-fix.patch
Quoted 14 lines · Steven Rostedt
Quoted 11 lines · Russell King
Quoted 9 lines · Ingo Molnar
Quoted 3 lines · Steven Rostedt
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_INTERRUPTIBLEstate. Here's the fix.ah, certainly makes sense. Dominik, does it look good to you too? Patch below is for upstream.
Quoted 7 lines
Quoted 3 lines
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.
Quoted 24 lines
-- Steve
Signed-off-by Steven Rostedt <[email protected]>Index:
linux-2.6.14-rc3/drivers/pcmcia/cs.c
===================================================================drivers/pcmcia/cs.c renamed from drivers/pcmcia/cs.c.orig +3
-1@@ -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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: 2.6.14-rc3-rt1
In reply to Ingo MolnarI 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
Re: 2.6.14-rc3-rt1
Quoted 1 line · Felix Oxley
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
Re: 2.6.14-rc3-rt1
In reply to Felix OxleyQuoted 8 lines · Felix Oxley
I have a compile error in
drivers/net/hamradio/mkiss.cCC [M]
drivers/net/hamradio/mkiss.odrivers/net/hamradio/mkiss.c:625: error:
RW_LOCK_UNLOCKED’ undeclared here (not in a function)Due to the fact that
Quoted 7 lines
RW_LOCK_UNLOCKEDhas 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
drivers/net/hamradio/mkiss.c +1 -1
@@ -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) {