Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Announce] 2.6.29-rc4-rt1

188 views
Skip to first unread message

Thomas Gleixner

unread,
Feb 11, 2009, 5:45:35 PM2/11/09
to LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
After a 1.5 years sabbatical from preempt-rt we are pleased to
announce a refactored preempt-rt patch against linux-2.6.29-rc4.

The patch is working on x86 (32 and 64bit) but we have not yet updated
ARM, PPC and MIPS (work in progress).

We also dropped some experimental features of the base preempt-rt
queue 2.6.26.8-rt15 simply because we wanted to survive the forward
port over 3 kernel releases with the least amount of surprises. These
features (e.g. multiple reader PI locks) are not essential for the
preempt-rt functionality and need some serious overhaul anyway.

The interested -rt observer might have noticed that we based our work
on the 2.6.26.8-rt15 patch queue and did not pick the git-rt tree
which is based on 2.6.28. The reason for this is that we wanted to pick
the most stable patch queue and the git-rt tree has a lot of rewritten
new code. Our work is not making the work which was done over the last
months in the git-rt tree obsolete, quite the contrary: we want to
provide a stable yet latest-kernel based foundation and integrate those
changes gradually, as they become ready.

The further plan for the new -rt series is to merge it fully into git
and integrate it into the -tip git tree so it gets the same treatment
as all of our -tip based work: fully automated compile and boot
testing. Furthermore an automated multi architecture -rt performance
regression test based on the same infrastructure is currently being
built.

The integration into the -tip tree also allows us to seperate out parts
of -rt which are ready for mainline more easily and integrate them
with our usual propagation to mainline.

The structure of the patches is likely to change over the next days
when we tackle the git integration, but we appreciate your feedback in
the form of comments, bugreports and patches.

Enough said. You can find the new patches at the following location:

http://www.kernel.org/pub/linux/kernel/projects/rt/

Information on the RT patch can be found at:

http://rt.wiki.kernel.org/index.php/Main_Page

to build the 2.6.29-rc4-rt1 tree, the following patches should be
applied:

http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc4.tar.bz2
http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc4-rt1.bz2

The broken out patches are also available at the same download
location.

Enjoy !

Thomas, Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Frederic Weisbecker

unread,
Feb 11, 2009, 7:51:17 PM2/11/09
to Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams


Hi!

I get some sleep while atomic warnings.
I've put the log and my config in attachment.


rtcrash
config-bad

Frederic Weisbecker

unread,
Feb 11, 2009, 9:13:26 PM2/11/09
to Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

Note, it's a wicked bug: I can't reproduce it anymore.
I would have been glad to give you an irqsoff trace but I can't :-)

Oh yes I have two other warnings, for the second one, I'm not sure
this is really only present in -rt.

The first one, a lockdep warning:

[ 2.975320] ---------------------------------
[ 2.975320] inconsistent {hardirq-on-W} -> {in-hardirq-W} usage.
[ 2.975320] swapper/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
[ 2.975320] (per_cpu__lock_slab_irq_locks_locked#2){+-..}, at: [<ffffffff802f6823>] kfree+0x43/0xc0
[ 2.975320] {hardirq-on-W} state was registered at:
[ 2.975320] [<ffffffff802822c5>] __lock_acquire+0x6f5/0x1b20
[ 2.975320] [<ffffffff8028378f>] lock_acquire+0x9f/0xe0
[ 2.975320] [<ffffffff8077c7f5>] rt_spin_lock+0x85/0xb0
[ 2.975320] [<ffffffff802f8251>] kmem_cache_alloc+0x51/0x1f0
[ 2.975320] [<ffffffff80253eab>] copy_process+0x9b/0x1500
[ 2.975320] [<ffffffff802553a0>] do_fork+0x90/0x4a0
[ 2.975320] [<ffffffff80213552>] kernel_thread+0x82/0xe0
[ 2.975320] [<ffffffff802135ba>] child_rip+0xa/0x20
[ 2.975320] [<ffffffffffffffff>] 0xffffffffffffffff
[ 2.975320] irq event stamp: 18114
[ 2.975320] hardirqs last enabled at (18113): [<ffffffff8021a935>] default_idle+0x55/0x60
[ 2.975320] hardirqs last disabled at (18114): [<ffffffff8021222a>] save_args+0x6a/0x70
[ 2.975320] softirqs last enabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
[ 2.975320] softirqs last disabled at (0): [<(null)>] (null)
[ 2.975320]
[ 2.975320] other info that might help us debug this:
[ 2.975320] no locks held by swapper/0.
[ 2.975320]
[ 2.975320] stack backtrace:
[ 2.975320] Pid: 0, comm: swapper Not tainted 2.6.29-rc4-rt1-tip #1
[ 2.975320] Call Trace:
[ 2.975320] <IRQ> [<ffffffff8027fcbc>] print_usage_bug+0x19c/0x200
[ 2.975320] [<ffffffff8021e6af>] ? save_stack_trace+0x2f/0x50
[ 2.975320] [<ffffffff80280315>] mark_lock+0x2a5/0xcd0
[ 2.975320] [<ffffffff8028245e>] __lock_acquire+0x88e/0x1b20
[ 2.975320] [<ffffffff8028216b>] ? __lock_acquire+0x59b/0x1b20
[ 2.975320] [<ffffffff802243e4>] ? post_set+0x64/0x70
[ 2.975320] [<ffffffff8028378f>] lock_acquire+0x9f/0xe0
[ 2.975320] [<ffffffff802f6823>] ? kfree+0x43/0xc0
[ 2.975320] [<ffffffff8077c7f5>] rt_spin_lock+0x85/0xb0
[ 2.975320] [<ffffffff802f6823>] ? kfree+0x43/0xc0
[ 2.975320] [<ffffffff802f6823>] kfree+0x43/0xc0
[ 2.975320] [<ffffffff8027f2fd>] ? trace_hardirqs_off+0xd/0x10
[ 2.975320] [<ffffffff8028a156>] generic_smp_call_function_single_interrupt+0x106/0x110
[ 2.975320] [<ffffffff80227144>] smp_call_function_single_interrupt+0x24/0x40
[ 2.975320] [<ffffffff80213223>] call_function_single_interrupt+0x13/0x20
[ 2.975320] <EOI> [<ffffffff8022df7b>] ? native_safe_halt+0xb/0x10
[ 2.975320] [<ffffffff8022df79>] ? native_safe_halt+0x9/0x10
[ 2.975320] [<ffffffff8021a93a>] ? default_idle+0x5a/0x60
[ 2.975320] [<ffffffff8021136e>] ? cpu_idle+0x7e/0x100
[ 2.975320] [<ffffffff80775b6c>] ? start_secondary+0x197/0x1eb


The second, a sysfs warning:

[ 8.042459] ------------[ cut here ]------------
[ 8.054763] WARNING: at fs/sysfs/dir.c:462 sysfs_add_one+0x51/0x60()
[ 8.066777] Hardware name: AMILO Li 2727
[ 8.078555] sysfs: duplicate filename '14:4' can not be created
[ 8.090353] Pid: 33, comm: work_on_cpu/0 Not tainted 2.6.29-rc4-rt1-tip #1
[ 8.102482] Call Trace:
[ 8.102492] [<ffffffff80255ea3>] warn_slowpath+0xd3/0x130
[ 8.102500] [<ffffffff8077cbeb>] ? _mutex_unlock+0x2b/0x40
[ 8.102508] [<ffffffff80212096>] ? ftrace_call+0x5/0x2b
[ 8.102513] [<ffffffff8035c835>] ? sysfs_find_dirent+0x35/0x50
[ 8.102518] [<ffffffff8035c9f4>] ? __sysfs_add_one+0x24/0xe0
[ 8.102523] [<ffffffff8035cb01>] sysfs_add_one+0x51/0x60
[ 8.102528] [<ffffffff8035dcb3>] sysfs_do_create_link+0x103/0x170
[ 8.102533] [<ffffffff8035dd53>] sysfs_create_link+0x13/0x20
[ 8.102540] [<ffffffff8051d739>] device_add+0x209/0x620
[ 8.102547] [<ffffffff80289128>] ? __rt_spin_lock_init+0x48/0x60
[ 8.102552] [<ffffffff8051db6e>] device_register+0x1e/0x30
[ 8.102557] [<ffffffff8051dc64>] device_create_vargs+0xe4/0x100
[ 8.102563] [<ffffffff8051dcd0>] device_create+0x50/0x60
[ 8.102570] [<ffffffff80612a25>] ? sound_insert_unit+0x55/0x1e0
[ 8.102575] [<ffffffff8077c843>] ? rt_spin_unlock+0x23/0x80
[ 8.102579] [<ffffffff80612a25>] ? sound_insert_unit+0x55/0x1e0
[ 8.102584] [<ffffffff80612afa>] sound_insert_unit+0x12a/0x1e0
[ 8.102590] [<ffffffff80612d35>] register_sound_special_device+0xa5/0x220
[ 8.102595] [<ffffffff8077c112>] ? rt_mutex_lock+0x22/0x60
[ 8.102601] [<ffffffff80625499>] snd_register_oss_device+0x239/0x2c0
[ 8.102608] [<ffffffff8063b2b0>] register_oss_dsp+0x60/0x90
[ 8.102613] [<ffffffff80212096>] ? ftrace_call+0x5/0x2b
[ 8.102618] [<ffffffff80212096>] ? ftrace_call+0x5/0x2b
[ 8.102623] [<ffffffff80212096>] ? ftrace_call+0x5/0x2b
[ 8.102629] [<ffffffff8063f5e7>] snd_pcm_oss_register_minor+0x167/0x260
[ 8.102634] [<ffffffff80627955>] ? snd_timer_dev_register+0x35/0x130
[ 8.102640] [<ffffffff80627a0b>] ? snd_timer_dev_register+0xeb/0x130
[ 8.102645] [<ffffffff80624855>] ? snd_device_register+0x65/0x80
[ 8.102650] [<ffffffff806365af>] ? snd_pcm_timer_init+0x14f/0x1a0
[ 8.102656] [<ffffffff8062b79d>] snd_pcm_dev_register+0x1ad/0x2c0
[ 8.102661] [<ffffffff80212000>] ? sys_rt_sigreturn+0x250/0x290
[ 8.102667] [<ffffffff806247c9>] snd_device_register_all+0x39/0x60
[ 8.102672] [<ffffffff8061f25a>] snd_card_register+0x3a/0x3d0
[ 8.102678] [<ffffffff8076e5a6>] azx_probe+0x7b6/0xa90
[ 8.102685] [<ffffffff80677960>] ? azx_send_cmd+0x0/0x120
[ 8.102690] [<ffffffff80677a80>] ? azx_get_response+0x0/0x240
[ 8.102695] [<ffffffff80676eb0>] ? azx_attach_pcm_stream+0x0/0x1c0
[ 8.102701] [<ffffffff8026a5c0>] ? do_work_for_cpu+0x0/0x30
[ 8.102708] [<ffffffff80455847>] local_pci_probe+0x17/0x20
[ 8.102713] [<ffffffff8026a5d8>] do_work_for_cpu+0x18/0x30
[ 8.102718] [<ffffffff8026a88d>] run_workqueue+0x16d/0x2c0
[ 8.102722] [<ffffffff8026a83a>] ? run_workqueue+0x11a/0x2c0
[ 8.102727] [<ffffffff8026aa8f>] worker_thread+0xaf/0x130
[ 8.102733] [<ffffffff8026f5f0>] ? autoremove_wake_function+0x0/0x40
[ 8.102738] [<ffffffff8026a9e0>] ? worker_thread+0x0/0x130
[ 8.102742] [<ffffffff8026a9e0>] ? worker_thread+0x0/0x130
[ 8.102747] [<ffffffff8026f0ee>] kthread+0x4e/0x90
[ 8.102752] [<ffffffff802135ba>] child_rip+0xa/0x20
[ 8.102757] [<ffffffff80212f54>] ? restore_args+0x0/0x30
[ 8.102762] [<ffffffff8026f0a0>] ? kthread+0x0/0x90
[ 8.102766] [<ffffffff802135b0>] ? child_rip+0x0/0x20
[ 8.102777] ---[ end trace 57b9b5741e12ebf7 ]---

Ingo Molnar

unread,
Feb 12, 2009, 3:18:38 AM2/12/09
to Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

* Frederic Weisbecker <fwei...@gmail.com> wrote:

> The first one, a lockdep warning:
>

> [ 2.975320] [<ffffffff8077c7f5>] rt_spin_lock+0x85/0xb0
> [ 2.975320] [<ffffffff802f6823>] ? kfree+0x43/0xc0
> [ 2.975320] [<ffffffff802f6823>] kfree+0x43/0xc0
> [ 2.975320] [<ffffffff8027f2fd>] ? trace_hardirqs_off+0xd/0x10
> [ 2.975320] [<ffffffff8028a156>] generic_smp_call_function_single_interrupt+0x106/0x110
> [ 2.975320] [<ffffffff80227144>] smp_call_function_single_interrupt+0x24/0x40
> [ 2.975320] [<ffffffff80213223>] call_function_single_interrupt+0x13/0x20
> [ 2.975320] <EOI> [<ffffffff8022df7b>] ? native_safe_halt+0xb/0x10
> [ 2.975320] [<ffffffff8022df79>] ? native_safe_halt+0x9/0x10
> [ 2.975320] [<ffffffff8021a93a>] ? default_idle+0x5a/0x60
> [ 2.975320] [<ffffffff8021136e>] ? cpu_idle+0x7e/0x100
> [ 2.975320] [<ffffffff80775b6c>] ? start_secondary+0x197/0x1eb

hm, that's a complex one - we do kfree() from IPI context, dunno why this
never triggered in our testing of -rt1.

> The second, a sysfs warning:
>
> [ 8.042459] ------------[ cut here ]------------
> [ 8.054763] WARNING: at fs/sysfs/dir.c:462 sysfs_add_one+0x51/0x60()
> [ 8.066777] Hardware name: AMILO Li 2727
> [ 8.078555] sysfs: duplicate filename '14:4' can not be created

that should be harmless - unless you only get it under -rt1.

Ingo

Ingo Molnar

unread,
Feb 12, 2009, 3:19:57 AM2/12/09
to Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

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

> hm, that's a complex one - we do kfree() from IPI context, [...]

The patch below might do the trick - it offloads this to a softirq.
Not tested yet.

Ingo

------------------>
Subject: rt: fix ipi kfree(), introduce IPI_SOFTIRQ
From: Ingo Molnar <mi...@elte.hu>
Date: Thu Feb 12 09:06:11 CET 2009

in 2.6.28 generic_smp_call_function_interrupt() grew a kfree(),
which is a rather complex, sleepable method under -rt. But the
IPI code runs as a hardirq - which cannot run such code.

So defer this work to a softirq context instead. It still stays
on the same CPU so the percpu IPI assumptions are upheld.

Signed-off-by: Ingo Molnar <mi...@elte.hu>
---
include/linux/interrupt.h | 1 +
include/linux/smp.h | 3 +++
init/main.c | 1 +
kernel/smp.c | 15 +++++++++++++--
4 files changed, 18 insertions(+), 2 deletions(-)

Index: tip/include/linux/interrupt.h
===================================================================
--- tip.orig/include/linux/interrupt.h
+++ tip/include/linux/interrupt.h
@@ -257,6 +257,7 @@ enum
SCHED_SOFTIRQ,
HRTIMER_SOFTIRQ,
RCU_SOFTIRQ, /* Preferable RCU should always be the last softirq */
+ IPI_SOFTIRQ,
/* Entries after this are ignored in split softirq mode */
MAX_SOFTIRQ,

Index: tip/include/linux/smp.h
===================================================================
--- tip.orig/include/linux/smp.h
+++ tip/include/linux/smp.h
@@ -104,6 +104,9 @@ void ipi_call_lock(void);
void ipi_call_unlock(void);
void ipi_call_lock_irq(void);
void ipi_call_unlock_irq(void);
+void ipi_init(void);
+#else
+static inline void ipi_init(void) { }
#endif

/*
Index: tip/init/main.c
===================================================================
--- tip.orig/init/main.c
+++ tip/init/main.c
@@ -606,6 +606,7 @@ asmlinkage void __init start_kernel(void
/* init some links before init_ISA_irqs() */
early_irq_init();
init_IRQ();
+ ipi_init();
pidhash_init();
init_timers();
hrtimers_init();
Index: tip/kernel/smp.c
===================================================================
--- tip.orig/kernel/smp.c
+++ tip/kernel/smp.c
@@ -4,12 +4,13 @@
* (C) Jens Axboe <jens....@oracle.com> 2008
*
*/
+#include <linux/smp.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/percpu.h>
-#include <linux/rcupdate.h>
#include <linux/rculist.h>
-#include <linux/smp.h>
+#include <linux/rcupdate.h>
+#include <linux/interrupt.h>

static DEFINE_PER_CPU(struct call_single_queue, call_single_queue);
static LIST_HEAD(call_function_queue);
@@ -152,6 +153,11 @@ void generic_smp_call_function_interrupt
*/
void generic_smp_call_function_single_interrupt(void)
{
+ raise_softirq_irqoff(IPI_SOFTIRQ);
+}
+
+static void run_generic_smp_call_function_single(struct softirq_action *h)
+{
struct call_single_queue *q = &__get_cpu_var(call_single_queue);
LIST_HEAD(list);

@@ -430,3 +436,8 @@ void ipi_call_unlock_irq(void)
{
spin_unlock_irq(&call_function_lock);
}
+
+void __init ipi_init(void)
+{
+ open_softirq(IPI_SOFTIRQ, run_generic_smp_call_function_single);
+}

Ingo Molnar

unread,
Feb 12, 2009, 3:22:42 AM2/12/09
to Frederic Weisbecker, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

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

> ------------------>
> Subject: rt: fix ipi kfree(), introduce IPI_SOFTIRQ
> From: Ingo Molnar <mi...@elte.hu>
> Date: Thu Feb 12 09:06:11 CET 2009
>
> in 2.6.28 generic_smp_call_function_interrupt() grew a kfree(),
> which is a rather complex, sleepable method under -rt. But the
> IPI code runs as a hardirq - which cannot run such code.
>
> So defer this work to a softirq context instead. It still stays
> on the same CPU so the percpu IPI assumptions are upheld.

On a second thought ...

I think we could eliminate the kfree() instead, and keep the
atomicity of IPI cross-calls. Linus expressed doubts about
the IPI kmalloc()/kfree() pair we do in the generic SMP IPI
code, suggesting that it probably does not help performance
all that much - so such a change might be upstream-able as well
and would keep -rt closer to mainline.

Ingo

Ingo Molnar

unread,
Feb 12, 2009, 3:28:28 AM2/12/09
to Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

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

> * Ingo Molnar <mi...@elte.hu> wrote:
>
> > hm, that's a complex one - we do kfree() from IPI context, [...]
>
> The patch below might do the trick - it offloads this to a softirq.
> Not tested yet.

ok, it's lightly tested now: it built and booted up fine to X with your config.

Ingo

Ingo Molnar

unread,
Feb 12, 2009, 3:39:31 AM2/12/09
to Clark Williams, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde

* Clark Williams <will...@redhat.com> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1


>
> On Wed, 11 Feb 2009 23:43:44 +0100 (CET)
> Thomas Gleixner <tg...@tglx.de> wrote:
>
> > After a 1.5 years sabbatical from preempt-rt we are pleased to
> > announce a refactored preempt-rt patch against linux-2.6.29-rc4.
>
>

> Hi Thomas,
>
> I got the following after booting on my T60:
>
> - ------------[ cut here ]------------
> WARNING: at crypto/blkcipher.c:327 blkcipher_walk_first+0x72/0x1aa()
> Hardware name:
> Modules linked in: fuse i915 drm i2c_algo_bit cfbcopyarea cfbimgblt cfbfillrect autofs4 coretemp sunrpc nf_conntrack_netbios_ns xt_state ipt_REJECT iptable_filter ip_tables cpufreq_ondemand dm_multipath scsi_dh uinput btusb bluetooth sg snd_hda_codec_analog snd_hda_intel snd_hda_codec iwl3945 snd_hwdep e1000e lib80211 snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss video snd_mixer_oss snd_pcm snd_timer snd soundcore snd_page_alloc i2c_i801 i2c_core thinkpad_acpi rfkill output iTCO_wdt iTCO_vendor_support button joydev hwmon dm_snapshot dm_zero dm_mirror dm_region_hash dm_log uhci_hcd ohci_hcd ehci_hcd [last unloaded: microcode]
> Pid: 9, comm: sirq-tasklet/0 Not tainted 2.6.29-rc4-rt1-tip #50
> Call Trace:
> [<ffffffff8023bd23>] warn_slowpath+0xaf/0xd6
> [<ffffffff8035d176>] blkcipher_walk_first+0x72/0x1aa
> [<ffffffff802309cb>] ? enqueue_task_fair+0x25/0x68
> [<ffffffff8035d2f6>] blkcipher_walk_virt+0x1a/0x1c
> [<ffffffff803620af>] crypto_ecb_crypt+0x2b/0x9a
> [<ffffffff80359d20>] ? setkey+0xc4/0xd8
> [<ffffffff8036426a>] ? arc4_crypt+0x0/0x5e
> [<ffffffff8036214f>] crypto_ecb_decrypt+0x31/0x33
> [<ffffffff8035c8fb>] ? setkey+0xba/0xcd
> [<ffffffff8022bf8f>] ? __wake_up_common+0x49/0x7f
> [<ffffffff80519beb>] ieee80211_wep_decrypt_data+0x5e/0x95
> [<ffffffff80519d3a>] ieee80211_wep_decrypt+0x118/0x16f
> [<ffffffff80519ddc>] ieee80211_crypto_wep_decrypt+0x4b/0x93
> [<ffffffff80524d8f>] ieee80211_invoke_rx_handlers+0x26b/0x1395
> [<ffffffff8021ce0f>] ? native_smp_send_reschedule+0x59/0x5b
> [<ffffffff8022c699>] ? resched_task+0x60/0x62
> [<ffffffff802367a9>] ? try_to_wake_up+0x352/0x364
> [<ffffffff802367ca>] ? default_wake_function+0xf/0x11
> [<ffffffff80526418>] __ieee80211_rx_handle_packet+0x55f/0x59c
> [<ffffffff80526c82>] __ieee80211_rx+0x508/0x572
> [<ffffffff80517451>] ieee80211_tasklet_handler+0x6d/0xff
> [<ffffffff80241192>] __tasklet_action+0xa1/0x112
> [<ffffffff80241277>] tasklet_action+0x39/0x3b
> [<ffffffff80240eef>] ksoftirqd+0x162/0x278
> [<ffffffff80240d8d>] ? ksoftirqd+0x0/0x278
> [<ffffffff80240d8d>] ? ksoftirqd+0x0/0x278
> [<ffffffff8024f5ce>] kthread+0x48/0x73
> [<ffffffff8020cf6a>] child_rip+0xa/0x20
> [<ffffffff8024f586>] ? kthread+0x0/0x73
> [<ffffffff8020cf60>] ? child_rip+0x0/0x20
> - ---[ end trace b6a0ff9dfe960c5e ]---
>
> It booted to runlevel 5, brought up GDM, I logged in and XFCE came up
> fine. It wasn't until NetworkManager started dorking around with the
> 802.11 adapter and started doing WEP things that I got the above
> warning. Right after I got this, NetworkManager connected and the
> system locked up. Sorry, no traceback from the panic.
>
> I haven't gone far in looking at this, but it looks like we might have
> to adjust expectations in the crypto code, since it's probably ok to
> be in_irq() in this case, since we're actually in a kthread.

no, removing the warning would just hide the real bug.

Could you try the fix below please?

Ingo

--------------------------------->
Subject: irq threading: fix PF_HARDIRQ definition
From: Ingo Molnar <mi...@elte.hu>
Date: Thu Feb 12 09:29:14 CET 2009

Clark Williams reported the following warning:

WARNING: at crypto/blkcipher.c:327 blkcipher_walk_first+0x72/0x1aa()

[<ffffffff8035d176>] blkcipher_walk_first+0x72/0x1aa
[<ffffffff8035d2f6>] blkcipher_walk_virt+0x1a/0x1c
[<ffffffff803620af>] crypto_ecb_crypt+0x2b/0x9a
[<ffffffff8036214f>] crypto_ecb_decrypt+0x31/0x33
[<ffffffff80519beb>] ieee80211_wep_decrypt_data+0x5e/0x95
[<ffffffff80519d3a>] ieee80211_wep_decrypt+0x118/0x16f
[<ffffffff80519ddc>] ieee80211_crypto_wep_decrypt+0x4b/0x93
[<ffffffff80524d8f>] ieee80211_invoke_rx_handlers+0x26b/0x1395
[<ffffffff80526418>] __ieee80211_rx_handle_packet+0x55f/0x59c
[<ffffffff80526c82>] __ieee80211_rx+0x508/0x572
[<ffffffff80517451>] ieee80211_tasklet_handler+0x6d/0xff
[<ffffffff80241192>] __tasklet_action+0xa1/0x112
[<ffffffff80241277>] tasklet_action+0x39/0x3b
[<ffffffff80240eef>] ksoftirqd+0x162/0x278

Which comes from:

if (WARN_ON_ONCE(in_irq()))
return -EDEADLK;

This warning is surprising, as it clearly comes from a softirq
context.

The in_irq() definition looks like this on -rt:

#define in_irq() (hardirq_count() || (current->flags & PF_HARDIRQ))

hardirq_count() is correct, but looking at PF_HARDIRQ's definition in sched.h:

#define PF_EXITPIDONE 0x00000008 /* pi exit done on shut down */
#define PF_VCPU 0x00000010 /* I'm a virtual CPU */
#define PF_HARDIRQ 0x08000020 /* hardirq context */
#define PF_NOSCHED 0x00000020 /* Userspace does not expect scheduling */
#define PF_FORKNOEXEC 0x00000040 /* forked but didn't exec */

Reveals that due to a typo it not only overlaps the PF_NOSCHED bit, but
also has a spurious 0x08000000 component.

Move it to a free slot: 0x00000080.

Reported-by: Clark Williams <will...@redhat.com>


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

include/linux/sched.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: tip/include/linux/sched.h
===================================================================
--- tip.orig/include/linux/sched.h
+++ tip/include/linux/sched.h
@@ -1721,9 +1721,9 @@ extern cputime_t task_gtime(struct task_
#define PF_EXITING 0x00000004 /* getting shut down */
#define PF_EXITPIDONE 0x00000008 /* pi exit done on shut down */
#define PF_VCPU 0x00000010 /* I'm a virtual CPU */
-#define PF_HARDIRQ 0x08000020 /* hardirq context */
#define PF_NOSCHED 0x00000020 /* Userspace does not expect scheduling */
#define PF_FORKNOEXEC 0x00000040 /* forked but didn't exec */
+#define PF_HARDIRQ 0x00000080 /* hardirq context */
#define PF_SUPERPRIV 0x00000100 /* used super-user privileges */
#define PF_DUMPCORE 0x00000200 /* dumped core */
#define PF_SIGNALED 0x00000400 /* killed by a signal */

Ingo Molnar

unread,
Feb 12, 2009, 3:42:59 AM2/12/09
to Clark Williams, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde

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

> hardirq_count() is correct, but looking at PF_HARDIRQ's definition in sched.h:
>
> #define PF_EXITPIDONE 0x00000008 /* pi exit done on shut down */
> #define PF_VCPU 0x00000010 /* I'm a virtual CPU */
> #define PF_HARDIRQ 0x08000020 /* hardirq context */
> #define PF_NOSCHED 0x00000020 /* Userspace does not expect scheduling */
> #define PF_FORKNOEXEC 0x00000040 /* forked but didn't exec */
>
> Reveals that due to a typo it not only overlaps the PF_NOSCHED bit, but
> also has a spurious 0x08000000 component.

The reason is that when we forward ported the definition, i first moved it
to the 0x08000000 slot - but that slot was already taken. (our PF_ task
flag space is really crowded ...)

Then i moved it to a free spot, 0x20. Or so i thought: a later -rt patch
in the queue introduced PF_NOSCHED which overlapped it.

But the bigger problem was the spurious 0x08000000 component, which overlaps
with:

#define PF_SOFTIRQ 0x08000000 /* softirq context */

Explaining why the warning triggered in ksoftirqd ;-)

Anyway, my fix should solve this. Do you still see the lockup under X? (make
sure you also have the IPI fix applied, see the patch in this same thread.)

Ingo

Peter Zijlstra

unread,
Feb 12, 2009, 4:21:18 AM2/12/09
to Ingo Molnar, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Thu, 2009-02-12 at 09:19 +0100, Ingo Molnar wrote:
> * Ingo Molnar <mi...@elte.hu> wrote:
>
> > hm, that's a complex one - we do kfree() from IPI context, [...]
>
> The patch below might do the trick - it offloads this to a softirq.
> Not tested yet.

The simple fix is something like:

---
kernel/smp.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/kernel/smp.c b/kernel/smp.c
index bbedbb7..9b974c1 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -252,7 +252,11 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
* will make sure the callee is done with the
* data before a new caller will use it.
*/
+#ifndef CONFIG_PREEMPT_RT
data = kmalloc(sizeof(*data), GFP_ATOMIC);
+#else
+ data = NULL;
+#endif
if (data)
data->flags = CSD_FLAG_ALLOC;
else {
@@ -347,7 +351,11 @@ void smp_call_function_many(const struct cpumask *mask,
return;
}

+#ifndef CONFIG_PREEMPT_RT
data = kmalloc(sizeof(*data) + cpumask_size(), GFP_ATOMIC);
+#else
+ data = NULL;
+#endif
if (unlikely(!data)) {
/* Slow path. */
for_each_online_cpu(cpu) {

Ingo Molnar

unread,
Feb 12, 2009, 5:08:35 AM2/12/09
to Peter Zijlstra, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams

* Peter Zijlstra <pet...@infradead.org> wrote:

> On Thu, 2009-02-12 at 09:19 +0100, Ingo Molnar wrote:
> > * Ingo Molnar <mi...@elte.hu> wrote:
> >
> > > hm, that's a complex one - we do kfree() from IPI context, [...]
> >
> > The patch below might do the trick - it offloads this to a softirq.
> > Not tested yet.
>
> The simple fix is something like:
>
> ---
> kernel/smp.c | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)

ok, i made it unconditional (not just a PREEMPT_RT hac) and did the
cleanup below on top of it.

I dont think repeat, queued IPIs are all that interesting from a
performance point of view. If they are, it will all be clearly
bisectable.

Ingo

--------------->
Subject: generic-ipi: remove kmalloc, cleanup
From: Ingo Molnar <mi...@elte.hu>

Now that we dont use the kmalloc() sequence anymore, remove
CSD_FLAG_ALLOC and all its dependencies.

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

kernel/smp.c | 86 +++++++++++------------------------------------------------
1 file changed, 17 insertions(+), 69 deletions(-)

Index: tip/kernel/smp.c
===================================================================
--- tip.orig/kernel/smp.c
+++ tip/kernel/smp.c

@@ -17,8 +17,7 @@ __cacheline_aligned_in_smp DEFINE_RAW_SP

enum {
CSD_FLAG_WAIT = 0x01,
- CSD_FLAG_ALLOC = 0x02,
- CSD_FLAG_LOCK = 0x04,
+ CSD_FLAG_LOCK = 0x02,
};

struct call_function_data {
@@ -85,15 +84,6 @@ static void generic_exec_single(int cpu,
csd_flag_wait(data);
}

-static void rcu_free_call_data(struct rcu_head *head)
-{
- struct call_function_data *data;
-
- data = container_of(head, struct call_function_data, rcu_head);
-
- kfree(data);
-}
-
/*
* Invoked by arch to handle an IPI for call function. Must be called with
* interrupts disabled.
@@ -138,8 +128,6 @@ void generic_smp_call_function_interrupt
smp_wmb();
data->csd.flags &= ~CSD_FLAG_WAIT;
}
- if (data->csd.flags & CSD_FLAG_ALLOC)
- call_rcu(&data->rcu_head, rcu_free_call_data);
}
rcu_read_unlock();

@@ -190,8 +178,7 @@ void generic_smp_call_function_single_in
} else if (data_flags & CSD_FLAG_LOCK) {
smp_wmb();
data->flags &= ~CSD_FLAG_LOCK;
- } else if (data_flags & CSD_FLAG_ALLOC)
- kfree(data);
+ }
}
/*
* See comment on outer loop
@@ -236,13 +223,11 @@ int smp_call_function_single(int cpu, vo
/*
* We are calling a function on a single CPU
* and we are not going to wait for it to finish.
- * We first try to allocate the data, but if we
- * fail, we fall back to use a per cpu data to pass
- * the information to that CPU. Since all callers
- * of this code will use the same data, we must
- * synchronize the callers to prevent a new caller
- * from corrupting the data before the callee
- * can access it.
+ * We use a per cpu data to pass the information to
+ * that CPU. Since all callers of this code will use
+ * the same data, we must synchronize the callers to
+ * prevent a new caller from corrupting the data before
+ * the callee can access it.
*
* The CSD_FLAG_LOCK is used to let us know when
* the IPI handler is done with the data.
@@ -252,15 +237,10 @@ int smp_call_function_single(int cpu, vo


* will make sure the callee is done with the
* data before a new caller will use it.
*/

- data = NULL;
- if (data)
- data->flags = CSD_FLAG_ALLOC;
- else {
- data = &per_cpu(csd_data, me);
- while (data->flags & CSD_FLAG_LOCK)
- cpu_relax();
- data->flags = CSD_FLAG_LOCK;
- }
+ data = &per_cpu(csd_data, me);
+ while (data->flags & CSD_FLAG_LOCK)
+ cpu_relax();
+ data->flags = CSD_FLAG_LOCK;
} else {
data = &d;
data->flags = CSD_FLAG_WAIT;
@@ -321,8 +301,6 @@ void smp_call_function_many(const struct
void (*func)(void *), void *info,
bool wait)
{
- struct call_function_data *data;
- unsigned long flags;
int cpu, next_cpu;

/* Can deadlock when called with interrupts disabled */
@@ -347,43 +325,13 @@ void smp_call_function_many(const struct
return;
}

- data = NULL;
- if (unlikely(!data)) {
- /* Slow path. */
- for_each_online_cpu(cpu) {
- if (cpu == smp_processor_id())
- continue;
- if (cpumask_test_cpu(cpu, mask))
- smp_call_function_single(cpu, func, info, wait);
- }
- return;
+ /* Slow path. */
+ for_each_online_cpu(cpu) {
+ if (cpu == smp_processor_id())
+ continue;
+ if (cpumask_test_cpu(cpu, mask))
+ smp_call_function_single(cpu, func, info, wait);
}
-
- spin_lock_init(&data->lock);
- data->csd.flags = CSD_FLAG_ALLOC;
- if (wait)
- data->csd.flags |= CSD_FLAG_WAIT;
- data->csd.func = func;
- data->csd.info = info;
- cpumask_and(to_cpumask(data->cpumask_bits), mask, cpu_online_mask);
- cpumask_clear_cpu(smp_processor_id(), to_cpumask(data->cpumask_bits));
- data->refs = cpumask_weight(to_cpumask(data->cpumask_bits));
-
- spin_lock_irqsave(&call_function_lock, flags);
- list_add_tail_rcu(&data->csd.list, &call_function_queue);
- spin_unlock_irqrestore(&call_function_lock, flags);
-
- /*
- * Make the list addition visible before sending the ipi.
- */
- smp_mb();
-
- /* Send a message to all CPUs in the map */
- arch_send_call_function_ipi_mask(to_cpumask(data->cpumask_bits));
-
- /* optionally wait for the CPUs to complete */
- if (wait)
- csd_flag_wait(&data->csd);
}
EXPORT_SYMBOL(smp_call_function_many);

Peter Zijlstra

unread,
Feb 12, 2009, 5:14:41 AM2/12/09
to Ingo Molnar, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams, rusty
On Thu, 2009-02-12 at 11:07 +0100, Ingo Molnar wrote:
> * Peter Zijlstra <pet...@infradead.org> wrote:
>
> > On Thu, 2009-02-12 at 09:19 +0100, Ingo Molnar wrote:
> > > * Ingo Molnar <mi...@elte.hu> wrote:
> > >
> > > > hm, that's a complex one - we do kfree() from IPI context, [...]
> > >
> > > The patch below might do the trick - it offloads this to a softirq.
> > > Not tested yet.
> >
> > The simple fix is something like:
> >
> > ---
> > kernel/smp.c | 8 ++++++++
> > 1 files changed, 8 insertions(+), 0 deletions(-)
>
> ok, i made it unconditional (not just a PREEMPT_RT hac) and did the
> cleanup below on top of it.
>
> I dont think repeat, queued IPIs are all that interesting from a
> performance point of view. If they are, it will all be clearly
> bisectable.

Right, except I really don't like the smp_call_function_many() slow path
that's now the only path.

Rusty did that I think, but he also had some idea on how to fix it, I
think it boiled down to sticking a count in the call data instead of the
full cpumask.

So I'd rather we first fix that code, and then remove the kmalloc
all-together like you propose here.

Ingo Molnar

unread,
Feb 12, 2009, 5:17:41 AM2/12/09
to Frederic Weisbecker, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

* Frederic Weisbecker <fwei...@gmail.com> wrote:

> > I get some sleep while atomic warnings.
> > I've put the log and my config in attachment.
>
> Note, it's a wicked bug: I can't reproduce it anymore.
> I would have been glad to give you an irqsoff trace but I can't :-)

i tried your config and after a few bootups the warning did trigger.

It's the new resource counter code. The IRQ flags disabling it does
seems a bit dubious to me. Peter, what do you think?

Frederic, could you try the patch below?

Ingo

----------->
Subject: rt: res_counter fix
From: Ingo Molnar <mi...@elte.hu>
Date: Thu Feb 12 11:11:47 CET 2009

Frederic Weisbecker reported this warning:

[ 45.228562] BUG: sleeping function called from invalid context at kernel/rtmutex.c:683
[ 45.228571] in_atomic(): 0, irqs_disabled(): 1, pid: 4290, name: ntpdate
[ 45.228576] INFO: lockdep is turned off.
[ 45.228580] irq event stamp: 0
[ 45.228583] hardirqs last enabled at (0): [<(null)>] (null)
[ 45.228589] hardirqs last disabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
[ 45.228602] softirqs last enabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
[ 45.228609] softirqs last disabled at (0): [<(null)>] (null)
[ 45.228617] Pid: 4290, comm: ntpdate Tainted: G W 2.6.29-rc4-rt1-tip #1
[ 45.228622] Call Trace:
[ 45.228632] [<ffffffff8027dfb0>] ? print_irqtrace_events+0xd0/0xe0
[ 45.228639] [<ffffffff8024cd73>] __might_sleep+0x113/0x130
[ 45.228646] [<ffffffff8077c811>] rt_spin_lock+0xa1/0xb0
[ 45.228653] [<ffffffff80296a3d>] res_counter_charge+0x5d/0x130
[ 45.228660] [<ffffffff802fb67f>] __mem_cgroup_try_charge+0x7f/0x180
[ 45.228667] [<ffffffff802fc407>] mem_cgroup_charge_common+0x57/0x90
[ 45.228674] [<ffffffff80212096>] ? ftrace_call+0x5/0x2b
[ 45.228680] [<ffffffff802fc49d>] mem_cgroup_newpage_charge+0x5d/0x60
[ 45.228688] [<ffffffff802d94ce>] __do_fault+0x29e/0x4c0
[ 45.228694] [<ffffffff8077c843>] ? rt_spin_unlock+0x23/0x80
[ 45.228700] [<ffffffff802db8b5>] handle_mm_fault+0x205/0x890
[ 45.228707] [<ffffffff80212096>] ? ftrace_call+0x5/0x2b
[ 45.228714] [<ffffffff8023495e>] do_page_fault+0x11e/0x2a0
[ 45.228720] [<ffffffff8077e5a5>] page_fault+0x25/0x30
[ 45.228727] [<ffffffff8043e1ed>] ? __clear_user+0x3d/0x70
[ 45.228733] [<ffffffff8043e1d1>] ? __clear_user+0x21/0x70

The reason is the raw IRQ flag use of kernel/res_counter.c.

The irq flags tricks there seem a bit pointless: it cannot
protect the c->parent linkage because local_irq_save() is
only per CPU.

So replace it with _nort(). This code needs a second look.

Reported-by: Frederic Weisbecker <fwei...@gmail.com>


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

kernel/res_counter.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

Index: tip/kernel/res_counter.c
===================================================================
--- tip.orig/kernel/res_counter.c
+++ tip/kernel/res_counter.c
@@ -43,7 +43,7 @@ int res_counter_charge(struct res_counte
struct res_counter *c, *u;

*limit_fail_at = NULL;
- local_irq_save(flags);
+ local_irq_save_nort(flags);
for (c = counter; c != NULL; c = c->parent) {
spin_lock(&c->lock);
ret = res_counter_charge_locked(c, val);
@@ -62,7 +62,7 @@ undo:
spin_unlock(&u->lock);
}
done:
- local_irq_restore(flags);
+ local_irq_restore_nort(flags);
return ret;
}

@@ -79,13 +79,13 @@ void res_counter_uncharge(struct res_cou
unsigned long flags;
struct res_counter *c;

- local_irq_save(flags);
+ local_irq_save_nort(flags);
for (c = counter; c != NULL; c = c->parent) {
spin_lock(&c->lock);
res_counter_uncharge_locked(c, val);
spin_unlock(&c->lock);
}
- local_irq_restore(flags);
+ local_irq_restore_nort(flags);

Ingo Molnar

unread,
Feb 12, 2009, 5:21:45 AM2/12/09
to Frederic Weisbecker, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

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

> Frederic, could you try the patch below?

Please try v2 below - it might even build ;-)

Ingo

------------------->

kernel/res_counter.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

Index: tip/kernel/res_counter.c
===================================================================
--- tip.orig/kernel/res_counter.c
+++ tip/kernel/res_counter.c

@@ -14,6 +14,7 @@
#include <linux/res_counter.h>
#include <linux/uaccess.h>
#include <linux/mm.h>
+#include <linux/interrupt.h>

void res_counter_init(struct res_counter *counter, struct res_counter *parent)
{
@@ -43,7 +44,7 @@ int res_counter_charge(struct res_counte


struct res_counter *c, *u;

*limit_fail_at = NULL;
- local_irq_save(flags);
+ local_irq_save_nort(flags);
for (c = counter; c != NULL; c = c->parent) {
spin_lock(&c->lock);
ret = res_counter_charge_locked(c, val);

@@ -62,7 +63,7 @@ undo:


spin_unlock(&u->lock);
}
done:
- local_irq_restore(flags);
+ local_irq_restore_nort(flags);
return ret;
}

@@ -79,13 +80,13 @@ void res_counter_uncharge(struct res_cou

KAMEZAWA Hiroyuki

unread,
Feb 12, 2009, 5:48:25 AM2/12/09
to Ingo Molnar, Frederic Weisbecker, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, bal...@linux.vnet.ibm.com

I'm sorry for no knowledge about RT. Could you teach me what
local_irq_save_nort() does ?

Hmm, how about just replacaing _irq() with preempt_disable()/enable() ?
xxx_nort() is better ?

AFAIK, these will not be called from irq context. (Added Balbir to CC:)

Regards,
-Kame

Ingo Molnar

unread,
Feb 12, 2009, 5:51:12 AM2/12/09
to Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

The fix below addresses a lockdep warning i triggered with your config.

(You could hit this if you try to use s2ram or hibernation or explicit
CPU hotplug ops.)

Ingo

-------------->
Subject: sched: cpu hotplug fix
From: Ingo Molnar <mi...@elte.hu>
Date: Thu Feb 12 11:35:40 CET 2009

rq_attach_root() does a kfree() with the runqueue lock held.

That's not a very wise move, fix it.

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

kernel/sched.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)

Index: tip/kernel/sched.c
===================================================================
--- tip.orig/kernel/sched.c
+++ tip/kernel/sched.c
@@ -7619,20 +7619,26 @@ static void free_rootdomain(struct root_

static void rq_attach_root(struct rq *rq, struct root_domain *rd)
{
+ struct root_domain *old_rd = NULL;
unsigned long flags;

spin_lock_irqsave(&rq->lock, flags);

if (rq->rd) {
- struct root_domain *old_rd = rq->rd;
+ old_rd = rq->rd;

if (cpumask_test_cpu(rq->cpu, old_rd->online))
set_rq_offline(rq);

cpumask_clear_cpu(rq->cpu, old_rd->span);

- if (atomic_dec_and_test(&old_rd->refcount))
- free_rootdomain(old_rd);
+ /*
+ * If we dont want to free the old_rt yet then
+ * set old_rd to NULL to skip the freeing later
+ * in this function:
+ */
+ if (!atomic_dec_and_test(&old_rd->refcount))
+ old_rd = NULL;
}

atomic_inc(&rd->refcount);
@@ -7643,6 +7649,9 @@ static void rq_attach_root(struct rq *rq
set_rq_online(rq);

spin_unlock_irqrestore(&rq->lock, flags);
+
+ if (old_rd)
+ free_rootdomain(old_rd);
}

static int __init_refok init_rootdomain(struct root_domain *rd, bool bootmem)

Ingo Molnar

unread,
Feb 12, 2009, 6:29:48 AM2/12/09
to KAMEZAWA Hiroyuki, Frederic Weisbecker, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, bal...@linux.vnet.ibm.com

_nort() will just turn them into NOPs in essence.

The question is, are these local IRQ flags manipulations really needed
in this code, and if yes, why?

Ingo

Peter Zijlstra

unread,
Feb 12, 2009, 7:07:47 AM2/12/09
to Ingo Molnar, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams, rusty
On Thu, 2009-02-12 at 11:16 +0100, Peter Zijlstra wrote:
> On Thu, 2009-02-12 at 11:07 +0100, Ingo Molnar wrote:
> > * Peter Zijlstra <pet...@infradead.org> wrote:
> >
> > > On Thu, 2009-02-12 at 09:19 +0100, Ingo Molnar wrote:
> > > > * Ingo Molnar <mi...@elte.hu> wrote:
> > > >
> > > > > hm, that's a complex one - we do kfree() from IPI context, [...]
> > > >
> > > > The patch below might do the trick - it offloads this to a softirq.
> > > > Not tested yet.
> > >
> > > The simple fix is something like:
> > >
> > > ---
> > > kernel/smp.c | 8 ++++++++
> > > 1 files changed, 8 insertions(+), 0 deletions(-)
> >
> > ok, i made it unconditional (not just a PREEMPT_RT hac) and did the
> > cleanup below on top of it.
> >
> > I dont think repeat, queued IPIs are all that interesting from a
> > performance point of view. If they are, it will all be clearly
> > bisectable.
>
> Right, except I really don't like the smp_call_function_many() slow path
> that's now the only path.
>
> Rusty did that I think, but he also had some idea on how to fix it, I
> think it boiled down to sticking a count in the call data instead of the
> full cpumask.
>
> So I'd rather we first fix that code, and then remove the kmalloc
> all-together like you propose here.

Right, I can't see a way around carrying that cpumask, there's just too
much that can go wrong without it.

So it put in unconditionally, how about this?


--
Subject: generic-smp: remove single ipi fallback for smp_call_function_many()

In preparation of removing the kmalloc() calls from the generic-ipi code
get rid of the single ipi fallback for smp_call_function_many().

Because we cannot get around carrying the cpumask in the data -- imagine
2 such calls with different but overlapping masks -- put in a full mask.

Signed-off-by: Peter Zijlstra <a.p.zi...@chello.nl>
---
kernel/smp.c | 47 ++++++++++++++++++++++++-----------------------
1 files changed, 24 insertions(+), 23 deletions(-)

diff --git a/kernel/smp.c b/kernel/smp.c
index bbedbb7..e6658e5 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -26,7 +26,7 @@ struct call_function_data {
spinlock_t lock;
unsigned int refs;
struct rcu_head rcu_head;
- unsigned long cpumask_bits[];
+ struct cpumask cpumask;
};

struct call_single_queue {
@@ -111,13 +111,13 @@ void generic_smp_call_function_interrupt(void)
list_for_each_entry_rcu(data, &call_function_queue, csd.list) {
int refs;

- if (!cpumask_test_cpu(cpu, to_cpumask(data->cpumask_bits)))
+ if (!cpumask_test_cpu(cpu, &data->cpumask))
continue;

data->csd.func(data->csd.info);

spin_lock(&data->lock);
- cpumask_clear_cpu(cpu, to_cpumask(data->cpumask_bits));
+ cpumask_clear_cpu(cpu, &data->cpumask);
WARN_ON(data->refs == 0);
data->refs--;
refs = data->refs;
@@ -137,8 +137,10 @@ void generic_smp_call_function_interrupt(void)
*/


smp_wmb();
data->csd.flags &= ~CSD_FLAG_WAIT;
- }
- if (data->csd.flags & CSD_FLAG_ALLOC)

+ } else if (data->csd.flags & CSD_FLAG_LOCK) {
+ smp_wmb();
+ data->csd.flags &= ~CSD_FLAG_LOCK;
+ } else if (data->csd.flags & CSD_FLAG_ALLOC)
call_rcu(&data->rcu_head, rcu_free_call_data);
}
rcu_read_unlock();
@@ -302,6 +304,8 @@ void __smp_call_function_single(int cpu, struct call_single_data *data)
arch_send_call_function_ipi(*(maskp))
#endif

+static DEFINE_PER_CPU(struct call_function_data, cfd_data);
+
/**
* smp_call_function_many(): Run a function on a set of other CPUs.
* @mask: The set of cpus to run on (only runs on online subset).
@@ -323,14 +327,14 @@ void smp_call_function_many(const struct cpumask *mask,
{
struct call_function_data *data;
unsigned long flags;
- int cpu, next_cpu;
+ int cpu, next_cpu, me = smp_processor_id();



/* Can deadlock when called with interrupts disabled */

WARN_ON(irqs_disabled());

/* So, what's a CPU they want? Ignoring this one. */
cpu = cpumask_first_and(mask, cpu_online_mask);


- if (cpu == smp_processor_id())

+ if (cpu == me)
cpu = cpumask_next_and(cpu, mask, cpu_online_mask);
/* No online cpus? We're done. */
if (cpu >= nr_cpu_ids)
@@ -338,7 +342,7 @@ void smp_call_function_many(const struct cpumask *mask,

/* Do we have another CPU which isn't us? */
next_cpu = cpumask_next_and(cpu, mask, cpu_online_mask);
- if (next_cpu == smp_processor_id())
+ if (next_cpu == me)
next_cpu = cpumask_next_and(next_cpu, mask, cpu_online_mask);

/* Fastpath: do that cpu by itself. */
@@ -347,27 +351,24 @@ void smp_call_function_many(const struct cpumask *mask,
return;
}

- data = kmalloc(sizeof(*data) + cpumask_size(), GFP_ATOMIC);


- if (unlikely(!data)) {
- /* Slow path. */
- for_each_online_cpu(cpu) {
- if (cpu == smp_processor_id())
- continue;
- if (cpumask_test_cpu(cpu, mask))
- smp_call_function_single(cpu, func, info, wait);
- }
- return;

+ data = kmalloc(sizeof(*data), GFP_ATOMIC);
+ if (data)
+ data->csd.flags = CSD_FLAG_ALLOC;
+ else {
+ data = &per_cpu(cfd_data, me);
+ while (data->csd.flags & CSD_FLAG_LOCK)
+ cpu_relax();
+ data->csd.flags = CSD_FLAG_LOCK;


}

spin_lock_init(&data->lock);
- data->csd.flags = CSD_FLAG_ALLOC;

if (wait)
data->csd.flags |= CSD_FLAG_WAIT;
data->csd.func = func;


data->csd.info = info;
- cpumask_and(to_cpumask(data->cpumask_bits), mask, cpu_online_mask);
- cpumask_clear_cpu(smp_processor_id(), to_cpumask(data->cpumask_bits));
- data->refs = cpumask_weight(to_cpumask(data->cpumask_bits));

+ cpumask_and(&data->cpumask, mask, cpu_online_mask);
+ cpumask_clear_cpu(smp_processor_id(), &data->cpumask);
+ data->refs = cpumask_weight(&data->cpumask);

spin_lock_irqsave(&call_function_lock, flags);
list_add_tail_rcu(&data->csd.list, &call_function_queue);
@@ -379,7 +380,7 @@ void smp_call_function_many(const struct cpumask *mask,
smp_mb();



/* Send a message to all CPUs in the map */
- arch_send_call_function_ipi_mask(to_cpumask(data->cpumask_bits));

+ arch_send_call_function_ipi_mask(&data->cpumask);



/* optionally wait for the CPUs to complete */

if (wait)

Peter Zijlstra

unread,
Feb 12, 2009, 7:34:36 AM2/12/09
to Ingo Molnar, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams, rusty
On Thu, 2009-02-12 at 13:09 +0100, Peter Zijlstra wrote:


> @@ -137,8 +137,10 @@ void generic_smp_call_function_interrupt(void)
> */
> smp_wmb();
> data->csd.flags &= ~CSD_FLAG_WAIT;
> - }
> - if (data->csd.flags & CSD_FLAG_ALLOC)
> + } else if (data->csd.flags & CSD_FLAG_LOCK) {
> + smp_wmb();
> + data->csd.flags &= ~CSD_FLAG_LOCK;
> + } else if (data->csd.flags & CSD_FLAG_ALLOC)
> call_rcu(&data->rcu_head, rcu_free_call_data);
> }
> rcu_read_unlock();

Hmm, I think this bit ought to go in rcu_free_call_data(), otherwise we
can have that same race again..

I'd better put a comment in on why we use RCU here.

KAMEZAWA Hiroyuki

unread,
Feb 12, 2009, 7:36:51 AM2/12/09
to Ingo Molnar, Frederic Weisbecker, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, bal...@linux.vnet.ibm.com
On Thu, 12 Feb 2009 12:28:54 +0100
Ingo Molnar <mi...@elte.hu> wrote:

From my point of view, No. But original design of res_coutner used irqsave/restore().
The author may think of use this function from irq-context.

But now, it seems it's better to remove them, Hmm.

Thanks,
-Kame

Frederic Weisbecker

unread,
Feb 12, 2009, 9:28:29 AM2/12/09
to Ingo Molnar, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
On Thu, Feb 12, 2009 at 11:21:13AM +0100, Ingo Molnar wrote:
>
> * Ingo Molnar <mi...@elte.hu> wrote:
>
> > Frederic, could you try the patch below?
>
> Please try v2 below - it might even build ;-)
>
> Ingo


Ok, I tested it through 3 bootups and it did not triggered.
But it's absolutely not a guarantee, as I said, I tried to reproduce it
with several bootups yesterday and I couln't see it again.

But by reading the warning and your patch, yes it is supposed to solve it :)

BTW, a small thing:



> [ 45.228589] hardirqs last disabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
> [ 45.228602] softirqs last enabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500


The reason for which I wanted to send an irqsoff trace is that the above lines are false.

addr2line -e vmlinux ffffffff8025449d
/home/me/linux/rt/linux-2.6.29-rc4/kernel/fork.c:1107 (before your patch)

Which is this area in copy_process:

#ifdef CONFIG_NUMA
p->mempolicy = mpol_dup(p->mempolicy);
if (IS_ERR(p->mempolicy)) {
retval = PTR_ERR(p->mempolicy);
p->mempolicy = NULL;
goto bad_fork_cleanup_cgroup;
}
mpol_fix_fork_child_flag(p); // <-- 1107
#endif

Nothing here disables irq.
That's why I wanted to provide an irqsoff trace. But, heh I only had to read
res_counter_charge() :-)

Anyway, there is a problem with these hardirqs/softirqs last disabled...

Frederic Weisbecker

unread,
Feb 12, 2009, 9:34:55 AM2/12/09
to Ingo Molnar, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Thu, Feb 12, 2009 at 11:07:56AM +0100, Ingo Molnar wrote:
>
> * Peter Zijlstra <pet...@infradead.org> wrote:
>
> > On Thu, 2009-02-12 at 09:19 +0100, Ingo Molnar wrote:
> > > * Ingo Molnar <mi...@elte.hu> wrote:
> > >
> > > > hm, that's a complex one - we do kfree() from IPI context, [...]
> > >
> > > The patch below might do the trick - it offloads this to a softirq.
> > > Not tested yet.
> >
> > The simple fix is something like:
> >
> > ---
> > kernel/smp.c | 8 ++++++++
> > 1 files changed, 8 insertions(+), 0 deletions(-)
>
> ok, i made it unconditional (not just a PREEMPT_RT hac) and did the
> cleanup below on top of it.
>
> I dont think repeat, queued IPIs are all that interesting from a
> performance point of view. If they are, it will all be clearly
> bisectable.
>
> Ingo


Would you prefer I test this one or wait for everybody agree a final version?

Peter Zijlstra

unread,
Feb 12, 2009, 9:42:15 AM2/12/09
to Frederic Weisbecker, Ingo Molnar, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Thu, 2009-02-12 at 15:28 +0100, Frederic Weisbecker wrote:
> > [ 45.228589] hardirqs last disabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
> > [ 45.228602] softirqs last enabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
>
>
> The reason for which I wanted to send an irqsoff trace is that the above lines are false.

copy_process() has:

#endif
p->hardirq_enable_ip = 0;
p->hardirq_enable_event = 0;
p->hardirq_disable_ip = _THIS_IP_;
p->hardirq_disable_event = 0;
p->softirqs_enabled = 1;
p->softirq_enable_ip = _THIS_IP_;
p->softirq_enable_event = 0;
p->softirq_disable_ip = 0;
p->softirq_disable_event = 0;
p->hardirq_context = 0;
p->softirq_context = 0;
#endif

the sequence count of 0 basically tells you it hasn't been set yet.

Peter Zijlstra

unread,
Feb 12, 2009, 9:43:13 AM2/12/09
to Frederic Weisbecker, Ingo Molnar, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Thu, 2009-02-12 at 15:34 +0100, Frederic Weisbecker wrote:
>
> Would you prefer I test this one or wait for everybody agree a final
> version?

It'll work, but its not mergable upstream like this, it greatly
pessimizes the smp_function_call() performance.

Ingo Molnar

unread,
Feb 12, 2009, 9:46:59 AM2/12/09
to Peter Zijlstra, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams

* Peter Zijlstra <a.p.zi...@chello.nl> wrote:

> On Thu, 2009-02-12 at 15:28 +0100, Frederic Weisbecker wrote:
> > > [ 45.228589] hardirqs last disabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
> > > [ 45.228602] softirqs last enabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
> >
> >
> > The reason for which I wanted to send an irqsoff trace is that the above lines are false.
>
> copy_process() has:
>
> #endif
> p->hardirq_enable_ip = 0;
> p->hardirq_enable_event = 0;
> p->hardirq_disable_ip = _THIS_IP_;
> p->hardirq_disable_event = 0;
> p->softirqs_enabled = 1;
> p->softirq_enable_ip = _THIS_IP_;
> p->softirq_enable_event = 0;
> p->softirq_disable_ip = 0;
> p->softirq_disable_event = 0;
> p->hardirq_context = 0;
> p->softirq_context = 0;
> #endif
>
> the sequence count of 0 basically tells you it hasn't been set yet.

maybe we should initialize it to -1 to make this more apparent?

Ingo

Frederic Weisbecker

unread,
Feb 12, 2009, 9:50:34 AM2/12/09
to Ingo Molnar, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Thu, Feb 12, 2009 at 03:46:24PM +0100, Ingo Molnar wrote:
>
> * Peter Zijlstra <a.p.zi...@chello.nl> wrote:
>
> > On Thu, 2009-02-12 at 15:28 +0100, Frederic Weisbecker wrote:
> > > > [ 45.228589] hardirqs last disabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
> > > > [ 45.228602] softirqs last enabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
> > >
> > >
> > > The reason for which I wanted to send an irqsoff trace is that the above lines are false.
> >
> > copy_process() has:
> >
> > #endif
> > p->hardirq_enable_ip = 0;
> > p->hardirq_enable_event = 0;
> > p->hardirq_disable_ip = _THIS_IP_;
> > p->hardirq_disable_event = 0;
> > p->softirqs_enabled = 1;
> > p->softirq_enable_ip = _THIS_IP_;
> > p->softirq_enable_event = 0;
> > p->softirq_disable_ip = 0;
> > p->softirq_disable_event = 0;
> > p->hardirq_context = 0;
> > p->softirq_context = 0;
> > #endif
> >
> > the sequence count of 0 basically tells you it hasn't been set yet.


Oh I see now, thanks Peter.


> maybe we should initialize it to -1 to make this more apparent?


Or why not set p->{hard,soft}irq_disable_ip = NULL ? (or 0, I don't know its type).

Peter Zijlstra

unread,
Feb 12, 2009, 9:52:22 AM2/12/09
to Ingo Molnar, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Thu, 2009-02-12 at 15:46 +0100, Ingo Molnar wrote:
> * Peter Zijlstra <a.p.zi...@chello.nl> wrote:
>
> > On Thu, 2009-02-12 at 15:28 +0100, Frederic Weisbecker wrote:
> > > > [ 45.228589] hardirqs last disabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
> > > > [ 45.228602] softirqs last enabled at (0): [<ffffffff8025449d>] copy_process+0x68d/0x1500
> > >
> > >
> > > The reason for which I wanted to send an irqsoff trace is that the above lines are false.
> >
> > copy_process() has:
> >
> > #endif
> > p->hardirq_enable_ip = 0;
> > p->hardirq_enable_event = 0;
> > p->hardirq_disable_ip = _THIS_IP_;
> > p->hardirq_disable_event = 0;
> > p->softirqs_enabled = 1;
> > p->softirq_enable_ip = _THIS_IP_;
> > p->softirq_enable_event = 0;
> > p->softirq_disable_ip = 0;
> > p->softirq_disable_event = 0;
> > p->hardirq_context = 0;
> > p->softirq_context = 0;
> > #endif
> >
> > the sequence count of 0 basically tells you it hasn't been set yet.
>
> maybe we should initialize it to -1 to make this more apparent?

I think the current state makes sense, it reflects the actual state of
copy_process.

Peter Zijlstra

unread,
Feb 12, 2009, 9:58:42 AM2/12/09
to Frederic Weisbecker, Ingo Molnar, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Thu, 2009-02-12 at 15:50 +0100, Frederic Weisbecker wrote:
>
> > maybe we should initialize it to -1 to make this more apparent?
>
>
> Or why not set p->{hard,soft}irq_disable_ip = NULL ? (or 0, I don't know its type).

It is to reflect the actual state at copy_process(), although I think
here's a little buglet:

ifdef CONFIG_TRACE_IRQFLAGS
p->irq_events = 0;
#ifdef __ARCH_WANT_INTERRUPTS_ON_CTXSW
p->hardirqs_enabled = 1;
#else
p->hardirqs_enabled = 0;


#endif
p->hardirq_enable_ip = 0;
p->hardirq_enable_event = 0;
p->hardirq_disable_ip = _THIS_IP_;
p->hardirq_disable_event = 0;
p->softirqs_enabled = 1;
p->softirq_enable_ip = _THIS_IP_;
p->softirq_enable_event = 0;
p->softirq_disable_ip = 0;
p->softirq_disable_event = 0;
p->hardirq_context = 0;
p->softirq_context = 0;
#endif

I think the hardirq_enable/disable_ip should also depend on
__ARCH_WANT_INTERRUPTS_ON_CTXSW.

Steven Rostedt

unread,
Feb 12, 2009, 10:43:50 AM2/12/09
to Peter Zijlstra, Ingo Molnar, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Carsten Emde, Clark Williams, rusty

Wont the first CPU that runs the callback unlock this? And then we run the
risk of two back to back callers on the same CPU, having the second
caller possibly corrupt the first.

-- Steve

Peter Zijlstra

unread,
Feb 12, 2009, 10:58:17 AM2/12/09
to Steven Rostedt, Ingo Molnar, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Carsten Emde, Clark Williams, rusty
On Thu, 2009-02-12 at 10:43 -0500, Steven Rostedt wrote:
> > + data = kmalloc(sizeof(*data), GFP_ATOMIC);
> > + if (data)
> > + data->csd.flags = CSD_FLAG_ALLOC;
> > + else {
> > + data = &per_cpu(cfd_data, me);
> > + while (data->csd.flags & CSD_FLAG_LOCK)
> > + cpu_relax();
> > + data->csd.flags = CSD_FLAG_LOCK;
>
> Wont the first CPU that runs the callback unlock this? And then we run the
> risk of two back to back callers on the same CPU, having the second
> caller possibly corrupt the first.

No, there's a ref count in there that ensures the last one unlocks it.

But that's still not enough, the global queue is RCU protected.

Suppose you have 4 cpus, and use smp_function_call_mask() to 2 others,
now its possible the 4th is also doing global ipis and is traversing the
global queue.

Therefore, if you remove the cfd when its done, it might be the 4th cpu
is in it trying to iterate to the next entry --> BANG.

The solution used is RCU freeing cfd's. This also means we have to RCU
free the LOCK flag, sadly an RCU grace period is waaaay too long to spin
wait on.

Hence this whole solution is not quite feasible.

There's various alternative solutions, but I'm not quite sure which
makes most sense.

The one I'm currently pondering is using the global queue only for
all-but-self cfd's, this matches the all-but-self ipi APIC case.

For smaller masks we could queue a csd per queue and send single ipis.

Clark Williams

unread,
Feb 12, 2009, 11:51:40 AM2/12/09
to Ingo Molnar, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thu, 12 Feb 2009 09:42:22 +0100
Ingo Molnar <mi...@elte.hu> wrote:
>
> Anyway, my fix should solve this. Do you still see the lockup under X? (make
> sure you also have the IPI fix applied, see the patch in this same thread.)

That did it (the IPI patch and the redefinition). I'm up with:

$ uname -a
Linux torg 2.6.29-rc4-rt1-tip #51 SMP PREEMPT RT Thu Feb 12 09:40:06
CST 2009 x86_64 x86_64 x86_64 GNU/Linux

Thanks, I'll do some latency testing on my test boxes next...

Clark
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (GNU/Linux)

iEYEARECAAYFAkmUU2gACgkQHyuj/+TTEp3c7wCgjnQuYgoLmGOmq26a2T198eh/
KdgAnjmX+cqwxYAtzaHeMH6/nO6MNuUH
=NHh/
-----END PGP SIGNATURE-----
「鴈ケサ ョ&゙~コ&カ ャ�-ア鰡カ ・学ョ寨岾ハ穃饕樌dzゲ�奛跖w* jgャアィ カ凹至ン「j/�艘ゲ槙�巌勣隴レ&「)゚。ォaカレ �ョGォ晞hョ 詼:+v鴎学閹ル・>W坡�iロaxP jリmカ�テ -サ +�d喟

Balbir Singh

unread,
Feb 12, 2009, 11:59:01 AM2/12/09
to Ingo Molnar, KAMEZAWA Hiroyuki, Frederic Weisbecker, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
* Ingo Molnar <mi...@elte.hu> [2009-02-12 12:28:54]:

We needed the local IRQ flags, since these counters are updated from
page fault context and from reclaim context with lru_lock held with
IRQ's disabled. I've been thinking about replacing the spin lock with
seq lock, but have not gotten to it yet.

--
Balbir

Peter Zijlstra

unread,
Feb 12, 2009, 12:29:43 PM2/12/09
to bal...@linux.vnet.ibm.com, Ingo Molnar, KAMEZAWA Hiroyuki, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Thu, 2009-02-12 at 22:28 +0530, Balbir Singh wrote:

> > _nort() will just turn them into NOPs in essence.
> >
> > The question is, are these local IRQ flags manipulations really needed
> > in this code, and if yes, why?
>
> We needed the local IRQ flags, since these counters are updated from
> page fault context and from reclaim context with lru_lock held with
> IRQ's disabled. I've been thinking about replacing the spin lock with
> seq lock, but have not gotten to it yet.

Ah, in that case we can get away with _nort I think, as both those
contexts are preemptable on -rt.

Thomas Gleixner

unread,
Feb 12, 2009, 5:57:38 PM2/12/09
to Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
We are pleased to announce the first update to our new preempt-rt
series. It fixes the reported bugs and some more.

Download locations:

http://rt.et.redhat.com/download/
http://www.kernel.org/pub/linux/kernel/projects/rt/

Information on the RT patch can be found at:

http://rt.wiki.kernel.org/index.php/Main_Page

to build the 2.6.29-rc4-rt2 tree, the following patches should be
applied:

http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc4.tar.bz2
http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc4-rt2.bz2

The broken out patches are also available at the same download
locations.

Enjoy !

Thomas, Ingo

KAMEZAWA Hiroyuki

unread,
Feb 12, 2009, 6:58:23 PM2/12/09
to bal...@linux.vnet.ibm.com, Ingo Molnar, Frederic Weisbecker, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

Hmm ? I can't understand. Why we have to disable IRQ here again ?
And,
- try_to_unmap() is called in shrink_page_list(), there, no zone->lru_lock.
- page fault path doesn't hold zone->lru_lock.

My concern is only shmem. But I think it doesn't call charge() within lock, actually.

Thanks,
-Kame

KAMEZAWA Hiroyuki

unread,
Feb 12, 2009, 7:31:06 PM2/12/09
to KAMEZAWA Hiroyuki, bal...@linux.vnet.ibm.com, Ingo Molnar, Frederic Weisbecker, Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
On Fri, 13 Feb 2009 08:56:40 +0900
KAMEZAWA Hiroyuki <kamezaw...@jp.fujitsu.com> wrote:

> On Thu, 12 Feb 2009 22:28:33 +0530
> Balbir Singh <bal...@linux.vnet.ibm.com> wrote:
>
> > * Ingo Molnar <mi...@elte.hu> [2009-02-12 12:28:54]:
> >
> > >
> > > * KAMEZAWA Hiroyuki <kamezaw...@jp.fujitsu.com> wrote:
> > >
> > > > On Thu, 12 Feb 2009 11:21:13 +0100
> > > > Ingo Molnar <mi...@elte.hu> wrote:
> > > The question is, are these local IRQ flags manipulations really needed
> > > in this code, and if yes, why?
> >
> > We needed the local IRQ flags, since these counters are updated from
> > page fault context and from reclaim context with lru_lock held with
> > IRQ's disabled. I've been thinking about replacing the spin lock with
> > seq lock, but have not gotten to it yet.
> >
> Hmm ? I can't understand. Why we have to disable IRQ here again ?
> And,
> - try_to_unmap() is called in shrink_page_list(), there, no zone->lru_lock.
> - page fault path doesn't hold zone->lru_lock.
>
> My concern is only shmem. But I think it doesn't call charge() within lock, actually

Clarification :)
res_counter_charge() is called from
- page fault
=> under down_read(mmap_sem), lock_page() may be held. IRQ=ENABLED)
- add_to_page_cache
=> under lock_page(), mapping->tree_lock is *not* held, IRQ=DISABLED
- shmem
=> info->lock is held, we use __GFP_NOWAIT here. IRQ=ENABLED
- shmem
=> info->lock is *not* held with GFP_KERNEL here, IRQ=ENABLED.
- migration
=> under lock_page() and mmap_sem, IRQ=ENABLED

res_counter_uncharge() is called from
- page_remove_rmap()//(Only when ANON)
=> anon_vma->lock and pte_lock(),lock_page() can be held. IRQ=ENABLED?
- remove_from_page_cache()
=> lock_page() and mapping->tree_lock is held, IRQ=DISABLED.

Summary:
"Charge" is considered as heavy operation and the call path is placed where the
thread can sleep, AMAP.
"Uncharge" is considered as light operation and call path is under some # of
spinlocks.


Bye,

Frederic Weisbecker

unread,
Feb 12, 2009, 7:48:35 PM2/12/09
to Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
On Thu, Feb 12, 2009 at 11:56:38PM +0100, Thomas Gleixner wrote:
> We are pleased to announce the first update to our new preempt-rt
> series. It fixes the reported bugs and some more.
>
> Download locations:
>
> http://rt.et.redhat.com/download/
> http://www.kernel.org/pub/linux/kernel/projects/rt/
>
> Information on the RT patch can be found at:
>
> http://rt.wiki.kernel.org/index.php/Main_Page
>
> to build the 2.6.29-rc4-rt2 tree, the following patches should be
> applied:
>
> http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc4.tar.bz2
> http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc4-rt2.bz2
>
> The broken out patches are also available at the same download
> locations.
>
> Enjoy !
>
> Thomas, Ingo


Hi,

It fixes the rt-concerned warning I had.
Now, a new little lockdep info, tell me if you need my config, I changed
it a bit:

[ 0.012874] INFO: trying to register non-static key.
[ 0.012940] the code is fine but needs lockdep annotation.
[ 0.013008] turning off the locking correctness validator.
[ 0.013847] Pid: 0, comm: swapper Not tainted 2.6.29-rc4-rt2-tip #2
[ 0.013917] Call Trace:
[ 0.013981] [<ffffffff80285985>] __lock_acquire+0x1825/0x1b20
[ 0.014053] [<ffffffff802846fb>] ? __lock_acquire+0x59b/0x1b20
[ 0.014125] [<ffffffff80283326>] ? mark_held_locks+0x56/0xa0
[ 0.014197] [<ffffffff80285d1f>] lock_acquire+0x9f/0xe0
[ 0.014267] [<ffffffff80780ea8>] ? rt_spin_lock_slowlock+0x38/0x310
[ 0.014342] [<ffffffff80783211>] __spin_lock_irqsave+0x51/0x70
[ 0.014415] [<ffffffff80780ea8>] ? rt_spin_lock_slowlock+0x38/0x310
[ 0.014489] [<ffffffff80780ea8>] rt_spin_lock_slowlock+0x38/0x310
[ 0.014562] [<ffffffff802836dc>] ? debug_check_no_locks_freed+0x9c/0x160
[ 0.014636] [<ffffffff80781edc>] rt_spin_lock+0x4c/0xa0
[ 0.014706] [<ffffffff80276f51>] compat_down_timeout+0x21/0x60
[ 0.014780] [<ffffffff804910ca>] acpi_os_wait_semaphore+0x4e/0x5d
[ 0.014853] [<ffffffff804aafa9>] acpi_ut_acquire_mutex+0x43/0x87
[ 0.014926] [<ffffffff804a06cd>] acpi_ns_root_initialize+0x28/0x2ab
[ 0.014999] [<ffffffff80449d88>] ? __raw_spin_lock_init+0x38/0x70
[ 0.015073] [<ffffffff80acbd6a>] acpi_initialize_subsystem+0x69/0x91
[ 0.015147] [<ffffffff80acc24a>] acpi_early_init+0x50/0xf5
[ 0.015219] [<ffffffff80aa1ea5>] start_kernel+0x3d2/0x4ca
[ 0.015290] [<ffffffff80aa12b9>] x86_64_start_reservations+0x99/0xb9
[ 0.015362] [<ffffffff80aa13d5>] x86_64_start_kernel+0xfc/0x10b
[ 0.015436] [<ffffffff80aa1140>] ? early_idt_handler+0x0/0x71

Oh and I just tested the tracers.
It seems to run fine for all of them except sysprof.
It passes the self-test but doesn't produce any trace when I manually try.

Not completely sure this is only in -rt so I'm pulling very latest -tip
and will see if I find the same problem there.

Frederic Weisbecker

unread,
Feb 12, 2009, 9:16:51 PM2/12/09
to Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams


About sysprof, it's an -rt problem, I don't see it on -tip.
The sysprof hrtimer callback is never called.

I'm digging to see what is happening.

Frederic Weisbecker

unread,
Feb 12, 2009, 10:09:42 PM2/12/09
to Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

I didn't put my ftrace_printk at the right place.
It doesn't come from hrtimer.
The problem comes from get_irq_regs() which always returns NULL on the
sysprof hrtimer calback, then the trace is immediately dropped
by sysprof.

That's weird, smp_apic_timer_interrupt() calls set_irq_regs() so
it should find it.

Now I'm preempted by my bed.

Ingo Molnar

unread,
Feb 13, 2009, 2:26:36 AM2/13/09
to Frederic Weisbecker, Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

* Frederic Weisbecker <fwei...@gmail.com> wrote:

> > > It seems to run fine for all of them except sysprof. It passes the self-test
> > > but doesn't produce any trace when I manually try.
> > >
> > > Not completely sure this is only in -rt so I'm pulling very latest -tip and
> > > will see if I find the same problem there.
> >
> > About sysprof, it's an -rt problem, I don't see it on -tip. The sysprof hrtimer
> > callback is never called.
> >
> > I'm digging to see what is happening.
>
> I didn't put my ftrace_printk at the right place. It doesn't come from hrtimer.
> The problem comes from get_irq_regs() which always returns NULL on the sysprof
> hrtimer calback, then the trace is immediately dropped by sysprof.

Ah, that makes sense - under -rt the default hrtimer execution is to
execute in a softirq context. Could you try the patch below please,
does it fix sysprof?

Ingo

------------------>
Subject: rt: sysprof hrtimer fix
From: Ingo Molnar <mi...@elte.hu>
Date: Fri Feb 13 08:22:14 CET 2009

Frederic Weisbecker noticed that sysprof does not work under
29-rt2, and tracked it down to a NULL result that get_irq_regs()
gives to the sysprof plugin.

The reason for the NULL is that it executes in the HRTIMER_SOFTIRQ
context, hence it does not interrupt any real context and thus
there's no IRQ registers to take a look at.

Since the sysprof functionality is atomic, the fix is to move the
sysprof hrtimers to hardirq context.

Reported-by: Frederic Weisbecker <fwei...@gmail.com>


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

kernel/trace/trace_sysprof.c | 1 +
1 file changed, 1 insertion(+)

Index: tip/kernel/trace/trace_sysprof.c
===================================================================
--- tip.orig/kernel/trace/trace_sysprof.c
+++ tip/kernel/trace/trace_sysprof.c
@@ -202,6 +202,7 @@ static void start_stack_timer(void *unus

hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
hrtimer->function = stack_trace_timer_fn;
+ hrtimer->irqsafe = 1;

hrtimer_start(hrtimer, ns_to_ktime(sample_period), HRTIMER_MODE_REL);

Frederic Weisbecker

unread,
Feb 13, 2009, 7:05:20 AM2/13/09
to Ingo Molnar, Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
On Fri, Feb 13, 2009 at 08:26:01AM +0100, Ingo Molnar wrote:
>
> * Frederic Weisbecker <fwei...@gmail.com> wrote:
>
> > > > It seems to run fine for all of them except sysprof. It passes the self-test
> > > > but doesn't produce any trace when I manually try.
> > > >
> > > > Not completely sure this is only in -rt so I'm pulling very latest -tip and
> > > > will see if I find the same problem there.
> > >
> > > About sysprof, it's an -rt problem, I don't see it on -tip. The sysprof hrtimer
> > > callback is never called.
> > >
> > > I'm digging to see what is happening.
> >
> > I didn't put my ftrace_printk at the right place. It doesn't come from hrtimer.
> > The problem comes from get_irq_regs() which always returns NULL on the sysprof
> > hrtimer calback, then the trace is immediately dropped by sysprof.
>
> Ah, that makes sense - under -rt the default hrtimer execution is to
> execute in a softirq context. Could you try the patch below please,
> does it fix sysprof?
>
> Ingo

Yes! Thanks :-)

Tested-by: Frederic Weisbecker <fwei...@gmail.com>

So, just a thing.
-rt make the hrtimer's timers running on softirq context because the hrtimer_interrupt
doesn't run as a threaded interrupt, and then it is not preemptible right?

In that case, sysprof will continue to run in hardirq context, as before, and
it will considerably increase the latency. And that matters here.
So I think it is important to put it on the reminder:

-------------------->
Subject: [PATCH] rt: add sysprof to the latency overhead reminder
From: Frederic Weisbecker <fwei...@gmail.com>

Since sysprof uses the hrtimer on hardirq with interrupts disabled, it
adds a latency overhead.

Add it to the latency reminder.

Signed-off-by: Frederic Weisbecker <fwei...@gmail.com>
---
--- linux-2.6.29-rc4/init/~main.c 2009-02-13 12:51:54.000000000 +0100
+++ linux-2.6.29-rc4/init/main.c 2009-02-13 12:55:40.000000000 +0100
@@ -904,7 +904,7 @@ static int __init kernel_init(void * unu
WARN_ON(irqs_disabled());
#endif

-#define DEBUG_COUNT (defined(CONFIG_DEBUG_RT_MUTEXES) + defined(CONFIG_IRQSOFF_TRACER) + defined(CONFIG_PREEMPT_TRACER) + defined(CONFIG_STACK_TRACER) + defined(CONFIG_WAKEUP_LATENCY_HIST) + defined(CONFIG_DEBUG_SLAB) + defined(CONFIG_DEBUG_PAGEALLOC) + defined(CONFIG_LOCKDEP) + (defined(CONFIG_FTRACE) - defined(CONFIG_FTRACE_MCOUNT_RECORD)))
+#define DEBUG_COUNT (defined(CONFIG_DEBUG_RT_MUTEXES) + defined(CONFIG_IRQSOFF_TRACER) + defined(CONFIG_PREEMPT_TRACER) + defined(CONFIG_STACK_TRACER) + defined(CONFIG_WAKEUP_LATENCY_HIST) + defined(CONFIG_DEBUG_SLAB) + defined(CONFIG_DEBUG_PAGEALLOC) + defined(CONFIG_LOCKDEP) + defined(CONFIG_SYSPROF_TRACER) + (defined(CONFIG_FTRACE) - defined(CONFIG_FTRACE_MCOUNT_RECORD)))

#if DEBUG_COUNT > 0
printk(KERN_ERR "*****************************************************************************\n");
@@ -924,6 +924,9 @@ static int __init kernel_init(void * unu
#ifdef CONFIG_PREEMPT_TRACER
printk(KERN_ERR "* CONFIG_PREEMPT_TRACER *\n");
#endif
+#ifdef CONFIG_SYSPROF_TRACER
+ printk(KERN_ERR "* CONFIG_SYSPROF_TRACER *\n");
+#endif
#ifdef CONFIG_FTRACE
printk(KERN_ERR "* CONFIG_FTRACE *\n");
#endif

Ingo Molnar

unread,
Feb 13, 2009, 7:50:11 AM2/13/09
to Frederic Weisbecker, Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

* Frederic Weisbecker <fwei...@gmail.com> wrote:

> So, just a thing.
> -rt make the hrtimer's timers running on softirq context because the hrtimer_interrupt
> doesn't run as a threaded interrupt, and then it is not preemptible right?
>
> In that case, sysprof will continue to run in hardirq context, as before, and
> it will considerably increase the latency. And that matters here.
> So I think it is important to put it on the reminder:

hm, not sure. Do you know it numerically how much worst-case overhead it
induces?

Ingo

Frederic Weisbecker

unread,
Feb 13, 2009, 3:03:28 PM2/13/09
to Ingo Molnar, Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
On Fri, Feb 13, 2009 at 01:49:28PM +0100, Ingo Molnar wrote:
>
> * Frederic Weisbecker <fwei...@gmail.com> wrote:
>
> > So, just a thing.
> > -rt make the hrtimer's timers running on softirq context because the hrtimer_interrupt
> > doesn't run as a threaded interrupt, and then it is not preemptible right?
> >
> > In that case, sysprof will continue to run in hardirq context, as before, and
> > it will considerably increase the latency. And that matters here.
> > So I think it is important to put it on the reminder:
>
> hm, not sure. Do you know it numerically how much worst-case overhead it
> induces?
>
> Ingo

Not at all.
But when I find some time, I will compare some rt average tests with and without sysprof.

Rusty Russell

unread,
Feb 13, 2009, 6:40:19 PM2/13/09
to Peter Zijlstra, Ingo Molnar, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Thursday 12 February 2009 22:39:14 Peter Zijlstra wrote:
> So it put in unconditionally, how about this?
>
>
> --
> Subject: generic-smp: remove single ipi fallback for smp_call_function_many()
>
> In preparation of removing the kmalloc() calls from the generic-ipi code
> get rid of the single ipi fallback for smp_call_function_many().
>
> Because we cannot get around carrying the cpumask in the data -- imagine
> 2 such calls with different but overlapping masks -- put in a full mask.

OK, if you really want this, please just change it to:
unsigned long cpumask_bits[BITS_TO_LONGS(CONFIG_NR_CPUS)];

The 'struct cpumask' will be undefined soon when CONFIG_CPUMASK_OFFSTACK=y,
which will prevent assignment and declaration on stack.

I'd be fascinated to see perf numbers once you kill the kmalloc. Because
this patch will add num_possible_cpus * NR_CPUS/8 bytes to the kernel which
is something we're trying to avoid unless necessary.

Thanks,
Rusty.

Peter Zijlstra

unread,
Feb 13, 2009, 6:48:45 PM2/13/09
to Rusty Russell, Ingo Molnar, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Sat, 2009-02-14 at 07:46 +1030, Rusty Russell wrote:
> On Thursday 12 February 2009 22:39:14 Peter Zijlstra wrote:
> > So it put in unconditionally, how about this?
> >
> >
> > --
> > Subject: generic-smp: remove single ipi fallback for smp_call_function_many()
> >
> > In preparation of removing the kmalloc() calls from the generic-ipi code
> > get rid of the single ipi fallback for smp_call_function_many().
> >
> > Because we cannot get around carrying the cpumask in the data -- imagine
> > 2 such calls with different but overlapping masks -- put in a full mask.
>
> OK, if you really want this, please just change it to:
> unsigned long cpumask_bits[BITS_TO_LONGS(CONFIG_NR_CPUS)];
>
> The 'struct cpumask' will be undefined soon when CONFIG_CPUMASK_OFFSTACK=y,
> which will prevent assignment and declaration on stack.
>
> I'd be fascinated to see perf numbers once you kill the kmalloc. Because
> this patch will add num_possible_cpus * NR_CPUS/8 bytes to the kernel which
> is something we're trying to avoid unless necessary.

You're free to make it a pointer and do node affine allocations from an
init section of choice and add a hotplug handler.

But I'm not quite sure how perf is affected by size overhead on
ridiculous configs.

Rusty Russell

unread,
Feb 16, 2009, 2:17:41 AM2/16/09
to Peter Zijlstra, Ingo Molnar, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Saturday 14 February 2009 10:18:05 Peter Zijlstra wrote:
> On Sat, 2009-02-14 at 07:46 +1030, Rusty Russell wrote:
> > I'd be fascinated to see perf numbers once you kill the kmalloc. Because
> > this patch will add num_possible_cpus * NR_CPUS/8 bytes to the kernel which
> > is something we're trying to avoid unless necessary.
>
> You're free to make it a pointer and do node affine allocations from an
> init section of choice and add a hotplug handler.
>
> But I'm not quite sure how perf is affected by size overhead on
> ridiculous configs.

No, I meant "can you actually measure the perf win of this patch?". If you
did so, I missed it?

But if this patch is worthwhile, the right way to do this is make it a
cpumask_var_t, and do the alloc_cpumask_var_node() in that init routine.

Thanks,
Rusty.

Peter Zijlstra

unread,
Feb 16, 2009, 4:58:07 AM2/16/09
to Rusty Russell, Ingo Molnar, Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams
On Mon, 2009-02-16 at 17:46 +1030, Rusty Russell wrote:
> On Saturday 14 February 2009 10:18:05 Peter Zijlstra wrote:
> > On Sat, 2009-02-14 at 07:46 +1030, Rusty Russell wrote:
> > > I'd be fascinated to see perf numbers once you kill the kmalloc. Because
> > > this patch will add num_possible_cpus * NR_CPUS/8 bytes to the kernel which
> > > is something we're trying to avoid unless necessary.
> >
> > You're free to make it a pointer and do node affine allocations from an
> > init section of choice and add a hotplug handler.
> >
> > But I'm not quite sure how perf is affected by size overhead on
> > ridiculous configs.
>
> No, I meant "can you actually measure the perf win of this patch?". If you
> did so, I missed it?

Over what, the always single-ipi case, or the kmalloc case?

The thing is, we're removing that kmalloc because its somewhat of a wart
on the whole thing.

> But if this patch is worthwhile, the right way to do this is make it a
> cpumask_var_t, and do the alloc_cpumask_var_node() in that init routine.

Right, and installing a hotplug handler and ... *sigh*

Thomas Meyer

unread,
Feb 19, 2009, 1:45:38 PM2/19/09
to Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
Am Donnerstag, den 12.02.2009, 23:56 +0100 schrieb Thomas Gleixner:
> We are pleased to announce the first update to our new preempt-rt
> series. It fixes the reported bugs and some more.
>
> Download locations:
>
> http://rt.et.redhat.com/download/
> http://www.kernel.org/pub/linux/kernel/projects/rt/
>
> Information on the RT patch can be found at:
>
> http://rt.wiki.kernel.org/index.php/Main_Page
>
> to build the 2.6.29-rc4-rt2 tree, the following patches should be
> applied:
>
> http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc4.tar.bz2
> http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc4-rt2.bz2
>
> The broken out patches are also available at the same download
> locations.
>
> Enjoy !
>
> Thomas, Ingo

Hi,

Setting CONFIG_PERF_COUNTERS make my build, hang really early. Likely
before ohci1394_dma=early stuff, because firescope doesn't seem to work.

With attached config the system boots up to the point
after /etc/rc.sysinit (this is a fedora 10 system) activates the swap.
Then all I see from upstart/init is "Message from illegal source". And
the system seems to stop the boot process. Strange, isn't it?

So this is what I could capture with attached config, by inserting
"/bin/bash" into /etc/rc.sysinit after swap activation:

[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Linux version 2.6.29-rc4-rt2-tip (tho...@localhost.localdomain) (gcc version 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC) ) #54 SMP PREEMPT RT Thu Feb 19 16:29:15 CET 2009
[ 0.000000] KERNEL supported cpus:
[ 0.000000] Intel GenuineIntel
[ 0.000000] AMD AuthenticAMD
[ 0.000000] NSC Geode by NSC
[ 0.000000] Cyrix CyrixInstead
[ 0.000000] Centaur CentaurHauls
[ 0.000000] Transmeta GenuineTMx86
[ 0.000000] Transmeta TransmetaCPU
[ 0.000000] UMC UMC UMC UMC
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
[ 0.000000] BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000ede00 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 000000007f0c8000 (usable)
[ 0.000000] BIOS-e820: 000000007f0c8000 - 000000007f2c9000 (ACPI NVS)
[ 0.000000] BIOS-e820: 000000007f2c9000 - 000000007feb9000 (ACPI data)
[ 0.000000] BIOS-e820: 000000007feb9000 - 000000007feef000 (ACPI NVS)
[ 0.000000] BIOS-e820: 000000007feef000 - 000000007ff00000 (ACPI data)
[ 0.000000] BIOS-e820: 000000007ff00000 - 0000000080000000 (reserved)
[ 0.000000] BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
[ 0.000000] BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed14000 - 00000000fed1a000 (reserved)
[ 0.000000] BIOS-e820: 00000000fed1c000 - 00000000fed20000 (reserved)
[ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[ 0.000000] BIOS-e820: 00000000ffe00000 - 0000000100000000 (reserved)
[ 0.000000] DMI 2.4 present.
[ 0.000000] last_pfn = 0x7f0c8 max_arch_pfn = 0x100000
[ 0.000000] PAT not supported by CPU.
[ 0.000000] kernel direct mapping tables up to 377fe000 @ 7000-c000
[ 0.000000] init_ohci1394_dma: initializing OHCI-1394 at 0c:03.0
[ 0.000000] init_ohci1394_dma: finished initializing OHCI DMA
[ 0.000000] RAMDISK: 7ed76000 - 7f0c775d
[ 0.000000] Allocated new RAMDISK: 00dd0000 - 0112175d
[ 0.000000] Move RAMDISK from 000000007ed76000 - 000000007f0c775c to 00dd0000 - 0112175c
[ 0.000000] ACPI: RSDP 000FE020, 0024 (r2 APPLE )
[ 0.000000] ACPI: XSDT 7FEFD120, 0074 (r1 APPLE Apple00 55 1000013)
[ 0.000000] ACPI: FACP 7FEFB000, 00F4 (r3 APPLE Apple00 55 Loki 5F)
[ 0.000000] FADT: X_PM1a_EVT_BLK.bit_width (16) does not match PM1_EVT_LEN (4)
[ 0.000000] ACPI: DSDT 7FEF0000, 48C0 (r1 APPLE MacBookP 10001 INTL 20050309)
[ 0.000000] ACPI: FACS 7FEBB000, 0040
[ 0.000000] ACPI: HPET 7FEFA000, 0038 (r1 APPLE Apple00 1 Loki 5F)
[ 0.000000] ACPI: APIC 7FEF9000, 0068 (r1 APPLE Apple00 1 Loki 5F)
[ 0.000000] ACPI: MCFG 7FEF8000, 003C (r1 APPLE Apple00 1 Loki 5F)
[ 0.000000] ACPI: ASF! 7FEF7000, 009C (r32 APPLE Apple00 1 Loki 5F)
[ 0.000000] ACPI: SBST 7FEF6000, 0030 (r1 APPLE Apple00 1 Loki 5F)
[ 0.000000] ACPI: ECDT 7FEF5000, 0053 (r1 APPLE Apple00 1 Loki 5F)
[ 0.000000] ACPI: SSDT 7FEB6000, 064F (r1 APPLE SataPri 1000 INTL 20050309)
[ 0.000000] ACPI: SSDT 7FEB5000, 069C (r1 APPLE SataSec 1000 INTL 20050309)
[ 0.000000] ACPI: SSDT 7FEEF000, 04DC (r1 APPLE CpuPm 3000 INTL 20050309)
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] 1144MB HIGHMEM available.
[ 0.000000] 887MB LOWMEM available.
[ 0.000000] mapped low ram: 0 - 377fe000
[ 0.000000] low ram: 00000000 - 377fe000
[ 0.000000] bootmap 00008000 - 0000ef00
[ 0.000000] (9 early reservations) ==> bootmem [0000000000 - 00377fe000]
[ 0.000000] #0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - 0000001000]
[ 0.000000] #1 [0000001000 - 0000002000] EX TRAMPOLINE ==> [0000001000 - 0000002000]
[ 0.000000] #2 [0000006000 - 0000007000] TRAMPOLINE ==> [0000006000 - 0000007000]
[ 0.000000] #3 [0000400000 - 0000dca8a0] TEXT DATA BSS ==> [0000400000 - 0000dca8a0]
[ 0.000000] #4 [0000dcb000 - 0000dd0000] INIT_PG_TABLE ==> [0000dcb000 - 0000dd0000]
[ 0.000000] #5 [000009fc00 - 0000100000] BIOS reserved ==> [000009fc00 - 0000100000]
[ 0.000000] #6 [0000007000 - 0000008000] PGTABLE ==> [0000007000 - 0000008000]
[ 0.000000] #7 [0000dd0000 - 000112175d] NEW RAMDISK ==> [0000dd0000 - 000112175d]
[ 0.000000] #8 [0000008000 - 000000f000] BOOTMAP ==> [0000008000 - 000000f000]
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0x00000000 -> 0x00001000
[ 0.000000] Normal 0x00001000 -> 0x000377fe
[ 0.000000] HighMem 0x000377fe -> 0x0007f0c8
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] early_node_map[2] active PFN ranges
[ 0.000000] 0: 0x00000000 -> 0x0000009f
[ 0.000000] 0: 0x00000100 -> 0x0007f0c8
[ 0.000000] On node 0 totalpages: 520295
[ 0.000000] free_area_init_node: node 0, pgdat c0c8fb40, node_mem_map c1122000
[ 0.000000] DMA zone: 52 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 3947 pages, LIFO batch:0
[ 0.000000] Normal zone: 2834 pages used for memmap
[ 0.000000] Normal zone: 220396 pages, LIFO batch:31
[ 0.000000] HighMem zone: 3721 pages used for memmap
[ 0.000000] HighMem zone: 289345 pages, LIFO batch:31
[ 0.000000] Using APIC driver default
[ 0.000000] ACPI: PM-Timer IO Port: 0x408
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[ 0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
[ 0.000000] IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.000000] ACPI: IRQ0 used by override.
[ 0.000000] ACPI: IRQ2 used by override.
[ 0.000000] ACPI: IRQ9 used by override.
[ 0.000000] Enabling APIC mode: Flat. Using 1 I/O APICs
[ 0.000000] Using ACPI (MADT) for SMP configuration information
[ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[ 0.000000] SMP: Allowing 2 CPUs, 0 hotplug CPUs
[ 0.000000] nr_irqs_gsi: 24
[ 0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
[ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000ee000
[ 0.000000] PM: Registered nosave memory: 00000000000ee000 - 0000000000100000
[ 0.000000] Allocating PCI resources starting at 88000000 (gap: 80000000:60000000)
[ 0.000000] NR_CPUS:4 nr_cpumask_bits:4 nr_cpu_ids:2 nr_node_ids:1
[ 0.000000] PERCPU: Allocating 32768 bytes of per cpu data
[ 0.000000] Real-Time Preemption Support (C) 2004-2007 Ingo Molnar
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 513688
[ 0.000000] Kernel command line: ro root=/dev/mapper/luks-sda4 panic=45 nomodeset ohci1394_dma=early vga=0x0f07 initrd=initrd-2.6.29-rc4-rt2-tip.img BOOT_IMAGE=vmlinuz-2.6.29-rc4-rt2-tip
[ 0.000000] Enabling fast FPU save and restore... done.
[ 0.000000] Enabling unmasked SIMD FPU exception support... done.
[ 0.000000] Initializing CPU#0
[ 0.000000] Preemptible RCU implementation.
[ 0.000000] NR_IRQS:384
[ 0.000000] CPU 0 irqstacks, hard=c0d2d000 soft=c0d29000
[ 0.000000] PID hash table entries: 4096 (order: 12, 16384 bytes)
[ 0.000000] Extended CMOS year: 2000
[ 0.000000] TSC: PIT calibration matches PMTIMER. 1 loops
[ 0.000000] Detected 1830.867 MHz processor.
[ 0.003333] Console: colour VGA+ 80x60
[ 0.003333] console [tty0] enabled
[ 0.003333] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.003333] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.003333] Memory: 2039352k/2081568k available (5824k kernel code, 40984k reserved, 3094k data, 420k init, 1172264k highmem)
[ 0.003333] virtual kernel memory layout:
[ 0.003333] fixmap : 0xfff4d000 - 0xfffff000 ( 712 kB)
[ 0.003333] pkmap : 0xff800000 - 0xffc00000 (4096 kB)
[ 0.003333] vmalloc : 0xf7ffe000 - 0xff7fe000 ( 120 MB)
[ 0.003333] lowmem : 0xc0000000 - 0xf77fe000 ( 887 MB)
[ 0.003333] .init : 0xc0cbd000 - 0xc0d26000 ( 420 kB)
[ 0.003333] .data : 0xc09b03b2 - 0xc0cb5bc4 (3094 kB)
[ 0.003333] .text : 0xc0400000 - 0xc09b03b2 (5824 kB)
[ 0.003333] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[ 0.003333] ------------[ cut here ]------------
[ 0.003333] WARNING: at mm/highmem.c:225 kmap_flush_unused+0x2b/0x4b()
[ 0.003333] Hardware name: MacBookPro1,1
[ 0.003333] Modules linked in:
[ 0.003333] Pid: 0, comm: swapper Not tainted 2.6.29-rc4-rt2-tip #54
[ 0.003333] Call Trace:
[ 0.003333] [<c0451e70>] warn_slowpath+0x8a/0xd3
[ 0.003333] [<c043ee71>] ? kmap+0x6c/0x77
[ 0.003333] [<c04ad7f5>] ? get_page_from_freelist+0x389/0x42b
[ 0.003333] [<c04adb8f>] ? __alloc_pages_internal+0xbf/0x3a6
[ 0.003333] [<c04b9b92>] kmap_flush_unused+0x2b/0x4b
[ 0.003333] [<c043b877>] change_page_attr_set_clr+0xe8/0x2ca
[ 0.003333] [<c09aabd9>] ? rt_spin_lock+0x32/0x79
[ 0.003333] [<c04bbeb3>] ? __pte_alloc_kernel+0x50/0x83
[ 0.003333] [<c043bd16>] _set_memory_uc+0x27/0x3a
[ 0.003333] [<c043ac3d>] ioremap_change_attr+0x24/0x47
[ 0.003333] [<c043ae62>] __ioremap_caller+0x202/0x256
[ 0.003333] [<c0cd0b79>] ? hpet_enable+0x2d/0x26c
[ 0.003333] [<c043afe0>] ioremap_nocache+0x1c/0x2f
[ 0.003333] [<c0cd0b79>] ? hpet_enable+0x2d/0x26c
[ 0.003333] [<c0cd0b79>] hpet_enable+0x2d/0x26c
[ 0.003333] [<c0cc34fb>] hpet_time_init+0x16/0x37
[ 0.003333] [<c0cbd997>] start_kernel+0x289/0x345
[ 0.003333] [<c0cbd093>] __init_begin+0x93/0xac
[ 0.003333] ---[ end trace a7919e7f17c0a725 ]---
[ 0.003333] hpet clockevent registered
[ 0.003333] HPET: 3 timers in total, 0 timers will be used for per-cpu timer
[ 0.003333] Calibrating delay loop (skipped), value calculated using timer frequency.. 3663.30 BogoMIPS (lpj=6102890)
[ 0.003756] Security Framework initialized
[ 0.003926] SELinux: Initializing.
[ 0.004114] SELinux: Starting in permissive mode
[ 0.004144] Mount-cache hash table entries: 512
[ 0.006815] Initializing cgroup subsys ns
[ 0.006985] Initializing cgroup subsys cpuacct
[ 0.007155] Initializing cgroup subsys net_cls
[ 0.007345] CPU: L1 I cache: 32K, L1 D cache: 32K
[ 0.007614] CPU: L2 cache: 2048K
[ 0.007780] CPU: Physical Processor ID: 0
[ 0.007946] CPU: Processor Core ID: 0
[ 0.008112] CPU: CPU feature monitor disabled due to lack of CPUID level 0x5
[ 0.008287] Intel machine check architecture supported.
[ 0.008458] Intel machine check reporting enabled on CPU#0.
[ 0.008638] Checking 'hlt' instruction... OK.
[ 0.023772] ACPI: Core revision 20081204
[ 0.037149] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.072745] CPU0: Genuine Intel(R) CPU T2400 @ 1.83GHz stepping 08
[ 0.073332] CPU 1 irqstacks, hard=c0d2e000 soft=c0d2a000
[ 0.073332] Booting processor 1 APIC 0x1 ip 0x6000
[ 0.073332] Initializing CPU#1
[ 0.073332] Calibrating delay using timer specific routine.. 3663.33 BogoMIPS (lpj=6102937)
[ 0.073332] CPU: L1 I cache: 32K, L1 D cache: 32K
[ 0.073332] CPU: L2 cache: 2048K
[ 0.073332] CPU: Physical Processor ID: 0
[ 0.073332] CPU: Processor Core ID: 1
[ 0.073332] CPU: CPU feature monitor disabled due to lack of CPUID level 0x5
[ 0.073332] Intel machine check architecture supported.
[ 0.073332] Intel machine check reporting enabled on CPU#1.
[ 0.163791] CPU1: Genuine Intel(R) CPU T2400 @ 1.83GHz stepping 08
[ 0.165743] checking TSC synchronization [CPU#0 -> CPU#1]: passed.
[ 0.166729] Brought up 2 CPUs
[ 0.166894] Total of 2 processors activated (7326.64 BogoMIPS).
[ 0.167117] CPU0 attaching sched-domain:
[ 0.167120] domain 0: span 0-1 level MC
[ 0.167123] groups: 0 1
[ 0.167129] CPU1 attaching sched-domain:
[ 0.167131] domain 0: span 0-1 level MC
[ 0.167134] groups: 1 0
[ 0.176788] net_namespace: 1108 bytes
[ 0.177292] NET: Registered protocol family 16
[ 0.177292] ACPI: bus type pci registered
[ 0.177292] PCI: MCFG configuration 0: base e0000000 segment 0 buses 0 - 255
[ 0.177292] PCI: MCFG area at e0000000 reserved in E820
[ 0.177292] PCI: Using MMCONFIG for extended config space
[ 0.177292] PCI: Using configuration type 1 for base access
[ 0.190078] bio: create slab <bio-0> at 0
[ 0.190879] ACPI: EC: EC description table is found, configuring boot EC
[ 0.193395] ACPI: EC: non-query interrupt received, switching to interrupt mode
[ 0.196875] ACPI: BIOS _OSI(Linux) query ignored
[ 0.200196] ACPI: Interpreter enabled
[ 0.200366] ACPI: (supports S0 S3 S4 S5)
[ 0.200963] ACPI: Using IOAPIC for interrupt routing
[ 0.220171] ACPI: EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[ 0.220333] ACPI: EC: driver started in interrupt mode
[ 0.220531] ACPI: No dock devices found.
[ 0.220625] ACPI: PCI Root Bridge [PCI0] (0000:00)
[ 0.220843] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[ 0.220843] pci 0000:00:01.0: PME# disabled
[ 0.220843] pci 0000:00:07.0: reg 10 32bit mmio: [0x90404000-0x90404fff]
[ 0.220843] pci 0000:00:1b.0: reg 10 64bit mmio: [0x90400000-0x90403fff]
[ 0.220843] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[ 0.220843] pci 0000:00:1b.0: PME# disabled
[ 0.221091] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[ 0.221264] pci 0000:00:1c.0: PME# disabled
[ 0.221519] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[ 0.221694] pci 0000:00:1c.1: PME# disabled
[ 0.221948] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[ 0.222122] pci 0000:00:1c.2: PME# disabled
[ 0.222354] pci 0000:00:1d.0: reg 20 io port: [0x40a0-0x40bf]
[ 0.222420] pci 0000:00:1d.1: reg 20 io port: [0x4080-0x409f]
[ 0.222486] pci 0000:00:1d.2: reg 20 io port: [0x4060-0x407f]
[ 0.222552] pci 0000:00:1d.3: reg 20 io port: [0x4040-0x405f]
[ 0.222621] pci 0000:00:1d.7: reg 10 32bit mmio: [0x90405400-0x904057ff]
[ 0.222688] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
[ 0.222863] pci 0000:00:1d.7: PME# disabled
[ 0.223206] pci 0000:00:1f.0: quirk: region 0400-047f claimed by ICH6 ACPI/GPIO/TCO
[ 0.223524] pci 0000:00:1f.0: quirk: region 0500-053f claimed by ICH6 GPIO
[ 0.223700] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 0680 (mask 000f)
[ 0.223934] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 2 PIO at 1640 (mask 000f)
[ 0.224167] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 3 PIO at 4700 (mask 0003)
[ 0.224402] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 4 PIO at 0300 (mask 001f)
[ 0.224688] pci 0000:00:1f.1: reg 10 io port: [0x40e8-0x40ef]
[ 0.224697] pci 0000:00:1f.1: reg 14 io port: [0x40fc-0x40ff]
[ 0.224705] pci 0000:00:1f.1: reg 18 io port: [0x40e0-0x40e7]
[ 0.224714] pci 0000:00:1f.1: reg 1c io port: [0x40f8-0x40fb]
[ 0.224723] pci 0000:00:1f.1: reg 20 io port: [0x40c0-0x40cf]
[ 0.224780] pci 0000:00:1f.2: reg 10 io port: [0x40d8-0x40df]
[ 0.224789] pci 0000:00:1f.2: reg 14 io port: [0x40f4-0x40f7]
[ 0.224797] pci 0000:00:1f.2: reg 18 io port: [0x40d0-0x40d7]
[ 0.224806] pci 0000:00:1f.2: reg 1c io port: [0x40f0-0x40f3]
[ 0.224815] pci 0000:00:1f.2: reg 20 io port: [0x4020-0x402f]
[ 0.224823] pci 0000:00:1f.2: reg 24 32bit mmio: [0x90405000-0x904053ff]
[ 0.224855] pci 0000:00:1f.2: PME# supported from D3hot
[ 0.225028] pci 0000:00:1f.2: PME# disabled
[ 0.225256] pci 0000:00:1f.3: reg 20 io port: [0xefa0-0xefbf]
[ 0.225345] pci 0000:01:00.0: reg 10 32bit mmio: [0x80000000-0x87ffffff]
[ 0.225357] pci 0000:01:00.0: reg 14 io port: [0x3000-0x30ff]
[ 0.225368] pci 0000:01:00.0: reg 18 32bit mmio: [0x90300000-0x9030ffff]
[ 0.225399] pci 0000:01:00.0: reg 30 32bit mmio: [0xfffe0000-0xffffffff]
[ 0.225442] pci 0000:01:00.0: supports D1 D2
[ 0.225475] pci 0000:01:00.0: disabling ASPM on pre-1.1 PCIe device. You can enable it with 'pcie_aspm=force'
[ 0.225799] pci 0000:00:01.0: bridge io port: [0x3000-0x3fff]
[ 0.225803] pci 0000:00:01.0: bridge 32bit mmio: [0x90300000-0x903fffff]
[ 0.225809] pci 0000:00:01.0: bridge 64bit mmio pref: [0x80000000-0x87ffffff]
[ 0.225891] pci 0000:02:00.0: reg 10 64bit mmio: [0x90200000-0x90203fff]
[ 0.225903] pci 0000:02:00.0: reg 18 io port: [0x2000-0x20ff]
[ 0.225939] pci 0000:02:00.0: reg 30 32bit mmio: [0xfffe0000-0xffffffff]
[ 0.225996] pci 0000:02:00.0: supports D1 D2
[ 0.225998] pci 0000:02:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.226094] pci 0000:02:00.0: PME# disabled
[ 0.226213] pci 0000:02:00.0: disabling ASPM on pre-1.1 PCIe device. You can enable it with 'pcie_aspm=force'
[ 0.226464] pci 0000:00:1c.0: bridge io port: [0x2000-0x2fff]
[ 0.226470] pci 0000:00:1c.0: bridge 32bit mmio: [0x90200000-0x902fffff]
[ 0.226557] pci 0000:03:00.0: reg 10 64bit mmio: [0x90100000-0x9010ffff]
[ 0.226753] pci 0000:03:00.0: disabling ASPM on pre-1.1 PCIe device. You can enable it with 'pcie_aspm=force'
[ 0.226999] pci 0000:00:1c.1: bridge 32bit mmio: [0x90100000-0x901fffff]
[ 0.227066] pci 0000:00:1c.2: bridge io port: [0x1000-0x1fff]
[ 0.227072] pci 0000:00:1c.2: bridge 32bit mmio: [0x8c100000-0x900fffff]
[ 0.227081] pci 0000:00:1c.2: bridge 64bit mmio pref: [0x88000000-0x8bffffff]
[ 0.227133] pci 0000:0c:03.0: reg 10 32bit mmio: [0x8c000000-0x8c000fff]
[ 0.227197] pci 0000:0c:03.0: supports D1 D2
[ 0.227200] pci 0000:0c:03.0: PME# supported from D0 D1 D2 D3hot
[ 0.227292] pci 0000:0c:03.0: PME# disabled
[ 0.227436] pci 0000:00:1e.0: transparent bridge
[ 0.227529] pci 0000:00:1e.0: bridge 32bit mmio: [0x8c000000-0x8c0fffff]
[ 0.227566] pci_bus 0000:00: on NUMA node 0
[ 0.227575] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[ 0.227879] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEGP._PRT]
[ 0.227996] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
[ 0.228111] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP02._PRT]
[ 0.228223] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP03._PRT]
[ 0.228349] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIB._PRT]
[ 0.240585] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
[ 0.240870] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 *11 12 14 15)
[ 0.241678] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
[ 0.242559] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 *11 12 14 15)
[ 0.243400] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[ 0.244331] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[ 0.245260] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
[ 0.246137] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 *11 12 14 15)
[ 0.250158] SCSI subsystem initialized
[ 0.250158] libata version 3.00 loaded.
[ 0.250158] usbcore: registered new interface driver usbfs
[ 0.250158] usbcore: registered new interface driver hub
[ 0.250158] usbcore: registered new device driver usb
[ 0.250158] ACPI: WMI: Mapper loaded
[ 0.250158] PCI: Using ACPI for IRQ routing
[ 0.260027] NET: Registered protocol family 23
[ 0.260149] Bluetooth: Core ver 2.14
[ 0.260252] NET: Registered protocol family 31
[ 0.260252] Bluetooth: HCI device and connection manager initialized
[ 0.260252] Bluetooth: HCI socket layer initialized
[ 0.260272] NetLabel: Initializing
[ 0.260355] NetLabel: domain hash size = 128
[ 0.260440] NetLabel: protocols = UNLABELED CIPSOv4
[ 0.260544] NetLabel: unlabeled traffic allowed by default
[ 0.263356] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
[ 0.263629] hpet0: 3 comparators, 64-bit 14.318180 MHz counter
[ 0.282737] pnp: PnP ACPI init
[ 0.282832] ACPI: bus type pnp registered
[ 0.285482] pnp 00:08: io resource (0x1640-0x164f) overlaps 0000:00:1c.2 BAR 7 (0x1000-0x1fff), disabling
[ 0.293917] pnp: PnP ACPI: found 10 devices
[ 0.294004] ACPI: ACPI bus type pnp unregistered
[ 0.294102] system 00:01: iomem range 0xe0000000-0xefffffff has been reserved
[ 0.294195] system 00:01: iomem range 0xfed14000-0xfed17fff has been reserved
[ 0.294289] system 00:01: iomem range 0xfed18000-0xfed18fff has been reserved
[ 0.294382] system 00:01: iomem range 0xfed19000-0xfed19fff has been reserved
[ 0.294476] system 00:01: iomem range 0xfed1c000-0xfed1ffff has been reserved
[ 0.294569] system 00:01: iomem range 0xfed20000-0xfed8ffff has been reserved
[ 0.294669] system 00:06: iomem range 0xfed00000-0xfed003ff has been reserved
[ 0.294767] system 00:08: ioport range 0x680-0x6ef has been reserved
[ 0.294860] system 00:08: ioport range 0x800-0x80f has been reserved
[ 0.294952] system 00:08: ioport range 0x810-0x817 has been reserved
[ 0.295044] system 00:08: ioport range 0x400-0x47f has been reserved
[ 0.295137] system 00:08: ioport range 0x500-0x53f has been reserved
[ 0.330478] pci 0000:00:01.0: PCI bridge, secondary bus 0000:01
[ 0.330569] pci 0000:00:01.0: IO window: 0x3000-0x3fff
[ 0.330659] pci 0000:00:01.0: MEM window: 0x90300000-0x903fffff
[ 0.330751] pci 0000:00:01.0: PREFETCH window: 0x00000080000000-0x00000087ffffff
[ 0.330874] pci 0000:00:1c.0: PCI bridge, secondary bus 0000:02
[ 0.330965] pci 0000:00:1c.0: IO window: 0x2000-0x2fff
[ 0.331057] pci 0000:00:1c.0: MEM window: 0x90200000-0x902fffff
[ 0.331150] pci 0000:00:1c.0: PREFETCH window: 0x00000090500000-0x000000905fffff
[ 0.333170] pci 0000:00:1c.1: PCI bridge, secondary bus 0000:03
[ 0.333259] pci 0000:00:1c.1: IO window: disabled
[ 0.333383] pci 0000:00:1c.1: MEM window: 0x90100000-0x901fffff
[ 0.333477] pci 0000:00:1c.1: PREFETCH window: disabled
[ 0.333570] pci 0000:00:1c.2: PCI bridge, secondary bus 0000:04
[ 0.333662] pci 0000:00:1c.2: IO window: 0x1000-0x1fff
[ 0.333755] pci 0000:00:1c.2: MEM window: 0x8c100000-0x900fffff
[ 0.333848] pci 0000:00:1c.2: PREFETCH window: 0x00000088000000-0x0000008bffffff
[ 0.333975] pci 0000:00:1e.0: PCI bridge, secondary bus 0000:0c
[ 0.334066] pci 0000:00:1e.0: IO window: disabled
[ 0.334158] pci 0000:00:1e.0: MEM window: 0x8c000000-0x8c0fffff
[ 0.334251] pci 0000:00:1e.0: PREFETCH window: disabled
[ 0.334355] pci 0000:00:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 0.334449] pci 0000:00:01.0: setting latency timer to 64
[ 0.334460] pci 0000:00:1c.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[ 0.334555] pci 0000:00:1c.0: setting latency timer to 64
[ 0.334565] pci 0000:00:1c.1: PCI INT B -> GSI 16 (level, low) -> IRQ 16
[ 0.334660] pci 0000:00:1c.1: setting latency timer to 64
[ 0.334671] pci 0000:00:1c.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[ 0.334765] pci 0000:00:1c.2: setting latency timer to 64
[ 0.334861] pci 0000:00:1e.0: power state changed by ACPI to D0
[ 0.334955] pci 0000:00:1e.0: setting latency timer to 64
[ 0.334961] pci_bus 0000:00: resource 0 io: [0x00-0xffff]
[ 0.334964] pci_bus 0000:00: resource 1 mem: [0x000000-0xffffffff]
[ 0.334967] pci_bus 0000:01: resource 0 io: [0x3000-0x3fff]
[ 0.334970] pci_bus 0000:01: resource 1 mem: [0x90300000-0x903fffff]
[ 0.334973] pci_bus 0000:01: resource 2 mem: [0x80000000-0x87ffffff]
[ 0.334976] pci_bus 0000:01: resource 3 mem: [0x0-0x0]
[ 0.334979] pci_bus 0000:02: resource 0 io: [0x2000-0x2fff]
[ 0.334982] pci_bus 0000:02: resource 1 mem: [0x90200000-0x902fffff]
[ 0.334985] pci_bus 0000:02: resource 2 mem: [0x90500000-0x905fffff]
[ 0.334988] pci_bus 0000:02: resource 3 mem: [0x0-0x0]
[ 0.334991] pci_bus 0000:03: resource 0 mem: [0x0-0x0]
[ 0.334993] pci_bus 0000:03: resource 1 mem: [0x90100000-0x901fffff]
[ 0.334996] pci_bus 0000:03: resource 2 mem: [0x0-0x0]
[ 0.334999] pci_bus 0000:03: resource 3 mem: [0x0-0x0]
[ 0.335002] pci_bus 0000:04: resource 0 io: [0x1000-0x1fff]
[ 0.335005] pci_bus 0000:04: resource 1 mem: [0x8c100000-0x900fffff]
[ 0.335008] pci_bus 0000:04: resource 2 mem: [0x88000000-0x8bffffff]
[ 0.335011] pci_bus 0000:04: resource 3 mem: [0x0-0x0]
[ 0.335013] pci_bus 0000:0c: resource 0 mem: [0x0-0x0]
[ 0.335016] pci_bus 0000:0c: resource 1 mem: [0x8c000000-0x8c0fffff]
[ 0.335019] pci_bus 0000:0c: resource 2 mem: [0x0-0x0]
[ 0.335022] pci_bus 0000:0c: resource 3 io: [0x00-0xffff]
[ 0.335025] pci_bus 0000:0c: resource 4 mem: [0x000000-0xffffffff]
[ 0.335086] NET: Registered protocol family 2
[ 0.393427] IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.393929] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[ 0.394739] TCP bind hash table entries: 65536 (order: 9, 2097152 bytes)
[ 0.396029] TCP: Hash tables configured (established 131072 bind 65536)
[ 0.396125] TCP reno registered
[ 0.413478] NET: Registered protocol family 1
[ 0.413752] checking if image is initramfs... it is
[ 0.690538] Freeing initrd memory: 3397k freed
[ 0.692982] Microcode Update Driver: v2.00 <tig...@aivazian.fsnet.co.uk>, Peter Oruba
[ 0.693700] audit: initializing netlink socket (disabled)
[ 0.693806] type=2000 audit(1235070753.690:1): initialized
[ 0.698609] highmem bounce pool size: 64 pages
[ 0.698699] HugeTLB registered 4 MB page size, pre-allocated 0 pages
[ 0.703396] VFS: Disk quotas dquot_6.5.2
[ 0.703527] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.704047] NTFS driver 2.1.29 [Flags: R/O].
[ 0.704175] fuse init (API version 7.11)
[ 0.704404] JFS: nTxBlock = 8192, nTxLock = 65536
[ 0.708367] msgmni has been set to 1701
[ 0.708594] SELinux: Registering netfilter hooks
[ 0.708782] alg: No test for cipher_null (cipher_null-generic)
[ 0.708971] alg: No test for digest_null (digest_null-generic)
[ 0.709103] alg: No test for compress_null (compress_null-generic)
[ 0.710693] alg: No test for fcrypt (fcrypt-generic)
[ 0.713278] alg: No test for stdrng (krng)
[ 0.713528] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[ 0.713650] io scheduler noop registered
[ 0.713735] io scheduler anticipatory registered
[ 0.713821] io scheduler deadline registered
[ 0.713928] io scheduler cfq registered (default)
[ 0.714254] pci 0000:01:00.0: Boot video device
[ 0.714420] pcieport-driver 0000:00:01.0: setting latency timer to 64
[ 0.714479] pcieport-driver 0000:00:01.0: irq 24 for MSI/MSI-X
[ 0.714666] pcieport-driver 0000:00:1c.0: setting latency timer to 64
[ 0.714748] pcieport-driver 0000:00:1c.0: irq 25 for MSI/MSI-X
[ 0.715023] pcieport-driver 0000:00:1c.1: setting latency timer to 64
[ 0.715104] pcieport-driver 0000:00:1c.1: irq 26 for MSI/MSI-X
[ 0.715375] pcieport-driver 0000:00:1c.2: setting latency timer to 64
[ 0.715456] pcieport-driver 0000:00:1c.2: irq 27 for MSI/MSI-X
[ 0.715843] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 0.716868] pciehp 0000:00:1c.0:pcie02: HPC vendor_id 8086 device_id 27d0 ss_vid 0 ss_did 0
[ 0.717121] pciehp 0000:00:1c.0:pcie02: service driver pciehp loaded
[ 0.717147] pciehp 0000:00:1c.1:pcie02: HPC vendor_id 8086 device_id 27d2 ss_vid 0 ss_did 0
[ 0.717389] pciehp 0000:00:1c.1:pcie02: service driver pciehp loaded
[ 0.717416] pciehp 0000:00:1c.2:pcie02: HPC vendor_id 8086 device_id 27d4 ss_vid 0 ss_did 0
[ 0.717687] pciehp 0000:00:1c.2:pcie02: service driver pciehp loaded
[ 0.717746] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[ 0.717838] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[ 0.725297] decode_hpp: Could not get hotplug parameters. Use defaults
[ 0.725442] acpiphp_glue: Slot 3 already registered by another hotplug driver
[ 0.733389] acpiphp_ibm: ibm_acpiphp_init: acpi_walk_namespace failed
[ 0.733480] fakephp: Fake PCI Hot Plug Controller Driver
[ 0.734135] fakephp: pci_hp_register failed with error -16
[ 0.734227] fakephp: pci_hp_register failed with error -16
[ 0.734764] ACPI: AC Adapter [ADP1] (on-line)
[ 0.930439] ACPI: Battery Slot [BAT0] (battery present)
[ 0.930739] input: Power Button (FF) as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
[ 0.930861] ACPI: Power Button (FF) [PWRF]
[ 0.931071] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input1
[ 0.931250] ACPI: Lid Switch [LID0]
[ 0.931453] input: Power Button (CM) as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input2
[ 0.931576] ACPI: Power Button (CM) [PWRB]
[ 0.931780] input: Sleep Button (CM) as /devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input3
[ 0.931903] ACPI: Sleep Button (CM) [SLPB]
[ 0.933001] ACPI: SSDT 7FEB3C90, 022A (r1 APPLE Cpu0Ist 3000 INTL 20050309)
[ 0.933630] ACPI: SSDT 7FEB2C10, 02C3 (r1 APPLE Cpu0Cst 3001 INTL 20050309)
[ 0.934333] Monitor-Mwait will be used to enter C-1 state
[ 0.934349] Monitor-Mwait will be used to enter C-2 state
[ 0.934363] Monitor-Mwait will be used to enter C-3 state
[ 0.934449] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
[ 0.934819] processor ACPI_CPU:00: registered as cooling_device0
[ 0.934913] ACPI: Processor [CPU0] (supports 8 throttling states)
[ 0.935571] ACPI: SSDT 7FEB3F10, 0087 (r1 APPLE Cpu1Ist 3000 INTL 20050309)
[ 0.936172] ACPI: SSDT 7FEB2F10, 0085 (r1 APPLE Cpu1Cst 3000 INTL 20050309)
[ 0.937013] ACPI: CPU1 (power states: C1[C1] C2[C2] C3[C3])
[ 0.937373] processor ACPI_CPU:01: registered as cooling_device1
[ 0.937466] ACPI: Processor [CPU1] (supports 8 throttling states)
[ 0.994749] Non-volatile memory driver v1.3
[ 0.995018] intel_rng: FWH not detected
[ 0.995140] Linux agpgart interface v0.103
[ 0.995389] ipmi message handler version 39.2
[ 0.995480] ipmi device interface
[ 0.995685] IPMI System Interface driver.
[ 1.114316] ipmi_si: Unable to find any System Interface(s)
[ 1.114408] IPMI Watchdog: driver initialized
[ 1.114493] Copyright (C) 2004 MontaVista Software - IPMI Powerdown via sys_reboot.
[ 1.114625] Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60 seconds).
[ 1.114748] Hangcheck: Using get_cycles().
[ 1.114846] tpm_inf_pnp 00:03: Found TPM with ID IFX0101
[ 1.114984] tpm_inf_pnp 00:03: TPM found: config base 0x4e, data base 0x4700, chip version 0x000b, vendor id 0x15d1 (Infineon), product id 0x000b (SLB 9635 TT 1.2)
[ 1.115397] [drm] Initialized drm 1.1.0 20060810
[ 1.116200] pci 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 1.116294] pci 0000:01:00.0: setting latency timer to 64
[ 1.116452] [drm] Initialized radeon 1.29.0 20080528 on minor 0
[ 1.119306] brd: module loaded
[ 1.120676] loop: module loaded
[ 1.120922] sky2 driver version 1.22
[ 1.121037] sky2 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 1.121136] sky2 0000:02:00.0: setting latency timer to 64
[ 1.121162] sky2 0000:02:00.0: Yukon-2 EC chip revision 2
[ 1.153463] sky2 0000:02:00.0: Marvell Yukon 88E8053 Gigabit Ethernet Controller
[ 1.153583] Part Number: Yukon 88E8053
[ 1.153585] Engineering Level: Rev. 2.2
[ 1.153587] Manufacturer: Marvell
[ 1.153661] sky2 0000:02:00.0: irq 28 for MSI/MSI-X
[ 1.154147] sky2 eth0: addr 00:16:cb:8c:b2:65
[ 1.154332] PPP generic driver version 2.4.2
[ 1.154575] PPP Deflate Compression module registered
[ 1.155851] PPP MPPE Compression module registered
[ 1.155940] NET: Registered protocol family 24
[ 1.156037] PPPoL2TP kernel driver, V1.0
[ 1.157239] tun: Universal TUN/TAP device driver, 1.6
[ 1.157327] tun: (C) 1999-2004 Max Krasnyansky <ma...@qualcomm.com>
[ 1.157561] usbcore: registered new interface driver cdc_ether
[ 1.157714] usbcore: registered new interface driver rndis_host
[ 1.157872] usbcore: registered new interface driver rndis_wlan
[ 1.157987] console [netcon0] enabled
[ 1.158071] netconsole: network logging started
[ 1.158157] Linux video capture interface: v2.00
[ 1.158403] input: Macintosh mouse button emulation as /devices/virtual/input/input4
[ 1.158825] Driver 'sd' needs updating - please use bus_type methods
[ 1.158973] Driver 'sr' needs updating - please use bus_type methods
[ 1.159175] SCSI Media Changer driver v0.25
[ 1.159317] Driver 'ch' needs updating - please use bus_type methods
[ 1.159564] ata_piix 0000:00:1f.1: version 2.12
[ 1.159651] ata_piix 0000:00:1f.1: power state changed by ACPI to D0
[ 1.159748] ata_piix 0000:00:1f.1: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[ 1.159884] ata_piix 0000:00:1f.1: setting latency timer to 64
[ 1.160061] scsi0 : ata_piix
[ 1.162244] scsi1 : ata_piix
[ 1.163163] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x40c0 irq 14
[ 1.163257] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x40c8 irq 15
[ 1.323941] ata1.00: ATAPI: MATSHITADVD-R UJ-857, HAEA, max UDMA/66
[ 1.337231] ata1.00: configured for UDMA/66
[ 1.339235] scsi 0:0:0:0: CD-ROM MATSHITA DVD-R UJ-857 HAEA PQ: 0 ANSI: 5
[ 1.341093] sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray
[ 1.341186] Uniform CD-ROM driver Revision: 3.20
[ 1.341532] sr 0:0:0:0: Attached scsi CD-ROM sr0
[ 1.341701] sr 0:0:0:0: Attached scsi generic sg0 type 5
[ 1.504627] ata_piix 0000:00:1f.2: enabling device (0005 -> 0007)
[ 1.504725] ata_piix 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19
[ 1.504821] ata_piix 0000:00:1f.2: MAP [ P0 P2 -- -- ]
[ 1.656694] ata_piix 0000:00:1f.2: setting latency timer to 64
[ 1.656805] scsi2 : ata_piix
[ 1.657075] scsi3 : ata_piix
[ 1.658636] ata3: SATA max UDMA/133 cmd 0x40d8 ctl 0x40f4 bmdma 0x4020 irq 19
[ 1.658731] ata4: SATA max UDMA/133 cmd 0x40d0 ctl 0x40f0 bmdma 0x4028 irq 19
[ 2.157997] ata3.01: ATA-7: WDC WD1600BEVS-00RST0, 04.01G04, max UDMA/133
[ 2.158091] ata3.01: 312581808 sectors, multi 0: LBA48 NCQ (depth 0/32)
[ 2.210562] ata3.01: configured for UDMA/133
[ 2.223429] scsi 2:0:1:0: Direct-Access ATA WDC WD1600BEVS-0 04.0 PQ: 0 ANSI: 5
[ 2.223834] sd 2:0:1:0: [sda] 312581808 512-byte hardware sectors: (160 GB/149 GiB)
[ 2.223975] sd 2:0:1:0: [sda] Write Protect is off
[ 2.224063] sd 2:0:1:0: [sda] Mode Sense: 00 3a 00 00
[ 2.224102] sd 2:0:1:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.224303] sd 2:0:1:0: [sda] 312581808 512-byte hardware sectors: (160 GB/149 GiB)
[ 2.224443] sd 2:0:1:0: [sda] Write Protect is off
[ 2.224531] sd 2:0:1:0: [sda] Mode Sense: 00 3a 00 00
[ 2.224569] sd 2:0:1:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.224694] sda: sda1 sda2 sda3 sda4 sda5
[ 2.272393] sd 2:0:1:0: [sda] Attached SCSI disk
[ 2.272641] sd 2:0:1:0: Attached scsi generic sg1 type 0
[ 2.434835] firewire_ohci 0000:0c:03.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
[ 2.500019] firewire_ohci: Added fw-ohci device 0000:0c:03.0, OHCI version 1.0
[ 2.500420] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 2.500533] ehci_hcd 0000:00:1d.7: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[ 2.500637] ehci_hcd 0000:00:1d.7: setting latency timer to 64
[ 2.500642] ehci_hcd 0000:00:1d.7: EHCI Host Controller
[ 2.500923] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1
[ 2.504950] ehci_hcd 0000:00:1d.7: debug port 1
[ 2.505042] ehci_hcd 0000:00:1d.7: cache line size of 32 is not supported
[ 2.505101] ehci_hcd 0000:00:1d.7: irq 23, io mem 0x90405400
[ 2.516683] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[ 2.516805] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 2.516898] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.517017] usb usb1: Product: EHCI Host Controller
[ 2.517104] usb usb1: Manufacturer: Linux 2.6.29-rc4-rt2-tip ehci_hcd
[ 2.517195] usb usb1: SerialNumber: 0000:00:1d.7
[ 2.517413] usb usb1: configuration #1 chosen from 1 choice
[ 2.517600] hub 1-0:1.0: USB hub found
[ 2.517693] hub 1-0:1.0: 8 ports detected
[ 2.518169] uhci_hcd: USB Universal Host Controller Interface driver
[ 2.518293] uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[ 2.518391] uhci_hcd 0000:00:1d.0: setting latency timer to 64
[ 2.518396] uhci_hcd 0000:00:1d.0: UHCI Host Controller
[ 2.518668] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
[ 2.518818] uhci_hcd 0000:00:1d.0: irq 23, io base 0x000040a0
[ 2.518949] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[ 2.519042] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.519161] usb usb2: Product: UHCI Host Controller
[ 2.519249] usb usb2: Manufacturer: Linux 2.6.29-rc4-rt2-tip uhci_hcd
[ 2.519341] usb usb2: SerialNumber: 0000:00:1d.0
[ 2.519550] usb usb2: configuration #1 chosen from 1 choice
[ 2.519743] hub 2-0:1.0: USB hub found
[ 2.519834] hub 2-0:1.0: 2 ports detected
[ 2.520153] uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19
[ 2.520252] uhci_hcd 0000:00:1d.1: setting latency timer to 64
[ 2.520256] uhci_hcd 0000:00:1d.1: UHCI Host Controller
[ 2.520528] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3
[ 2.520680] uhci_hcd 0000:00:1d.1: irq 19, io base 0x00004080
[ 2.520816] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[ 2.520909] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.521030] usb usb3: Product: UHCI Host Controller
[ 2.521117] usb usb3: Manufacturer: Linux 2.6.29-rc4-rt2-tip uhci_hcd
[ 2.521208] usb usb3: SerialNumber: 0000:00:1d.1
[ 2.521413] usb usb3: configuration #1 chosen from 1 choice
[ 2.521600] hub 3-0:1.0: USB hub found
[ 2.521694] hub 3-0:1.0: 2 ports detected
[ 2.522005] uhci_hcd 0000:00:1d.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[ 2.522104] uhci_hcd 0000:00:1d.2: setting latency timer to 64
[ 2.522108] uhci_hcd 0000:00:1d.2: UHCI Host Controller
[ 2.522384] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4
[ 2.522578] uhci_hcd 0000:00:1d.2: irq 18, io base 0x00004060
[ 2.522708] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[ 2.522800] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.522920] usb usb4: Product: UHCI Host Controller
[ 2.523006] usb usb4: Manufacturer: Linux 2.6.29-rc4-rt2-tip uhci_hcd
[ 2.523097] usb usb4: SerialNumber: 0000:00:1d.2
[ 2.523296] usb usb4: configuration #1 chosen from 1 choice
[ 2.523486] hub 4-0:1.0: USB hub found
[ 2.523578] hub 4-0:1.0: 2 ports detected
[ 2.523859] uhci_hcd 0000:00:1d.3: PCI INT D -> GSI 16 (level, low) -> IRQ 16
[ 2.523956] uhci_hcd 0000:00:1d.3: setting latency timer to 64
[ 2.523960] uhci_hcd 0000:00:1d.3: UHCI Host Controller
[ 2.524212] uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 5
[ 2.524406] uhci_hcd 0000:00:1d.3: irq 16, io base 0x00004040
[ 2.524543] usb usb5: New USB device found, idVendor=1d6b, idProduct=0001
[ 2.524635] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.524754] usb usb5: Product: UHCI Host Controller
[ 2.524841] usb usb5: Manufacturer: Linux 2.6.29-rc4-rt2-tip uhci_hcd
[ 2.524932] usb usb5: SerialNumber: 0000:00:1d.3
[ 2.525126] usb usb5: configuration #1 chosen from 1 choice
[ 2.525293] hub 5-0:1.0: USB hub found
[ 2.525384] hub 5-0:1.0: 2 ports detected
[ 2.525796] usbcore: registered new interface driver cdc_acm
[ 2.525888] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
[ 2.526075] usbcore: registered new interface driver usblp
[ 2.526165] Initializing USB Mass Storage driver...
[ 2.526344] usbcore: registered new interface driver usb-storage
[ 2.526435] USB Mass Storage support registered.
[ 2.526621] usbcore: registered new interface driver appledisplay
[ 2.526994] PNP: No PS/2 controller found. Probing ports directly.
[ 2.527968] i8042.c: No controller found.
[ 2.540928] mice: PS/2 mouse device common for all mice
[ 2.616918] usbcore: registered new interface driver appletouch
[ 2.617086] usbcore: registered new interface driver bcm5974
[ 2.617294] input: PC Speaker as /devices/platform/pcspkr/input/input5
[ 2.644324] I2O subsystem v1.325
[ 2.644408] i2o: max drivers = 8
[ 2.650182] I2O Configuration OSM v1.323
[ 2.650406] I2O Bus Adapter OSM v1.317
[ 2.650562] I2O Block Device OSM v1.325
[ 2.653445] I2O SCSI Peripheral OSM v1.316
[ 2.653594] I2O ProcFS OSM v1.316
[ 2.653780] rtc_cmos 00:09: RTC can wake from S4
[ 2.653960] rtc_cmos 00:09: rtc core: registered rtc_cmos as rtc0
[ 2.654116] rtc0: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[ 2.654271] i2c /dev entries driver
[ 2.654504] i801_smbus 0000:00:1f.3: PCI INT B -> GSI 19 (level, low) -> IRQ 19
[ 2.654626] ACPI: I/O resource 0000:00:1f.3 [0xefa0-0xefbf] conflicts with ACPI region SMBI [0xefa0-0xefaf]
[ 2.654751] ACPI: Device needs an ACPI driver
[ 2.655221] applesmc: Apple MacBook Pro detected:
[ 2.655308] applesmc: - Model with accelerometer
[ 2.657299] applesmc: - Model with light sensors and backlight
[ 2.657389] applesmc: - Model with 12 temperature sensors
[ 2.658238] applesmc: device has already been initialized (0xe0, 0x00).
[ 2.658241] applesmc: device successfully initialized.
[ 2.659135] applesmc: 2 fans found.
[ 2.660831] input: applesmc as /devices/platform/applesmc.768/input/input6
[ 2.690200] Registered led device: smc::kbd_backlight
[ 2.690363] applesmc: driver successfully loaded.
[ 2.690829] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.04
[ 2.691094] iTCO_wdt: Found a ICH7-M or ICH7-U TCO device (Version=2, TCOBASE=0x0460)
[ 2.691310] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[ 2.691449] device-mapper: uevent: version 1.0.3
[ 2.691657] device-mapper: ioctl: 4.14.0-ioctl (2008-04-23) initialised: dm-d...@redhat.com
[ 2.700091] device-mapper: multipath: version 1.0.5 loaded
[ 2.700181] device-mapper: multipath round-robin: version 1.0.0 loaded
[ 2.700346] Bluetooth: Generic Bluetooth USB driver ver 0.4
[ 2.700511] usbcore: registered new interface driver btusb
[ 2.703900] cpuidle: using governor ladder
[ 2.704992] cpuidle: using governor menu
[ 2.705263] Marking TSC unstable due to TSC halts in idle
[ 2.706596] usbcore: registered new interface driver usbhid
[ 2.706710] usbhid: v2.6:USB HID core driver
[ 2.707034] Advanced Linux Sound Architecture Driver Version 1.0.18a.
[ 2.708678] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
[ 2.708884] HDA Intel 0000:00:1b.0: setting latency timer to 64
[ 2.738942] hda_codec: STAC922x, Apple subsys_id=106b0200
[ 2.774442] input: HDA Intel at 0x90400000 irq 22 Line In at Ext Rear Jack as /devices/pci0000:00/0000:00:1b.0/input/input7
[ 2.793824] input: HDA Intel at 0x90400000 irq 22 HP Out at Ext Rear Jack as /devices/pci0000:00/0000:00:1b.0/input/input8
[ 2.801749] ALSA device list:
[ 2.801834] #0: Dummy 1
[ 2.801914] #1: Virtual MIDI Card 1
[ 2.801999] #2: HDA Intel at 0x90400000 irq 22
[ 2.802226] oprofile: using NMI interrupt.
[ 2.802350] GACT probability on
[ 2.802434] Mirror/redirect action on
[ 2.802518] Simple TC action Loaded
[ 2.803038] netem: version 1.2
[ 2.803122] u32 classifier
[ 2.803203] Performance counters on
[ 2.803286] input device check on
[ 2.803392] Actions configured
[ 2.804015] IPv4 over IPv4 tunneling driver
[ 2.804578] GRE over IPv4 tunneling driver
[ 2.805188] TCP cubic registered
[ 2.805272] Initializing XFRM netlink socket
[ 2.805428] NET: Registered protocol family 10
[ 2.806279] lo: Disabled Privacy Extensions
[ 2.809108] tunl0: Disabled Privacy Extensions
[ 2.810486] NET: Registered protocol family 17
[ 2.810579] NET: Registered protocol family 15
[ 2.810747] Bridge firewalling registered
[ 2.810863] irlan0 (): not using net_device_ops yet
[ 2.812234] IrCOMM protocol (Dag Brattli)
[ 2.814862] Bluetooth: L2CAP ver 2.11
[ 2.814947] Bluetooth: L2CAP socket layer initialized
[ 2.815036] Bluetooth: SCO (Voice Link) ver 0.6
[ 2.815122] Bluetooth: SCO socket layer initialized
[ 2.815268] Bluetooth: RFCOMM socket layer initialized
[ 2.815362] Bluetooth: RFCOMM TTY layer initialized
[ 2.815450] Bluetooth: RFCOMM ver 1.10
[ 2.815534] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 2.815623] Bluetooth: BNEP filters: protocol multicast
[ 2.815712] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 2.815883] 802.1Q VLAN Support v1.8 Ben Greear <gre...@candelatech.com>
[ 2.815976] All bugs added by David S. Miller <da...@redhat.com>
[ 2.820471] CCID: Activated CCID 2 (TCP-like)
[ 2.820588] CCID: Activated CCID 3 (TCP-Friendly Rate Control)
[ 2.830366] SCTP: Hash tables configured (established 52428 bind 65536)
[ 2.847663] lib80211: common routines for IEEE802.11 drivers
[ 2.847773] lib80211_crypt: registered algorithm 'NULL'
[ 2.847779] TIPC: Activated (version 1.6.4 compiled Feb 19 2009 16:57:08)
[ 2.848303] NET: Registered protocol family 30
[ 2.848392] TIPC: Started in single node mode
[ 2.848479] Using IPI No-Shortcut mode
[ 2.852277] registered taskstats version 1
[ 2.852575] rtc_cmos 00:09: setting system clock to 2009-02-19 19:12:36 UTC (1235070756)
[ 2.852698] BIOS EDD facility v0.16 2004-Jun-25, 2 devices found
[ 2.853227] Freeing unused kernel memory: 420k freed
[ 2.853406] Write protecting the kernel text: 5828k
[ 2.853607] Write protecting the kernel read-only data: 2500k
[ 2.930078] usb 1-3: new high speed USB device using ehci_hcd and address 3
[ 3.000385] firewire_core: created device fw0: GUID 0016cbfffe4c8a54, S400
[ 3.056174] usb 1-3: New USB device found, idVendor=090c, idProduct=1000
[ 3.056288] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3.056402] usb 1-3: Product: Flash Voyager
[ 3.056503] usb 1-3: Manufacturer: Corsair
[ 3.056602] usb 1-3: SerialNumber: A400000000028713
[ 3.056880] usb 1-3: configuration #1 chosen from 1 choice
[ 3.057694] scsi4 : SCSI emulation for USB Mass Storage devices
[ 3.058040] usb-storage: device found at 3
[ 3.058043] usb-storage: waiting for device to settle before scanning
[ 3.163409] usb 1-4: new high speed USB device using ehci_hcd and address 4
[ 3.287174] usb 1-4: New USB device found, idVendor=05ac, idProduct=8300
[ 3.287289] usb 1-4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.287643] usb 1-4: configuration #1 chosen from 1 choice
[ 3.726729] usb 2-2: new full speed USB device using uhci_hcd and address 2
[ 3.905036] usb 2-2: New USB device found, idVendor=05ac, idProduct=0218
[ 3.905180] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.905293] usb 2-2: Product: Apple Internal Keyboard / Trackpad
[ 3.905410] usb 2-2: Manufacturer: Apple Computer
[ 3.905599] usb 2-2: configuration #1 chosen from 1 choice
[ 3.913573] input: Apple Computer Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/input/input9
[ 3.934384] apple 0003:05AC:0218.0001: input,hidraw0: USB HID v1.11 Keyboard [Apple Computer Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-2/input0
[ 3.939034] appletouch: Geyser mode initialized.
[ 3.939256] input: appletouch as /devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.1/input/input10
[ 3.970172] input: Apple Computer Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.2/input/input11
[ 3.991080] apple 0003:05AC:0218.0002: input,hidraw1: USB HID v1.11 Device [Apple Computer Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.0-2/input2
[ 4.000097] Clocksource tsc unstable (delta = -277709176 ns)
[ 4.216788] usb 4-2: new full speed USB device using uhci_hcd and address 2
[ 4.388806] usb 4-2: New USB device found, idVendor=05ac, idProduct=8240
[ 4.388920] usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4.389033] usb 4-2: Product: IR Receiver
[ 4.389132] usb 4-2: Manufacturer: Apple Computer, Inc.
[ 4.389304] usb 4-2: configuration #1 chosen from 1 choice
[ 4.396877] generic-usb 0003:05AC:8240.0003: hidraw2: USB HID v1.11 Device [Apple Computer, Inc. IR Receiver] on usb-0000:00:1d.2-2/input0
[ 4.623456] usb 5-1: new full speed USB device using uhci_hcd and address 2
[ 4.793665] usb 5-1: New USB device found, idVendor=05ac, idProduct=1000
[ 4.793778] usb 5-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 4.793950] usb 5-1: configuration #1 chosen from 1 choice
[ 4.814124] input: HID 05ac:1000 as /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/input/input12
[ 4.834332] generic-usb 0003:05AC:1000.0004: input,hidraw3: USB HID v1.11 Keyboard [HID 05ac:1000] on usb-0000:00:1d.3-1/input0
[ 4.850127] input: HID 05ac:1000 as /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.1/input/input13
[ 4.871070] generic-usb 0003:05AC:1000.0005: input,hidraw4: USB HID v1.11 Mouse [HID 05ac:1000] on usb-0000:00:1d.3-1/input1
[ 8.057172] usb-storage: device scan complete
[ 8.058235] scsi 4:0:0:0: Direct-Access Corsair Flash Voyager 1100 PQ: 0 ANSI: 0 CCS
[ 8.059814] sd 4:0:0:0: [sdb] 7929856 512-byte hardware sectors: (4.06 GB/3.78 GiB)
[ 8.060721] sd 4:0:0:0: [sdb] Write Protect is off
[ 8.060833] sd 4:0:0:0: [sdb] Mode Sense: 43 00 00 00
[ 8.060836] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 8.063853] sd 4:0:0:0: [sdb] 7929856 512-byte hardware sectors: (4.06 GB/3.78 GiB)
[ 8.064826] sd 4:0:0:0: [sdb] Write Protect is off
[ 8.064932] sd 4:0:0:0: [sdb] Mode Sense: 43 00 00 00
[ 8.064937] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 8.065050] sdb: sdb1
[ 8.066233] sd 4:0:0:0: [sdb] Attached SCSI removable disk
[ 8.066398] sd 4:0:0:0: Attached scsi generic sg2 type 0
[ 13.169831] BUG: sleeping function called from invalid context at arch/x86/mm/highmem_32.c:8
[ 13.169957] in_atomic(): 0, irqs_disabled(): 1, pid: 1030, name: cryptsetup
[ 13.170075] Pid: 1030, comm: cryptsetup Tainted: G W 2.6.29-rc4-rt2-tip #54
[ 13.170196] Call Trace:
[ 13.170284] [<c0444cdd>] __might_sleep+0xda/0xf0
[ 13.170374] [<c043ee55>] kmap+0x50/0x77
[ 13.170460] [<c043db3b>] gup_pte_range+0x4b/0xe9
[ 13.170548] [<c043dcb7>] get_user_pages_fast+0xde/0x17f
[ 13.170639] [<c04f75f1>] dio_get_page+0x59/0x124
[ 13.170729] [<c04f8258>] __blockdev_direct_IO+0x4ad/0xabe
[ 13.170819] [<c04f5cdb>] ? blkdev_get_blocks+0x0/0x11c
[ 13.170837] [<c04f730a>] blkdev_direct_IO+0x3f/0x55
[ 13.170837] [<c04f5cdb>] ? blkdev_get_blocks+0x0/0x11c
[ 13.170837] [<c04a977a>] generic_file_aio_read+0xfd/0x587
[ 13.170837] [<c05ff445>] ? avc_has_perm+0x56/0x71
[ 13.170837] [<c04d0fcf>] do_sync_read+0xc6/0x118
[ 13.170837] [<c0467414>] ? autoremove_wake_function+0x0/0x54
[ 13.170837] [<c06046d6>] ? selinux_file_permission+0x119/0x132
[ 13.170837] [<c05fa4dc>] ? security_file_permission+0x1e/0x31
[ 13.170837] [<c04d0f09>] ? do_sync_read+0x0/0x118
[ 13.170837] [<c04d1b61>] vfs_read+0x99/0x14e
[ 13.170837] [<c04d1cf7>] sys_read+0x50/0x87
[ 13.170837] [<c0420086>] sysenter_do_call+0x12/0x21
[ 14.796047] BUG: sleeping function called from invalid context at arch/x86/mm/highmem_32.c:8
[ 14.796177] in_atomic(): 0, irqs_disabled(): 1, pid: 1045, name: cryptsetup
[ 14.796273] Pid: 1045, comm: cryptsetup Tainted: G W 2.6.29-rc4-rt2-tip #54
[ 14.796394] Call Trace:
[ 14.796485] [<c0444cdd>] __might_sleep+0xda/0xf0
[ 14.796573] [<c043ee55>] kmap+0x50/0x77
[ 14.796660] [<c043db3b>] gup_pte_range+0x4b/0xe9
[ 14.796671] [<c043dcb7>] get_user_pages_fast+0xde/0x17f
[ 14.796671] [<c04f75f1>] dio_get_page+0x59/0x124
[ 14.796671] [<c04f8258>] __blockdev_direct_IO+0x4ad/0xabe
[ 14.796671] [<c04f5cdb>] ? blkdev_get_blocks+0x0/0x11c
[ 14.796671] [<c04f730a>] blkdev_direct_IO+0x3f/0x55
[ 14.796671] [<c04f5cdb>] ? blkdev_get_blocks+0x0/0x11c
[ 14.796671] [<c04a977a>] generic_file_aio_read+0xfd/0x587
[ 14.796671] [<c05ff445>] ? avc_has_perm+0x56/0x71
[ 14.796671] [<c04d0fcf>] do_sync_read+0xc6/0x118
[ 14.796671] [<c0467414>] ? autoremove_wake_function+0x0/0x54
[ 14.796671] [<c06046d6>] ? selinux_file_permission+0x119/0x132
[ 14.796671] [<c05fa4dc>] ? security_file_permission+0x1e/0x31
[ 14.796671] [<c04d0f09>] ? do_sync_read+0x0/0x118
[ 14.796671] [<c04d1b61>] vfs_read+0x99/0x14e
[ 14.796671] [<c04d1cf7>] sys_read+0x50/0x87
[ 14.796671] [<c0420086>] sysenter_do_call+0x12/0x21
[ 17.837434] EXT3-fs: mounted filesystem with ordered data mode.
[ 17.837844] kjournald starting. Commit interval 5 seconds
[ 17.966524] SELinux: Disabled at runtime.
[ 17.966629] SELinux: Unregistering netfilter hooks
[ 18.056792] type=1404 audit(1235070771.704:2): selinux=0 auid=4294967295 ses=4294967295
[ 21.276574] udevd version 127 started
[ 21.795981] BUG: sleeping function called from invalid context at arch/x86/mm/highmem_32.c:8
[ 21.795986] in_atomic(): 0, irqs_disabled(): 1, pid: 1374, name: cdrom_id
[ 21.795990] Pid: 1374, comm: cdrom_id Tainted: G W 2.6.29-rc4-rt2-tip #54
[ 21.795993] Call Trace:
[ 21.796003] [<c0444cdd>] __might_sleep+0xda/0xf0
[ 21.796007] [<c043ee55>] kmap+0x50/0x77
[ 21.796011] [<c043db3b>] gup_pte_range+0x4b/0xe9
[ 21.796015] [<c043dcb7>] get_user_pages_fast+0xde/0x17f
[ 21.796020] [<c04f5505>] bio_map_user_iov+0x120/0x220
[ 21.796024] [<c04f5631>] bio_map_user+0x2c/0x42
[ 21.796029] [<c064fe04>] blk_rq_map_user+0xe2/0x1f2
[ 21.796034] [<c045a6ad>] ? capable+0x2d/0x5a
[ 21.796039] [<c065344a>] sg_io+0x1d5/0x32d
[ 21.796045] [<c04cd348>] ? kfree+0x84/0x9a
[ 21.796049] [<c0653adb>] scsi_cmd_ioctl+0x24f/0x4a4
[ 21.796054] [<c078f6ed>] ? cdrom_open+0x84b/0x8c3
[ 21.796058] [<c04f52a1>] ? bio_add_page+0x38/0x50
[ 21.796062] [<c078e185>] cdrom_ioctl+0x3e/0xd5b
[ 21.796066] [<c0444e4e>] ? update_curr+0x9c/0x1b7
[ 21.796072] [<c09aabd9>] ? rt_spin_lock+0x32/0x79
[ 21.796077] [<c04b94fe>] ? page_address+0x95/0xcb
[ 21.796082] [<c0765f9e>] sr_block_ioctl+0x4f/0x94
[ 21.796086] [<c065107d>] __blkdev_driver_ioctl+0x65/0x88
[ 21.796090] [<c0651b12>] blkdev_ioctl+0xa2b/0xa65
[ 21.796095] [<c065bafc>] ? kobject_get+0x20/0x37
[ 21.796099] [<c0652230>] ? get_disk+0x7e/0xa8
[ 21.796103] [<c09aabd9>] ? rt_spin_lock+0x32/0x79
[ 21.796107] [<c04b94fe>] ? page_address+0x95/0xcb
[ 21.796111] [<c04b9b51>] ? kmap_high+0x3f9/0x40f
[ 21.796115] [<c0478126>] ? rt_up+0x3a/0x61
[ 21.796119] [<c09ab92d>] ? unlock_kernel+0x34/0x47
[ 21.796123] [<c04a7eb7>] ? find_get_page+0x84/0xab
[ 21.796127] [<c044aad5>] ? __wake_up+0x3b/0x56
[ 21.796131] [<c04b95db>] ? kunmap_high+0xa7/0xbb
[ 21.796135] [<c04f6137>] block_ioctl+0x3f/0x58
[ 21.796139] [<c04f60f8>] ? block_ioctl+0x0/0x58
[ 21.796143] [<c04dde0c>] vfs_ioctl+0x2d/0x85
[ 21.796146] [<c04de412>] do_vfs_ioctl+0x4b5/0x501
[ 21.796151] [<c04bc25a>] ? handle_mm_fault+0x2d3/0x699
[ 21.796155] [<c04de4b5>] sys_ioctl+0x57/0x82
[ 21.796159] [<c0420086>] sysenter_do_call+0x12/0x21
[ 23.427669] cfg80211: Calling CRDA to update world regulatory domain
[ 24.409852] cfg80211: World regulatory domain updated:
[ 24.409857] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 24.409861] (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 24.741209] ath5k 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[ 24.741226] ath5k 0000:03:00.0: setting latency timer to 64
[ 24.741352] ath5k 0000:03:00.0: registered as 'phy0'
[ 24.895180] wmaster0 (ath5k): not using net_device_ops yet
[ 24.896728] phy0: Selected rate control algorithm 'minstrel'
[ 24.896795] wlan0 (ath5k): not using net_device_ops yet
[ 24.898345] ath5k phy0: Atheros AR5414 chip found (MAC: 0xa3, PHY: 0x61)
[ 25.937648] BUG: sleeping function called from invalid context at arch/x86/mm/highmem_32.c:8
[ 25.937657] in_atomic(): 0, irqs_disabled(): 1, pid: 2075, name: lvm
[ 25.937664] Pid: 2075, comm: lvm Tainted: G W 2.6.29-rc4-rt2-tip #54
[ 25.937670] Call Trace:
[ 25.937683] [<c0444cdd>] __might_sleep+0xda/0xf0
[ 25.937691] [<c043ee55>] kmap+0x50/0x77
[ 25.937697] [<c043db3b>] gup_pte_range+0x4b/0xe9
[ 25.937705] [<c043dcb7>] get_user_pages_fast+0xde/0x17f
[ 25.937713] [<c04f75f1>] dio_get_page+0x59/0x124
[ 25.937721] [<c04f8258>] __blockdev_direct_IO+0x4ad/0xabe
[ 25.937728] [<c04f5cdb>] ? blkdev_get_blocks+0x0/0x11c
[ 25.937738] [<c065bafc>] ? kobject_get+0x20/0x37
[ 25.937746] [<c0652230>] ? get_disk+0x7e/0xa8
[ 25.937753] [<c04f730a>] blkdev_direct_IO+0x3f/0x55
[ 25.937760] [<c04f5cdb>] ? blkdev_get_blocks+0x0/0x11c
[ 25.937768] [<c04a977a>] generic_file_aio_read+0xfd/0x587
[ 25.937775] [<c04f712c>] ? blkdev_open+0x71/0xaf
[ 25.937785] [<c04cf51f>] ? __dentry_open+0x193/0x276
[ 25.937792] [<c04d0fcf>] do_sync_read+0xc6/0x118
[ 25.937801] [<c0467414>] ? autoremove_wake_function+0x0/0x54
[ 25.937811] [<c09aa5cb>] ? rt_mutex_lock+0x23/0x5c
[ 25.937819] [<c09aacf2>] ? _mutex_unlock+0x17/0x2a
[ 25.937828] [<c05fa4dc>] ? security_file_permission+0x1e/0x31
[ 25.937835] [<c04d0f09>] ? do_sync_read+0x0/0x118
[ 25.937841] [<c04d1b61>] vfs_read+0x99/0x14e
[ 25.937848] [<c04d1cf7>] sys_read+0x50/0x87
[ 25.937855] [<c0420086>] sysenter_do_call+0x12/0x21
[ 26.904618] EXT3 FS on dm-0, internal journal
[ 27.017853] kjournald starting. Commit interval 5 seconds
[ 27.018257] EXT3 FS on sda3, internal journal
[ 27.018268] EXT3-fs: mounted filesystem with ordered data mode.
[ 46.073402] usb 2-1: new low speed USB device using uhci_hcd and address 3
[ 46.245423] usb 2-1: New USB device found, idVendor=413c, idProduct=2003
[ 46.245431] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 46.245437] usb 2-1: Product: DELL USB Keyboard
[ 46.245441] usb 2-1: Manufacturer: DELL
[ 46.245633] usb 2-1: configuration #1 chosen from 1 choice
[ 46.263774] input: DELL DELL USB Keyboard as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/input/input14
[ 46.281111] generic-usb 0003:413C:2003.0006: input,hidraw5: USB HID v1.10 Keyboard [DELL DELL USB Keyboard] on usb-0000:00:1d.0-1/input0
[ 46.309496] input: DELL DELL USB Keyboard as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.1/input/input15
[ 46.331110] generic-usb 0003:413C:2003.0007: input,hidraw6: USB HID v1.10 Device [DELL DELL USB Keyboard] on usb-0000:00:1d.0-1/input1


Belonging config is:
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.29-rc4-rt2
# Thu Feb 19 16:26:17 2009
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
# CONFIG_X86_64 is not set
CONFIG_X86=y
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_FAST_CMPXCHG_LOCAL=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_ASM_SEMAPHORES=y
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
# CONFIG_GENERIC_TIME_VSYSCALL is not set
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ZONE_DMA32 is not set
CONFIG_ARCH_POPULATES_NODE_MAP=y
# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_USE_GENERIC_SMP_HELPERS=y
CONFIG_X86_32_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_KTIME_SCALAR=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_TREE=y

#
# RCU Subsystem
#
# CONFIG_CLASSIC_RCU is not set
# CONFIG_TREE_RCU is not set
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=17
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
# CONFIG_GROUP_SCHED is not set
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_CGROUP_NS=y
# CONFIG_CGROUP_FREEZER is not set
# CONFIG_CGROUP_DEVICE is not set
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_RESOURCE_COUNTERS=y
# CONFIG_CGROUP_MEM_RES_CTLR is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
CONFIG_RELAY=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
# CONFIG_NET_NS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_EXTRA_PASS=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
# CONFIG_COMPAT_BRK is not set
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_HAVE_PERF_COUNTERS=y

#
# Performance Counters
#
# CONFIG_PERF_COUNTERS is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
CONFIG_MARKERS=y
CONFIG_OPROFILE=y
# CONFIG_OPROFILE_IBS is not set
CONFIG_HAVE_OPROFILE=y
CONFIG_PROFILE_NMI=y
CONFIG_KPROBES=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_KRETPROBES=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_LBD=y
CONFIG_BLK_DEV_BSG=y
# CONFIG_BLK_DEV_INTEGRITY is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_FREEZER=y

#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
# CONFIG_SPARSE_IRQ is not set
# CONFIG_X86_MPPARSE is not set
# CONFIG_X86_BIGSMP is not set
CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_32_NON_STANDARD is not set
CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_PARAVIRT_GUEST is not set
# CONFIG_MEMTEST is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
CONFIG_MPENTIUMM=y
# 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_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_GENERIC_CPU is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CPU=y
CONFIG_X86_L1_CACHE_BYTES=64
CONFIG_X86_INTERNODE_CACHE_BYTES=64
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_CYRIX_32=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR_32=y
CONFIG_CPU_SUP_TRANSMETA_32=y
CONFIG_CPU_SUP_UMC_32=y
CONFIG_X86_DS=y
CONFIG_X86_PTRACE_BTS=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
# CONFIG_IOMMU_HELPER is not set
# CONFIG_IOMMU_API is not set
CONFIG_NR_CPUS=4
# CONFIG_SCHED_SMT is not set
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT_DESKTOP is not set
CONFIG_PREEMPT_RT=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_SOFTIRQS=y
CONFIG_PREEMPT_HARDIRQS=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
CONFIG_X86_MCE=y
# CONFIG_X86_MCE_NONFATAL is not set
CONFIG_X86_MCE_P4THERMAL=y
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
# CONFIG_MICROCODE_AMD is not set
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ILLEGAL_POINTER_VALUE=0
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_UNEVICTABLE_LRU=y
CONFIG_MMU_NOTIFIER=y
CONFIG_HIGHPTE=y
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
CONFIG_X86_RESERVE_LOW_64K=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_EFI=y
CONFIG_SECCOMP=y
CONFIG_CC_STACKPROTECTOR_ALL=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=300
CONFIG_SCHED_HRTICK=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
# CONFIG_KEXEC_JUMP is not set
CONFIG_PHYSICAL_START=0x400000
CONFIG_RELOCATABLE=y
CONFIG_PHYSICAL_ALIGN=0x400000
CONFIG_HOTPLUG_CPU=y
# CONFIG_COMPAT_VDSO is not set
# CONFIG_CMDLINE_BOOL is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_HARDIRQS_SW_RESEND=y

#
# Power management and ACPI options
#
CONFIG_PM=y
CONFIG_PM_DEBUG=y
# CONFIG_PM_VERBOSE is not set
CONFIG_CAN_PM_TRACE=y
# CONFIG_PM_TRACE_RTC is not set
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND=y
CONFIG_PM_TEST_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_HIBERNATION=y
CONFIG_PM_STD_PARTITION=""
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS is not set
# CONFIG_ACPI_PROCFS_POWER is not set
CONFIG_ACPI_SYSFS_POWER=y
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=y
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=1999
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_PCI_SLOT=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_SBS=y
# CONFIG_APM is not set

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

#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=y
# CONFIG_X86_POWERNOW_K6 is not set
# CONFIG_X86_POWERNOW_K7 is not set
# CONFIG_X86_POWERNOW_K8 is not set
# CONFIG_X86_GX_SUSPMOD is not set
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
CONFIG_X86_SPEEDSTEP_ICH=y
CONFIG_X86_SPEEDSTEP_SMI=y
# CONFIG_X86_P4_CLOCKMOD is not set
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
# CONFIG_X86_LONGRUN is not set
# CONFIG_X86_LONGHAUL is not set
# CONFIG_X86_E_POWERSAVER is not set

#
# shared options
#
CONFIG_X86_SPEEDSTEP_LIB=y
# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
# CONFIG_PCI_GOOLPC is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_PCIEAER=y
CONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
CONFIG_PCI_LEGACY=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_STUB is not set
CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
# CONFIG_ISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
# CONFIG_OLPC is not set
# CONFIG_PCCARD is not set
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_FAKE=y
# CONFIG_HOTPLUG_PCI_COMPAQ is not set
# CONFIG_HOTPLUG_PCI_IBM is not set
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_HOTPLUG_PCI_ACPI_IBM=y
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set

#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_HAVE_AOUT=y
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_MISC=y
CONFIG_HAVE_ATOMIC_IOMAP=y
CONFIG_NET=y

#
# Networking options
#
CONFIG_COMPAT_NET_DEV_OPS=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_SUB_POLICY=y
CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_IPCOMP=y
CONFIG_NET_KEY=y
CONFIG_NET_KEY_MIGRATE=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=y
CONFIG_NET_IPGRE=y
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=y
CONFIG_INET_ESP=y
CONFIG_INET_IPCOMP=y
CONFIG_INET_XFRM_TUNNEL=y
CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_INET_LRO=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=m
CONFIG_TCP_CONG_CUBIC=y
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_SCALABLE=m
CONFIG_TCP_CONG_LP=m
CONFIG_TCP_CONG_VENO=m
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
# CONFIG_DEFAULT_BIC is not set
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_HTCP is not set
# CONFIG_DEFAULT_VEGAS is not set
# CONFIG_DEFAULT_WESTWOOD is not set
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
CONFIG_TCP_MD5SIG=y
CONFIG_IPV6=y
CONFIG_IPV6_PRIVACY=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_MIP6=m
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
CONFIG_IPV6_SIT=m
CONFIG_IPV6_NDISC_NODETYPE=y
CONFIG_IPV6_TUNNEL=m
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
# CONFIG_IPV6_MROUTE is not set
CONFIG_NETLABEL=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y

#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CT_ACCT=y
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CT_PROTO_DCCP=m
CONFIG_NF_CT_PROTO_GRE=m
CONFIG_NF_CT_PROTO_SCTP=m
CONFIG_NF_CT_PROTO_UDPLITE=m
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NETFILTER_TPROXY=m
CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_TARGET_RATEEST=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_SECMARK=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_RATEEST=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_RECENT=m
# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_SOCKET=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_TIME=m
CONFIG_NETFILTER_XT_MATCH_U32=m
CONFIG_IP_VS=m
# CONFIG_IP_VS_IPV6 is not set
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12

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

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

#
# IPVS application helper
#
CONFIG_IP_VS_FTP=m

#
# IP: Netfilter Configuration
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_DCCP=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_PROTO_UDPLITE=m
CONFIG_NF_NAT_PROTO_SCTP=m
CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_AMANDA=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_NF_NAT_SIP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_SECURITY=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m

#
# IPv6: Netfilter Configuration
#
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_QUEUE=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
CONFIG_BRIDGE_EBT_IP=m
CONFIG_BRIDGE_EBT_IP6=m
CONFIG_BRIDGE_EBT_LIMIT=m
CONFIG_BRIDGE_EBT_MARK=m
CONFIG_BRIDGE_EBT_PKTTYPE=m
CONFIG_BRIDGE_EBT_STP=m
CONFIG_BRIDGE_EBT_VLAN=m
CONFIG_BRIDGE_EBT_ARPREPLY=m
CONFIG_BRIDGE_EBT_DNAT=m
CONFIG_BRIDGE_EBT_MARK_T=m
CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE_EBT_ULOG=m
# CONFIG_BRIDGE_EBT_NFLOG is not set
CONFIG_IP_DCCP=y
CONFIG_INET_DCCP_DIAG=y

#
# DCCP CCIDs Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
CONFIG_IP_DCCP_CCID3=y
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
CONFIG_IP_DCCP_CCID3_RTO=100
CONFIG_IP_DCCP_TFRC_LIB=y

#
# DCCP Kernel Hacking
#
# CONFIG_IP_DCCP_DEBUG is not set
CONFIG_NET_DCCPPROBE=m
CONFIG_IP_SCTP=y
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
CONFIG_TIPC=y
# CONFIG_TIPC_ADVANCED is not set
# CONFIG_TIPC_DEBUG is not set
# CONFIG_ATM is not set
CONFIG_STP=y
CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
CONFIG_VLAN_8021Q=y
# CONFIG_VLAN_8021Q_GVRP is not set
# CONFIG_DECNET is not set
CONFIG_LLC=y
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
CONFIG_NET_SCHED=y

#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=y
CONFIG_NET_SCH_HTB=y
CONFIG_NET_SCH_HFSC=y
CONFIG_NET_SCH_PRIO=y
CONFIG_NET_SCH_MULTIQ=y
CONFIG_NET_SCH_RED=y
CONFIG_NET_SCH_SFQ=y
CONFIG_NET_SCH_TEQL=y
CONFIG_NET_SCH_TBF=y
CONFIG_NET_SCH_GRED=y
CONFIG_NET_SCH_DSMARK=y
CONFIG_NET_SCH_NETEM=y
CONFIG_NET_SCH_DRR=y
CONFIG_NET_SCH_INGRESS=y

#
# Classification
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=y
CONFIG_NET_CLS_TCINDEX=y
CONFIG_NET_CLS_ROUTE4=y
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=y
CONFIG_NET_CLS_U32=y
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_RSVP=y
CONFIG_NET_CLS_RSVP6=y
CONFIG_NET_CLS_FLOW=y
CONFIG_NET_CLS_CGROUP=y
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=y
CONFIG_NET_EMATCH_NBYTE=y
CONFIG_NET_EMATCH_U32=y
CONFIG_NET_EMATCH_META=y
CONFIG_NET_EMATCH_TEXT=y
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=y
CONFIG_NET_ACT_GACT=y
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=y
CONFIG_NET_ACT_IPT=m
CONFIG_NET_ACT_NAT=y
CONFIG_NET_ACT_PEDIT=y
CONFIG_NET_ACT_SIMP=y
CONFIG_NET_ACT_SKBEDIT=y
CONFIG_NET_CLS_IND=y
CONFIG_NET_SCH_FIFO=y
CONFIG_DCB=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
CONFIG_IRDA=y

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

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

#
# Infrared-port device drivers
#

#
# SIR device drivers
#
# CONFIG_IRTTY_SIR is not set

#
# Dongle support
#
# CONFIG_KINGSUN_DONGLE is not set
# CONFIG_KSDAZZLE_DONGLE is not set
# CONFIG_KS959_DONGLE is not set

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

#
# Bluetooth device drivers
#
CONFIG_BT_HCIBTUSB=y
# CONFIG_BT_HCIUART is not set
# CONFIG_BT_HCIBCM203X is not set
# CONFIG_BT_HCIBPA10X is not set
# CONFIG_BT_HCIBFUSB is not set
# CONFIG_BT_HCIVHCI is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_PHONET is not set
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_CFG80211=m
# CONFIG_CFG80211_REG_DEBUG is not set
CONFIG_NL80211=y
# CONFIG_WIRELESS_OLD_REGULATORY is not set
CONFIG_WIRELESS_EXT=y
CONFIG_WIRELESS_EXT_SYSFS=y
CONFIG_LIB80211=y
CONFIG_MAC80211=m

#
# Rate control algorithm selection
#
CONFIG_MAC80211_RC_MINSTREL=y
# CONFIG_MAC80211_RC_DEFAULT_PID is not set
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel"
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
CONFIG_MAC80211_DEBUGFS=y
# CONFIG_MAC80211_DEBUG_MENU is not set
# CONFIG_WIMAX is not set
CONFIG_RFKILL=y
CONFIG_RFKILL_INPUT=m
CONFIG_RFKILL_LEDS=y

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
CONFIG_DEBUG_DEVRES=y
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set

#
# User Modules And Translation Layers
#
# CONFIG_MTD_CHAR is not set
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_BLOCK_RO=m
CONFIG_FTL=m
CONFIG_NFTL=m
CONFIG_NFTL_RW=y
CONFIG_INFTL=m
CONFIG_RFD_FTL=m
CONFIG_SSFDC=m
CONFIG_MTD_OOPS=m

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

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

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

#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
CONFIG_MTD_NAND_ECC_SMC=y
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
CONFIG_MTD_NAND_IDS=m
CONFIG_MTD_NAND_DISKONCHIP=m
# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
CONFIG_MTD_NAND_CAFE=m
CONFIG_MTD_NAND_CS553X=m
CONFIG_MTD_NAND_NANDSIM=m
# CONFIG_MTD_NAND_PLATFORM is not set
CONFIG_MTD_ALAUDA=m
# CONFIG_MTD_ONENAND is not set

#
# LPDDR flash memory drivers
#
# CONFIG_MTD_LPDDR is not set

#
# UBI - Unsorted block images
#
CONFIG_MTD_UBI=m
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_RESERVE=1
# CONFIG_MTD_UBI_GLUEBI is not set

#
# UBI debugging options
#
# CONFIG_MTD_UBI_DEBUG is not set
# CONFIG_PARPORT is not set
CONFIG_PNP=y
CONFIG_PNP_DEBUG_MESSAGES=y

#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_CRYPTOLOOP=y
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=16384
# CONFIG_BLK_DEV_XIP is not set
CONFIG_CDROM_PKTCDVD=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_VIRTIO_BLK is not set
# CONFIG_BLK_DEV_HD is not set
# CONFIG_MISC_DEVICES is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_TGT=y
# CONFIG_SCSI_NETLINK is not set
# CONFIG_SCSI_PROC_FS is not set

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

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

#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_LIBFC is not set
# CONFIG_FCOE is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_MVSAS is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_SRP is not set
# CONFIG_SCSI_DH is not set
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
CONFIG_SATA_PMP=y
CONFIG_SATA_AHCI=y
# CONFIG_SATA_SIL24 is not set
CONFIG_ATA_SFF=y
# CONFIG_SATA_SVW is not set
CONFIG_ATA_PIIX=y
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set
# CONFIG_SATA_SIL is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_PATA_ACPI is not set
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CS5535 is not set
# CONFIG_PATA_CS5536 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
CONFIG_ATA_GENERIC=y
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_OLDPIIX is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_NS87415 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
# CONFIG_PATA_SCH is not set
CONFIG_MD=y
CONFIG_BLK_DEV_MD=m
CONFIG_MD_LINEAR=m
CONFIG_MD_RAID0=m
CONFIG_MD_RAID1=m
CONFIG_MD_RAID10=m
CONFIG_MD_RAID456=m
CONFIG_MD_RAID5_RESHAPE=y
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=y
CONFIG_DM_DEBUG=y
CONFIG_DM_CRYPT=y
CONFIG_DM_SNAPSHOT=y
CONFIG_DM_MIRROR=y
CONFIG_DM_ZERO=y
CONFIG_DM_MULTIPATH=y
CONFIG_DM_DELAY=y
CONFIG_DM_UEVENT=y
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#

#
# Enable only one of the two stacks, unless you know what you are doing
#
CONFIG_FIREWIRE=y
CONFIG_FIREWIRE_OHCI=y
CONFIG_FIREWIRE_OHCI_DEBUG=y
# CONFIG_FIREWIRE_SBP2 is not set
# CONFIG_IEEE1394 is not set
CONFIG_I2O=y
# CONFIG_I2O_LCT_NOTIFY_ON_CHANGES is not set
CONFIG_I2O_EXT_ADAPTEC=y
CONFIG_I2O_CONFIG=y
CONFIG_I2O_CONFIG_OLD_IOCTL=y
CONFIG_I2O_BUS=y
CONFIG_I2O_BLOCK=y
CONFIG_I2O_SCSI=y
CONFIG_I2O_PROC=y
CONFIG_MACINTOSH_DRIVERS=y
CONFIG_MAC_EMUMOUSEBTN=y
CONFIG_NETDEVICES=y
CONFIG_IFB=y
CONFIG_DUMMY=y
CONFIG_BONDING=m
CONFIG_MACVLAN=m
CONFIG_EQUALIZER=m
CONFIG_TUN=y
CONFIG_VETH=m
# CONFIG_NET_SB1000 is not set
# CONFIG_ARCNET is not set
# CONFIG_NET_ETHERNET is not set
CONFIG_MII=y
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_E1000E is not set
# CONFIG_IP1000 is not set
# CONFIG_IGB is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
CONFIG_SKY2=y
# CONFIG_SKY2_DEBUG is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
# CONFIG_ATL1E is not set
# CONFIG_JME is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
# CONFIG_LIBERTAS is not set
# CONFIG_LIBERTAS_THINFIRM is not set
# CONFIG_AIRO is not set
# CONFIG_HERMES is not set
# CONFIG_ATMEL is not set
# CONFIG_PRISM54 is not set
# CONFIG_USB_ZD1201 is not set
CONFIG_USB_NET_RNDIS_WLAN=y
# CONFIG_RTL8180 is not set
# CONFIG_RTL8187 is not set
# CONFIG_ADM8211 is not set
# CONFIG_MAC80211_HWSIM is not set
# CONFIG_P54_COMMON is not set
CONFIG_ATH5K=m
# CONFIG_ATH5K_DEBUG is not set
# CONFIG_ATH9K is not set
# CONFIG_IPW2100 is not set
# CONFIG_IPW2200 is not set
# CONFIG_IWLCORE is not set
# CONFIG_IWLWIFI_LEDS is not set
# CONFIG_IWLAGN is not set
# CONFIG_IWL3945 is not set
# CONFIG_HOSTAP is not set
# CONFIG_B43 is not set
# CONFIG_B43LEGACY is not set
# CONFIG_ZD1211RW is not set

#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#

#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
CONFIG_USB_USBNET=y
# CONFIG_USB_NET_AX8817X is not set
CONFIG_USB_NET_CDCETHER=y
# CONFIG_USB_NET_DM9601 is not set
# CONFIG_USB_NET_SMSC95XX is not set
# CONFIG_USB_NET_GL620A is not set
# CONFIG_USB_NET_NET1080 is not set
# CONFIG_USB_NET_PLUSB is not set
# CONFIG_USB_NET_MCS7830 is not set
CONFIG_USB_NET_RNDIS_HOST=y
# CONFIG_USB_NET_CDC_SUBSET is not set
# CONFIG_USB_NET_ZAURUS is not set
# CONFIG_USB_HSO is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_PPP_DEFLATE=y
# CONFIG_PPP_BSDCOMP is not set
CONFIG_PPP_MPPE=y
CONFIG_PPPOE=y
CONFIG_PPPOL2TP=y
# CONFIG_SLIP is not set
CONFIG_SLHC=y
# CONFIG_NET_FC is not set
CONFIG_NETCONSOLE=y
CONFIG_NETCONSOLE_DYNAMIC=y
CONFIG_NETPOLL=y
CONFIG_NETPOLL_TRAP=y
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_VIRTIO_NET is not set
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
CONFIG_INPUT_POLLDEV=y

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
# CONFIG_MOUSE_PS2 is not set
# CONFIG_MOUSE_SERIAL is not set
CONFIG_MOUSE_APPLETOUCH=y
CONFIG_MOUSE_BCM5974=y
# CONFIG_MOUSE_VSXXXAA is not set
CONFIG_INPUT_JOYSTICK=y
# CONFIG_JOYSTICK_ANALOG is not set
# CONFIG_JOYSTICK_A3D is not set
# CONFIG_JOYSTICK_ADI is not set
# CONFIG_JOYSTICK_COBRA is not set
# CONFIG_JOYSTICK_GF2K is not set
# CONFIG_JOYSTICK_GRIP is not set
# CONFIG_JOYSTICK_GRIP_MP is not set
# CONFIG_JOYSTICK_GUILLEMOT is not set
# CONFIG_JOYSTICK_INTERACT is not set
# CONFIG_JOYSTICK_SIDEWINDER is not set
# CONFIG_JOYSTICK_TMDC is not set
# CONFIG_JOYSTICK_IFORCE is not set
# CONFIG_JOYSTICK_WARRIOR is not set
# CONFIG_JOYSTICK_MAGELLAN is not set
# CONFIG_JOYSTICK_SPACEORB is not set
# CONFIG_JOYSTICK_SPACEBALL is not set
# CONFIG_JOYSTICK_STINGER is not set
# CONFIG_JOYSTICK_TWIDJOY is not set
# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JOYSTICK_JOYDUMP is not set
# CONFIG_JOYSTICK_XPAD is not set
CONFIG_INPUT_TABLET=y
# CONFIG_TABLET_USB_ACECAD is not set
# CONFIG_TABLET_USB_AIPTEK is not set
# CONFIG_TABLET_USB_GTCO is not set
# CONFIG_TABLET_USB_KBTAB is not set
# CONFIG_TABLET_USB_WACOM is not set
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=y
# CONFIG_INPUT_APANEL is not set
# CONFIG_INPUT_WISTRON_BTNS is not set
# CONFIG_INPUT_ATLAS_BTNS is not set
# CONFIG_INPUT_ATI_REMOTE is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
# CONFIG_INPUT_CM109 is not set
# CONFIG_INPUT_UINPUT is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
# CONFIG_DEVKMEM is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set

#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
CONFIG_FIX_EARLYCON_MEM=y

#
# Non-8250 serial port support
#
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_VIRTIO_CONSOLE is not set
CONFIG_IPMI_HANDLER=y
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=y
CONFIG_IPMI_SI=y
CONFIG_IPMI_WATCHDOG=y
CONFIG_IPMI_POWEROFF=y
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_INTEL=y
# CONFIG_HW_RANDOM_AMD is not set
# CONFIG_HW_RANDOM_GEODE is not set
# CONFIG_HW_RANDOM_VIA is not set
# CONFIG_HW_RANDOM_VIRTIO is not set
CONFIG_NVRAM=y
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
# CONFIG_HPET_MMAP is not set
CONFIG_HANGCHECK_TIMER=y
CONFIG_TCG_TPM=y
# CONFIG_TCG_TIS is not set
# CONFIG_TCG_NSC is not set
# CONFIG_TCG_ATMEL is not set
CONFIG_TCG_INFINEON=y
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=y

#
# I2C Hardware Bus support
#

#
# PC SMBus host controller drivers
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_I801=y
CONFIG_I2C_ISCH=y
CONFIG_I2C_PIIX4=y
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set

#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_SIMTEC is not set

#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_TINY_USB is not set

#
# Graphics adapter I2C/DDC channel drivers
#
# CONFIG_I2C_VOODOO3 is not set

#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_STUB is not set
# CONFIG_SCx200_ACB is not set

#
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_PCF8575 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# 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
# CONFIG_SPI is not set
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
# CONFIG_GPIOLIB is not set
# CONFIG_W1 is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_BATTERY_DS2760 is not set
# CONFIG_BATTERY_BQ27x00 is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7462 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7473 is not set
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_K8TEMP is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_FSCPOS is not set
# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
CONFIG_SENSORS_CORETEMP=y
# CONFIG_SENSORS_IBMAEM is not set
# CONFIG_SENSORS_IBMPEX is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_LTC4245 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_SENSORS_LIS3LV02D is not set
CONFIG_SENSORS_APPLESMC=y
# CONFIG_HWMON_DEBUG_CHIP is not set
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=y
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set

#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
# CONFIG_ALIM1535_WDT is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_SC520_WDT is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_IB700_WDT is not set
# CONFIG_IBMASR is not set
# CONFIG_WAFER_WDT is not set
# CONFIG_I6300ESB_WDT is not set
CONFIG_ITCO_WDT=y
# CONFIG_ITCO_VENDOR_SUPPORT is not set
# CONFIG_IT8712F_WDT is not set
# CONFIG_IT87_WDT is not set
# CONFIG_HP_WATCHDOG is not set
# CONFIG_SC1200_WDT is not set
# CONFIG_PC87413_WDT is not set
# CONFIG_60XX_WDT is not set
# CONFIG_SBC8360_WDT is not set
# CONFIG_SBC7240_WDT is not set
# CONFIG_CPU5_WDT is not set
# CONFIG_SMSC_SCH311X_WDT is not set
# CONFIG_SMSC37B787_WDT is not set
# CONFIG_W83627HF_WDT is not set
# CONFIG_W83697HF_WDT is not set
# CONFIG_W83697UG_WDT is not set
# CONFIG_W83877F_WDT is not set
# CONFIG_W83977F_WDT is not set
# CONFIG_MACHZ_WDT is not set
# CONFIG_SBC_EPX_C3_WATCHDOG is not set

#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set

#
# USB-based Watchdog Cards
#
# CONFIG_USBPCWATCHDOG is not set
CONFIG_SSB_POSSIBLE=y

#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_REGULATOR is not set

#
# Multimedia devices
#

#
# Multimedia core support
#
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2_COMMON=y
# CONFIG_VIDEO_ALLOW_V4L1 is not set
CONFIG_VIDEO_V4L1_COMPAT=y
# CONFIG_DVB_CORE is not set
CONFIG_VIDEO_MEDIA=y

#
# Multimedia drivers
#
# CONFIG_MEDIA_ATTACH is not set
CONFIG_MEDIA_TUNER=y
# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
CONFIG_MEDIA_TUNER_SIMPLE=y
CONFIG_MEDIA_TUNER_TDA8290=y
CONFIG_MEDIA_TUNER_TDA9887=y
CONFIG_MEDIA_TUNER_TEA5761=y
CONFIG_MEDIA_TUNER_TEA5767=y
CONFIG_MEDIA_TUNER_MT20XX=y
CONFIG_MEDIA_TUNER_XC2028=y
CONFIG_MEDIA_TUNER_XC5000=y
CONFIG_VIDEO_V4L2=y
# CONFIG_VIDEO_CAPTURE_DRIVERS is not set
# CONFIG_RADIO_ADAPTERS is not set
# CONFIG_DAB is not set

#
# Graphics support
#
CONFIG_AGP=y
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
CONFIG_AGP_INTEL=y
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=y
# CONFIG_DRM_I810 is not set
# CONFIG_DRM_I830 is not set
# CONFIG_DRM_I915 is not set
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
# CONFIG_FB_CFB_FILLRECT is not set
# CONFIG_FB_CFB_COPYAREA is not set
# CONFIG_FB_CFB_IMAGEBLIT is not set
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y

#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_UVESA is not set
# CONFIG_FB_VESA is not set
# CONFIG_FB_EFI is not set
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_I810 is not set
# CONFIG_FB_LE80578 is not set
# CONFIG_FB_INTEL is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_VIA is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
# CONFIG_LCD_ILI9320 is not set
CONFIG_LCD_PLATFORM=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=y
# CONFIG_BACKLIGHT_PROGEAR is not set
# CONFIG_BACKLIGHT_MBP_NVIDIA is not set
# CONFIG_BACKLIGHT_SAHARA is not set

#
# Display device support
#
CONFIG_DISPLAY_SUPPORT=y

#
# Display hardware drivers
#

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_SOUND=y
# CONFIG_SOUND_OSS_CORE is not set
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_HWDEP=y
CONFIG_SND_RAWMIDI=y
CONFIG_SND_JACK=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
# CONFIG_SND_MIXER_OSS is not set
# CONFIG_SND_PCM_OSS is not set
# CONFIG_SND_SEQUENCER_OSS is not set
CONFIG_SND_HRTIMER=y
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_DRIVERS=y
# CONFIG_SND_PCSP is not set
CONFIG_SND_DUMMY=y
CONFIG_SND_VIRMIDI=y
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
CONFIG_SND_PCI=y
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AW2 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_OXYGEN is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS5530 is not set
# CONFIG_SND_CS5535AUDIO is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
CONFIG_SND_HDA_INTEL=y
CONFIG_SND_HDA_HWDEP=y
# CONFIG_SND_HDA_RECONFIG is not set
CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_CODEC_REALTEK=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
CONFIG_SND_HDA_CODEC_ATIHDMI=y
CONFIG_SND_HDA_CODEC_NVHDMI=y
CONFIG_SND_HDA_CODEC_INTELHDMI=y
CONFIG_SND_HDA_ELD=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
CONFIG_SND_HDA_POWER_SAVE=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_HIFIER is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SIS7019 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VIRTUOSO is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_USB is not set
# CONFIG_SND_SOC is not set
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
CONFIG_HIDRAW=y

#
# USB Input Devices
#
CONFIG_USB_HID=y
# CONFIG_HID_PID is not set
# CONFIG_USB_HIDDEV is not set

#
# Special HID drivers
#
CONFIG_HID_COMPAT=y
CONFIG_HID_A4TECH=y
CONFIG_HID_APPLE=y
CONFIG_HID_BELKIN=y
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
CONFIG_HID_CYPRESS=y
CONFIG_HID_EZKEY=y
CONFIG_HID_GYRATION=y
CONFIG_HID_LOGITECH=y
# CONFIG_LOGITECH_FF is not set
# CONFIG_LOGIRUMBLEPAD2_FF is not set
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
CONFIG_HID_NTRIG=y
CONFIG_HID_PANTHERLORD=y
# CONFIG_PANTHERLORD_FF is not set
CONFIG_HID_PETALYNX=y
CONFIG_HID_SAMSUNG=y
CONFIG_HID_SONY=y
CONFIG_HID_SUNPLUS=y
# CONFIG_GREENASIA_FF is not set
CONFIG_HID_TOPSEED=y
# CONFIG_THRUSTMASTER_FF is not set
# CONFIG_ZEROPLUS_FF is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
CONFIG_USB_MON=y
# CONFIG_USB_WUSB is not set
# CONFIG_USB_WUSB_CBAF is not set

#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
# CONFIG_USB_OHCI_HCD is not set
CONFIG_USB_UHCI_HCD=y
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set

#
# USB Device Class drivers
#
CONFIG_USB_ACM=y
CONFIG_USB_PRINTER=y
# CONFIG_USB_WDM is not set
# CONFIG_USB_TMC is not set

#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
#

#
# see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_ONETOUCH=y
CONFIG_USB_STORAGE_KARMA=y
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_LIBUSUAL is not set

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set

#
# USB port drivers
#
# CONFIG_USB_SERIAL is not set

#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_BERRY_CHARGE is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGET is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
CONFIG_USB_APPLEDISPLAY=y
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_VST is not set

#
# OTG and related infrastructure
#
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y

#
# LED drivers
#
# CONFIG_LEDS_ALIX2 is not set
# CONFIG_LEDS_PCA9532 is not set
# CONFIG_LEDS_CLEVO_MAIL is not set
# CONFIG_LEDS_PCA955X is not set

#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_EDAC is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set

#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
# CONFIG_RTC_DRV_TEST is not set

#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8581 is not set

#
# SPI RTC drivers
#

#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=y
# CONFIG_RTC_DRV_DS1286 is not set
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_V3020 is not set

#
# on-CPU RTC drivers
#
# CONFIG_DMADEVICES is not set
# CONFIG_UIO is not set
# CONFIG_STAGING is not set
CONFIG_X86_PLATFORM_DEVICES=y
# CONFIG_ACER_WMI is not set
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_TC1100_WMI is not set
# CONFIG_HP_WMI is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_PANASONIC_LAPTOP is not set
# CONFIG_COMPAL_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_INTEL_MENLOW is not set
CONFIG_ACPI_WMI=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set

#
# Firmware Drivers
#
CONFIG_EDD=y
# CONFIG_EDD_OFF is not set
CONFIG_FIRMWARE_MEMMAP=y
CONFIG_EFI_VARS=y
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_DMIID=y
# CONFIG_ISCSI_IBFT_FIND is not set

#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT2_FS_XIP=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_EXT4_FS=y
# CONFIG_EXT4DEV_COMPAT is not set
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_FS_XIP=y
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
CONFIG_JFS_FS=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_FILE_LOCKING=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_QUOTA_TREE=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y
CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=y
CONFIG_GENERIC_ACL=y

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

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

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_VMCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_CONFIGFS_FS=y
CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_ECRYPT_FS is not set
# CONFIG_HFS_FS is not set
CONFIG_HFSPLUS_FS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_UBIFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_SMB_FS is not set
CONFIG_CIFS=y
# CONFIG_CIFS_STATS is not set
CONFIG_CIFS_WEAK_PW_HASH=y
CONFIG_CIFS_UPCALL=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not set
CONFIG_CIFS_EXPERIMENTAL=y
CONFIG_CIFS_DFS_UPCALL=y
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
CONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_737=y
CONFIG_NLS_CODEPAGE_775=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_CODEPAGE_852=y
CONFIG_NLS_CODEPAGE_855=y
CONFIG_NLS_CODEPAGE_857=y
CONFIG_NLS_CODEPAGE_860=y
CONFIG_NLS_CODEPAGE_861=y
CONFIG_NLS_CODEPAGE_862=y
CONFIG_NLS_CODEPAGE_863=y
CONFIG_NLS_CODEPAGE_864=y
CONFIG_NLS_CODEPAGE_865=y
CONFIG_NLS_CODEPAGE_866=y
CONFIG_NLS_CODEPAGE_869=y
CONFIG_NLS_CODEPAGE_936=y
CONFIG_NLS_CODEPAGE_950=y
CONFIG_NLS_CODEPAGE_932=y
CONFIG_NLS_CODEPAGE_949=y
CONFIG_NLS_CODEPAGE_874=y
CONFIG_NLS_ISO8859_8=y
CONFIG_NLS_CODEPAGE_1250=y
CONFIG_NLS_CODEPAGE_1251=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_3=y
CONFIG_NLS_ISO8859_4=y
CONFIG_NLS_ISO8859_5=y
CONFIG_NLS_ISO8859_6=y
CONFIG_NLS_ISO8859_7=y
CONFIG_NLS_ISO8859_9=y
CONFIG_NLS_ISO8859_13=y
CONFIG_NLS_ISO8859_14=y
CONFIG_NLS_ISO8859_15=y
CONFIG_NLS_KOI8_R=y
CONFIG_NLS_KOI8_U=y
CONFIG_NLS_UTF8=y
# CONFIG_DLM is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
CONFIG_ALLOW_WARNINGS=y
# CONFIG_ENABLE_WARN_DEPRECATED is not set
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_SHIRQ=y
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
CONFIG_DETECT_HUNG_TASK=y
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_SCHED_DEBUG=y
CONFIG_SCHEDSTATS=y
CONFIG_TIMER_STATS=y
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_DEBUG_SLAB is not set
CONFIG_DEBUG_PREEMPT=y
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_HIGHMEM=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VIRTUAL is not set
# CONFIG_DEBUG_WRITECOUNT is not set
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_DEBUG_LIST=y
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_FRAME_POINTER=y
CONFIG_BOOT_PRINTK_DELAY=y
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_KPROBES_SANITY_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
CONFIG_LATENCYTOP=y
CONFIG_SYSCTL_SYSCALL_CHECK=y
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_HW_BRANCH_TRACER=y
CONFIG_RING_BUFFER=y
CONFIG_TRACING=y

#
# Tracers
#
# CONFIG_FUNCTION_TRACER is not set
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_SYSPROF_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_CONTEXT_SWITCH_TRACER is not set
# CONFIG_BOOT_TRACER is not set
# CONFIG_TRACE_BRANCH_PROFILING is not set
# CONFIG_POWER_TRACER is not set
# CONFIG_STACK_TRACER is not set
# CONFIG_HW_BRANCH_TRACER is not set
# CONFIG_KMEMTRACE is not set
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_MMIOTRACE is not set
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_STRICT_DEVMEM=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_DEBUG_PER_CPU_MAPS is not set
# CONFIG_X86_PTDUMP is not set
CONFIG_DEBUG_RODATA=y
# CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_NX_TEST is not set
CONFIG_4KSTACKS=y
CONFIG_DOUBLEFAULT=y
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0
CONFIG_DEBUG_BOOT_PARAMS=y
# CONFIG_CPA_DEBUG is not set
# CONFIG_OPTIMIZE_INLINING is not set

#
# Security options
#
CONFIG_KEYS=y
CONFIG_KEYS_DEBUG_PROC_KEYS=y
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_NETWORK_XFRM=y
# CONFIG_SECURITY_PATH is not set
CONFIG_SECURITY_FILE_CAPABILITIES=y
# CONFIG_SECURITY_ROOTPLUG is not set
CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
CONFIG_SECURITY_SELINUX_DISABLE=y
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
# CONFIG_SECURITY_SMACK is not set
CONFIG_XOR_BLOCKS=m
CONFIG_ASYNC_CORE=m
CONFIG_ASYNC_MEMCPY=m
CONFIG_ASYNC_XOR=m
CONFIG_CRYPTO=y

#
# Crypto core or helper
#
# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_GF128MUL=y
CONFIG_CRYPTO_NULL=y
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_AUTHENC=y
# CONFIG_CRYPTO_TEST is not set

#
# Authenticated Encryption with Associated Data
#
CONFIG_CRYPTO_CCM=y
CONFIG_CRYPTO_GCM=y
CONFIG_CRYPTO_SEQIV=y

#
# Block modes
#
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_LRW=y
CONFIG_CRYPTO_PCBC=y
CONFIG_CRYPTO_XTS=y

#
# Hash modes
#
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=y

#
# Digest
#
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CRC32C_INTEL is not set
CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=y
CONFIG_CRYPTO_RMD128=y
CONFIG_CRYPTO_RMD160=y
CONFIG_CRYPTO_RMD256=y
CONFIG_CRYPTO_RMD320=y
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_TGR192=y
CONFIG_CRYPTO_WP512=y

#
# Ciphers
#
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_AES_586=y
CONFIG_CRYPTO_ANUBIS=y
CONFIG_CRYPTO_ARC4=y
CONFIG_CRYPTO_BLOWFISH=y
CONFIG_CRYPTO_CAMELLIA=y
CONFIG_CRYPTO_CAST5=y
CONFIG_CRYPTO_CAST6=y
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_FCRYPT=y
CONFIG_CRYPTO_KHAZAD=y
CONFIG_CRYPTO_SALSA20=y
CONFIG_CRYPTO_SALSA20_586=y
CONFIG_CRYPTO_SEED=y
CONFIG_CRYPTO_SERPENT=y
CONFIG_CRYPTO_TEA=y
CONFIG_CRYPTO_TWOFISH=y
CONFIG_CRYPTO_TWOFISH_COMMON=y
CONFIG_CRYPTO_TWOFISH_586=y

#
# Compression
#
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZO=y

#
# Random Number Generation
#
# CONFIG_CRYPTO_ANSI_CPRNG is not set
# CONFIG_CRYPTO_HW is not set
CONFIG_HAVE_KVM=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_KVM_INTEL=y
# CONFIG_KVM_AMD is not set
# CONFIG_KVM_TRACE is not set
# CONFIG_LGUEST is not set
CONFIG_VIRTIO=y
CONFIG_VIRTIO_RING=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_FIND_LAST_BIT=y
CONFIG_CRC_CCITT=y
CONFIG_CRC16=y
CONFIG_CRC_T10DIF=y
CONFIG_CRC_ITU_T=y
CONFIG_CRC32=y
CONFIG_CRC7=y
CONFIG_LIBCRC32C=y
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_DEC16=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=y
CONFIG_TEXTSEARCH_BM=y
CONFIG_TEXTSEARCH_FSM=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y

Peter Zijlstra

unread,
Feb 19, 2009, 3:51:39 PM2/19/09
to Thomas Meyer, Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Carsten Emde, Clark Williams

Hmm, this appears unimplemented on -rt, shouldn't hurt much, but could
be fixed.

> [ 13.169831] BUG: sleeping function called from invalid context at arch/x86/mm/highmem_32.c:8
> [ 13.169957] in_atomic(): 0, irqs_disabled(): 1, pid: 1030, name: cryptsetup
> [ 13.170075] Pid: 1030, comm: cryptsetup Tainted: G W 2.6.29-rc4-rt2-tip #54
> [ 13.170196] Call Trace:
> [ 13.170284] [<c0444cdd>] __might_sleep+0xda/0xf0
> [ 13.170374] [<c043ee55>] kmap+0x50/0x77
> [ 13.170460] [<c043db3b>] gup_pte_range+0x4b/0xe9
> [ 13.170548] [<c043dcb7>] get_user_pages_fast+0xde/0x17f
> [ 13.170639] [<c04f75f1>] dio_get_page+0x59/0x124
> [ 13.170729] [<c04f8258>] __blockdev_direct_IO+0x4ad/0xabe
> [ 13.170819] [<c04f5cdb>] ? blkdev_get_blocks+0x0/0x11c
> [ 13.170837] [<c04f730a>] blkdev_direct_IO+0x3f/0x55
> [ 13.170837] [<c04f5cdb>] ? blkdev_get_blocks+0x0/0x11c
> [ 13.170837] [<c04a977a>] generic_file_aio_read+0xfd/0x587
> [ 13.170837] [<c05ff445>] ? avc_has_perm+0x56/0x71
> [ 13.170837] [<c04d0fcf>] do_sync_read+0xc6/0x118
> [ 13.170837] [<c0467414>] ? autoremove_wake_function+0x0/0x54
> [ 13.170837] [<c06046d6>] ? selinux_file_permission+0x119/0x132
> [ 13.170837] [<c05fa4dc>] ? security_file_permission+0x1e/0x31
> [ 13.170837] [<c04d0f09>] ? do_sync_read+0x0/0x118
> [ 13.170837] [<c04d1b61>] vfs_read+0x99/0x14e
> [ 13.170837] [<c04d1cf7>] sys_read+0x50/0x87
> [ 13.170837] [<c0420086>] sysenter_do_call+0x12/0x21

Caused by CONFIG_HIGHPTE=y,

as long as TLB flushes are IPIs we really need to disable IRQs for
gup_fast() and thus will either need non-preemptible kmap or disabled
high-pte or disable the gup_fast() fast-path, which would be a shame.

Thomas Meyer

unread,
Feb 20, 2009, 2:34:02 AM2/20/09
to Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
Am Donnerstag, den 12.02.2009, 23:56 +0100 schrieb Thomas Gleixner:
> We are pleased to announce the first update to our new preempt-rt
> series. It fixes the reported bugs and some more.
>
> Download locations:
>
> http://rt.et.redhat.com/download/
> http://www.kernel.org/pub/linux/kernel/projects/rt/
>
> Information on the RT patch can be found at:
>
> http://rt.wiki.kernel.org/index.php/Main_Page
>
> to build the 2.6.29-rc4-rt2 tree, the following patches should be
> applied:
>
> http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc4.tar.bz2
> http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc4-rt2.bz2
>
> The broken out patches are also available at the same download
> locations.
>
> Enjoy !
>
> Thomas, Ingo

Hi,

Are you interested in these BUG reports?

Without CONFIG_HIGHPTE kernel boots and seems to work correct, but I'm
hitting these two BUGs:

[ 19.840100] BUG: sleeping function called from invalid context at arch/x86/mm/highmem_32.c:8
[ 19.840105] in_atomic(): 0, irqs_disabled(): 1, pid: 718, name: IRQ-14
[ 19.840110] Pid: 718, comm: IRQ-14 Tainted: G W 2.6.29-rc4-rt2-tip #55
[ 19.840113] Call Trace:
[ 19.840123] [<c0444cbd>] __might_sleep+0xda/0xf0
[ 19.840128] [<c043ee31>] kmap+0x50/0x77
[ 19.840133] [<c0663e35>] sg_miter_next+0xc1/0xdf
[ 19.840137] [<c0663ee8>] sg_copy_buffer+0x95/0xc5
[ 19.840141] [<c0663f35>] sg_copy_to_buffer+0x1d/0x33
[ 19.840149] [<c0774ab1>] atapi_qc_complete+0x25a/0x2c5
[ 19.840153] [<c076dece>] __ata_qc_complete+0xb4/0xcd
[ 19.840157] [<c076f844>] ata_qc_complete+0x1be/0x1d7
[ 19.840162] [<c077c812>] ata_hsm_qc_complete+0xa9/0xd3
[ 19.840166] [<c077ceb7>] ata_sff_hsm_move+0x67b/0x6da
[ 19.840171] [<c077d19b>] ata_sff_interrupt+0x15d/0x205
[ 19.840176] [<c049440a>] handle_IRQ_event+0x4b/0xce
[ 19.840180] [<c0494ac7>] do_irqd+0x141/0x271
[ 19.840184] [<c0494986>] ? do_irqd+0x0/0x271
[ 19.840189] [<c0467022>] kthread+0x4a/0x82
[ 19.840192] [<c0466fd8>] ? kthread+0x0/0x82
[ 19.840197] [<c0420b67>] kernel_thread_helper+0x7/0x10

and:
[ 357.286589] BUG: sleeping function called from invalid context at arch/x86/mm/highmem_32.c:8
[ 357.286597] in_atomic(): 0, irqs_disabled(): 1, pid: 718, name: IRQ-14
[ 357.286605] Pid: 718, comm: IRQ-14 Tainted: G W 2.6.29-rc4-rt2-tip #55
[ 357.286611] Call Trace:
[ 357.286624] [<c0444cbd>] __might_sleep+0xda/0xf0
[ 357.286631] [<c043ee31>] kmap+0x50/0x77
[ 357.286640] [<c0663e35>] sg_miter_next+0xc1/0xdf
[ 357.286647] [<c0663ee8>] sg_copy_buffer+0x95/0xc5
[ 357.286654] [<c0663f35>] sg_copy_to_buffer+0x1d/0x33
[ 357.286664] [<c0774ab1>] atapi_qc_complete+0x25a/0x2c5
[ 357.286672] [<c076dece>] __ata_qc_complete+0xb4/0xcd
[ 357.286680] [<c076f844>] ata_qc_complete+0x1be/0x1d7
[ 357.286688] [<c09ab024>] ? __spin_unlock+0x1e/0x43
[ 357.286696] [<c077c812>] ata_hsm_qc_complete+0xa9/0xd3
[ 357.286703] [<c077ceb7>] ata_sff_hsm_move+0x67b/0x6da
[ 357.286711] [<c077d19b>] ata_sff_interrupt+0x15d/0x205
[ 357.286720] [<c049440a>] handle_IRQ_event+0x4b/0xce
[ 357.286727] [<c0494ac7>] do_irqd+0x141/0x271
[ 357.286734] [<c0494986>] ? do_irqd+0x0/0x271
[ 357.286742] [<c0467022>] kthread+0x4a/0x82
[ 357.286757] [<c0466fd8>] ? kthread+0x0/0x82
[ 357.286762] [<c0420b67>] kernel_thread_helper+0x7/0x10

greets
thomas

Peter Zijlstra

unread,
Feb 20, 2009, 2:50:00 AM2/20/09
to Thomas Meyer, Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Carsten Emde, Clark Williams, jens.axboe, Tejun Heo, FUJITA Tomonori, James Bottomley
On Fri, 2009-02-20 at 07:32 +0100, Thomas Meyer wrote:
> Are you interested in these BUG reports?

Yes we are, thanks!

> Without CONFIG_HIGHPTE kernel boots and seems to work correct, but I'm
> hitting these two BUGs:

They appear to be identical, so I'll consider them two instances of one
bug :-)

> [ 19.840100] BUG: sleeping function called from invalid context at arch/x86/mm/highmem_32.c:8
> [ 19.840105] in_atomic(): 0, irqs_disabled(): 1, pid: 718, name: IRQ-14
> [ 19.840110] Pid: 718, comm: IRQ-14 Tainted: G W 2.6.29-rc4-rt2-tip #55
> [ 19.840113] Call Trace:
> [ 19.840123] [<c0444cbd>] __might_sleep+0xda/0xf0
> [ 19.840128] [<c043ee31>] kmap+0x50/0x77
> [ 19.840133] [<c0663e35>] sg_miter_next+0xc1/0xdf
> [ 19.840137] [<c0663ee8>] sg_copy_buffer+0x95/0xc5
> [ 19.840141] [<c0663f35>] sg_copy_to_buffer+0x1d/0x33
> [ 19.840149] [<c0774ab1>] atapi_qc_complete+0x25a/0x2c5
> [ 19.840153] [<c076dece>] __ata_qc_complete+0xb4/0xcd
> [ 19.840157] [<c076f844>] ata_qc_complete+0x1be/0x1d7
> [ 19.840162] [<c077c812>] ata_hsm_qc_complete+0xa9/0xd3
> [ 19.840166] [<c077ceb7>] ata_sff_hsm_move+0x67b/0x6da
> [ 19.840171] [<c077d19b>] ata_sff_interrupt+0x15d/0x205
> [ 19.840176] [<c049440a>] handle_IRQ_event+0x4b/0xce
> [ 19.840180] [<c0494ac7>] do_irqd+0x141/0x271
> [ 19.840184] [<c0494986>] ? do_irqd+0x0/0x271
> [ 19.840189] [<c0467022>] kthread+0x4a/0x82
> [ 19.840192] [<c0466fd8>] ? kthread+0x0/0x82
> [ 19.840197] [<c0420b67>] kernel_thread_helper+0x7/0x10

sg_copy_buffer() seems to disable IRQs, however since on -rt everything
is a irq-thread and kmap is preemptible, we don't appear to have that
need.

CC'd everybody who ever touched the file.

---
lib/scatterlist.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index b7b449d..4c6510d 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -426,7 +426,7 @@ static size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents,

sg_miter_start(&miter, sgl, nents, SG_MITER_ATOMIC);

- local_irq_save(flags);
+ local_irq_save_nort(flags);

while (sg_miter_next(&miter) && offset < buflen) {
unsigned int len;
@@ -445,7 +445,7 @@ static size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents,

sg_miter_stop(&miter);

- local_irq_restore(flags);
+ local_irq_restore_nort(flags);
return offset;

Thomas Meyer

unread,
Feb 20, 2009, 11:10:35 AM2/20/09
to Peter Zijlstra, Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Carsten Emde, Clark Williams, jens.axboe, Tejun Heo, FUJITA Tomonori, James Bottomley

With above patch I get a lot of warnings in

lib/scatterlist.c:395 sg_miter_stop+0x5a/0xa4().

Like:
[ 34.946650] ------------[ cut here ]------------
[ 34.946653] WARNING: at lib/scatterlist.c:395 sg_miter_stop+0x5a/0xa4()
[ 34.946655] Hardware name: MacBookPro1,1
[ 34.946657] Modules linked in: ath5k mac80211 cfg80211 video [last unloaded: scsi_wait_scan]
[ 34.946665] Pid: 8, comm: sirq-block/0 Tainted: G W 2.6.29-rc4-rt2-tip #56
[ 34.946690] Call Trace:
[ 34.946694] [<c0451e50>] warn_slowpath+0x8a/0xd3
[ 34.946698] [<c09ab0e4>] ? __spin_unlock+0x1e/0x43
[ 34.946703] [<c04476d6>] ? enqueue_task_fair+0x2df/0x331
[ 34.946707] [<c0442c7c>] ? enqueue_task+0x70/0x8e
[ 34.946711] [<c044cf91>] ? try_to_wake_up+0x2eb/0x306
[ 34.946715] [<c0663e0a>] sg_miter_stop+0x5a/0xa4
[ 34.946719] [<c0663fd6>] sg_copy_buffer+0xa3/0xbe
[ 34.946723] [<c0664041>] sg_copy_from_buffer+0x1d/0x33
[ 34.946728] [<c0774c3d>] ata_scsi_rbuf_fill+0x59/0x90
[ 34.946731] [<c07760ed>] ? ata_scsiop_inq_80+0x0/0x41
[ 34.946735] [<c0755b3e>] ? scsi_done+0x0/0x2d
[ 34.946739] [<c0755b3e>] ? scsi_done+0x0/0x2d
[ 34.946743] [<c0774e24>] ata_scsi_simulate+0x1b0/0x1f8
[ 34.946747] [<c0755b3e>] ? scsi_done+0x0/0x2d
[ 34.946752] [<c0775178>] ata_scsi_queuecmd+0x16d/0x1bc
[ 34.946756] [<c0755de0>] scsi_dispatch_cmd+0x18a/0x208
[ 34.946760] [<c075b378>] scsi_request_fn+0x349/0x487
[ 34.946764] [<c064bcb6>] blk_invoke_request_fn+0x75/0x146
[ 34.946768] [<c064c671>] __blk_run_queue+0x2d/0x42
[ 34.946772] [<c064c6ac>] blk_run_queue+0x26/0x46
[ 34.946775] [<c075a836>] scsi_run_queue+0x283/0x321
[ 34.946780] [<c075b6c9>] scsi_next_command+0x36/0x54
[ 34.946783] [<c075b8e2>] scsi_end_request+0x84/0xa1
[ 34.946787] [<c075beb9>] scsi_io_completion+0x1a4/0x3a6
[ 34.946792] [<c075c1be>] ? scsi_device_unbusy+0x8c/0xa3
[ 34.946796] [<c0755b25>] scsi_finish_command+0xd3/0xec
[ 34.946800] [<c075c3bc>] scsi_softirq_done+0x104/0x11d
[ 34.946804] [<c06505df>] blk_done_softirq+0x5f/0x7e
[ 34.946808] [<c04575e3>] ksoftirqd+0x12d/0x223
[ 34.946813] [<c04574b6>] ? ksoftirqd+0x0/0x223
[ 34.946816] [<c0467022>] kthread+0x4a/0x82
[ 34.946820] [<c0466fd8>] ? kthread+0x0/0x82
[ 34.946824] [<c0420b67>] kernel_thread_helper+0x7/0x10
[ 34.946827] ---[ end trace a7919e7f17c0a754 ]---

Ingo Molnar

unread,
Feb 20, 2009, 11:18:00 AM2/20/09
to Thomas Meyer, Peter Zijlstra, Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Carsten Emde, Clark Williams, jens.axboe, Tejun Heo, FUJITA Tomonori, James Bottomley

* Thomas Meyer <tho...@m3y3r.de> wrote:

> With above patch I get a lot of warnings in
>
> lib/scatterlist.c:395 sg_miter_stop+0x5a/0xa4().
>
> Like:
> [ 34.946650] ------------[ cut here ]------------
> [ 34.946653] WARNING: at lib/scatterlist.c:395 sg_miter_stop+0x5a/0xa4()

could you edit lib/scatterlist.c line 395 and remove this line:

WARN_ON(!irqs_disabled());

?

Ingo

Sven-Thorsten Dietrich

unread,
Feb 20, 2009, 5:26:07 PM2/20/09
to Thomas Gleixner, pet...@infradead.org, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
On Thu, 2009-02-12 at 23:56 +0100, Thomas Gleixner wrote:
> We are pleased to announce the first update to our new preempt-rt
> series. It fixes the reported bugs and some more.
>
FYI:

These patches in RT2:

rt-fix-ipi-kfree-introduce-ipi_softirq.patch
rt-fix-ipi-kfree-introduce-ipi_softirq-cleanup.patch

Cause a hard-lock when running dhcp on my 8-way AMD box.

Reverting them eliminates the issue.

Sven

Peter Zijlstra

unread,
Feb 20, 2009, 5:55:00 PM2/20/09
to Sven-Thorsten Dietrich, Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Carsten Emde, Clark Williams
On Fri, 2009-02-20 at 14:25 -0800, Sven-Thorsten Dietrich wrote:
> On Thu, 2009-02-12 at 23:56 +0100, Thomas Gleixner wrote:
> > We are pleased to announce the first update to our new preempt-rt
> > series. It fixes the reported bugs and some more.
> >
> FYI:
>
> These patches in RT2:
>
> rt-fix-ipi-kfree-introduce-ipi_softirq.patch
> rt-fix-ipi-kfree-introduce-ipi_softirq-cleanup.patch
>
> Cause a hard-lock when running dhcp on my 8-way AMD box.
>
> Reverting them eliminates the issue.

can you try the patches in:

http://lkml.org/lkml/2009/2/17/385
http://lkml.org/lkml/2009/2/17/384
http://lkml.org/lkml/2009/2/17/387

Sven-Thorsten Dietrich

unread,
Feb 20, 2009, 7:58:22 PM2/20/09
to Peter Zijlstra, Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Carsten Emde, Clark Williams
On Fri, 2009-02-20 at 23:54 +0100, Peter Zijlstra wrote:
> On Fri, 2009-02-20 at 14:25 -0800, Sven-Thorsten Dietrich wrote:
> > On Thu, 2009-02-12 at 23:56 +0100, Thomas Gleixner wrote:
> > > We are pleased to announce the first update to our new preempt-rt
> > > series. It fixes the reported bugs and some more.
> > >
> > FYI:
> >
> > These patches in RT2:
> >
> > rt-fix-ipi-kfree-introduce-ipi_softirq.patch
> > rt-fix-ipi-kfree-introduce-ipi_softirq-cleanup.patch
> >
> > Cause a hard-lock when running dhcp on my 8-way AMD box.
> >
> > Reverting them eliminates the issue.
>
> can you try the patches in:
>
> http://lkml.org/lkml/2009/2/17/385
> http://lkml.org/lkml/2009/2/17/384
> http://lkml.org/lkml/2009/2/17/387
>
>
>

These work with 2.6.29-rc4-rt2.

Also fixes serial console stall.

I applied them before RT and had to tweak these patches:

preempt-realtime-ipi-call-lock-raw.patch
preempt-realtime-x86_64.patch

Thanks!

Sven

Thomas Meyer

unread,
Feb 21, 2009, 12:05:36 PM2/21/09
to Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
Am Donnerstag, den 12.02.2009, 23:56 +0100 schrieb Thomas Gleixner:
> We are pleased to announce the first update to our new preempt-rt
> series. It fixes the reported bugs and some more.
>
> Download locations:
>
> http://rt.et.redhat.com/download/
> http://www.kernel.org/pub/linux/kernel/projects/rt/
>
> Information on the RT patch can be found at:
>
> http://rt.wiki.kernel.org/index.php/Main_Page
>
> to build the 2.6.29-rc4-rt2 tree, the following patches should be
> applied:
>
> http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc4.tar.bz2
> http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc4-rt2.bz2
>
> The broken out patches are also available at the same download
> locations.
>
> Enjoy !
>
> Thomas, Ingo
> --

Hi,

I got this warning, that i never saw before with a non rt-preempt
kernel. But maybe it's just coincidence...

[22652.437889] ------------[ cut here ]------------
[22652.437898] WARNING: at net/mac80211/rx.c:2234 __ieee80211_rx+0x85/0x53e [mac80211]()
[22652.437904] Hardware name: MacBookPro1,1
[22652.437908] Modules linked in: ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables nf_conntrack_ftp ip6t_REJECT xt_tcpudp nf_conntrack_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables x_tables ath5k mac80211 cfg80211 video [last unloaded: scsi_wait_scan]
[22652.437952] Pid: 23, comm: sirq-tasklet/1 Tainted: G W 2.6.29-rc4-rt2-tip #57
[22652.437958] Call Trace:
[22652.437970] [<c0451e50>] warn_slowpath+0x8a/0xd3
[22652.437981] [<c0665165>] ? plist_add+0x73/0x8e
[22652.437990] [<c0447d8e>] ? enqueue_pushable_task+0x62/0x79
[22652.437999] [<c04480f1>] ? enqueue_task_rt+0x203/0x247
[22652.438029] [<f90e78bf>] __ieee80211_rx+0x85/0x53e [mac80211]
[22652.438039] [<c09aafaa>] ? __spin_unlock_irq+0x1e/0x44
[22652.438057] [<f92e14af>] ath5k_tasklet_rx+0x406/0x457 [ath5k]
[22652.438067] [<c045787e>] __tasklet_action+0x8c/0x100
[22652.438075] [<c04579d8>] tasklet_action+0x67/0x7f
[22652.438083] [<c04575e3>] ksoftirqd+0x12d/0x223
[22652.438091] [<c04574b6>] ? ksoftirqd+0x0/0x223
[22652.438099] [<c0467022>] kthread+0x4a/0x82
[22652.438106] [<c0466fd8>] ? kthread+0x0/0x82
[22652.438114] [<c0420b67>] kernel_thread_helper+0x7/0x10
[22652.438120] ---[ end trace a7919e7f17c0a727 ]---

Frederic Weisbecker

unread,
Feb 21, 2009, 12:19:36 PM2/21/09
to Thomas Meyer, Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, ath5k...@lists.ath5k.org, linux-w...@vger.kernel.org


Hi,

It's an known issue on ath5k (or 80211):
http://patchwork.kernel.org/patch/1169/

So not preempt-rt related. Perhaps it has been fixed in -rc5.


> --
> To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in

Thomas Meyer

unread,
Feb 22, 2009, 8:21:12 AM2/22/09
to Thomas Gleixner, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
Am Donnerstag, den 12.02.2009, 23:56 +0100 schrieb Thomas Gleixner:
> We are pleased to announce the first update to our new preempt-rt
> series. It fixes the reported bugs and some more.
>
> Download locations:
>
> http://rt.et.redhat.com/download/
> http://www.kernel.org/pub/linux/kernel/projects/rt/
>
> Information on the RT patch can be found at:
>
> http://rt.wiki.kernel.org/index.php/Main_Page
>
> to build the 2.6.29-rc4-rt2 tree, the following patches should be
> applied:
>
> http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc4.tar.bz2
> http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc4-rt2.bz2
>
> The broken out patches are also available at the same download
> locations.
>
> Enjoy !
>
> Thomas, Ingo

Hi,

Is this one probably rt-preempt related?

BUG: unable to handle kernel paging request at 00100100
IP: [<f8aa431c>] __nf_conntrack_find+0xd6/0x109 [nf_conntrack]
*pde = 34ece067 *pte = 00000000
Oops: 0000 [#1] PREEMPT SMP
last sysfs file: /sys/devices/LNXSYSTM:00/device:00/PNP0C0A:00/power_supply/BAT0/energy_full
Modules linked in: nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack_ftp nf_conntrack_ipv6 xt_state nf_conntrack ath5k mac80211 cfg80211 video [last unloaded: scsi_wait_scan]

Pid: 5, comm: sirq-timer/0 Tainted: G W (2.6.29-rc4-rt2-tip #60) MacBookPro1,1
EIP: 0060:[<f8aa431c>] EFLAGS: 00010206 CPU: 0
EIP is at __nf_conntrack_find+0xd6/0x109 [nf_conntrack]
EAX: f4853240 EBX: f7053d38 ECX: 00100100 EDX: f4f5c640
ESI: ea190868 EDI: c0e07ec0 EBP: f7053cc8 ESP: f7053cb8
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 preempt:00000001
Process sirq-timer/0 (pid: 5, ti=f7053000 task=f7064dc0 task.ti=f7053000)
Stack:
985792de f7053d38 c0e07ec0 c0e07ec0 f7053ce0 f8aa4731 985792de f7053d38
f8ba3bb8 c0e07ec0 f7053d70 f8aa59c5 f6b81a00 f1ec5ef4 00000003 00000002
f8ab132c 00000014 f7053d94 00000014 f7053d30 06053d4e f5a92000 f67f2980
Call Trace:
[<f8aa4731>] ? nf_conntrack_find_get+0x26/0x75 [nf_conntrack]
[<f8aa59c5>] ? nf_conntrack_in+0x15a/0x45d [nf_conntrack]
[<f8ba2472>] ? ipv4_conntrack_local+0x3d/0x58 [nf_conntrack_ipv4]
[<c089cdaf>] ? nf_iterate+0x4f/0x93
[<c08b3938>] ? dst_output+0x0/0x2b
[<c08b3938>] ? dst_output+0x0/0x2b
[<c089cf84>] ? nf_hook_slow+0x65/0xd3
[<c08b3938>] ? dst_output+0x0/0x2b
[<c08b3938>] ? dst_output+0x0/0x2b
[<c08b5292>] ? __ip_local_out+0x9f/0xba
[<c08b3938>] ? dst_output+0x0/0x2b
[<c08b52c8>] ? ip_local_out+0x1b/0x3d
[<c08b5b31>] ? ip_queue_xmit+0x2cf/0x358
[<c0442c7c>] ? enqueue_task+0x70/0x8e
[<c08ca3de>] ? tcp_v4_send_check+0x85/0xd0
[<c08c680e>] ? tcp_transmit_skb+0x5f9/0x642
[<c08c5d35>] ? tcp_current_mss+0x66/0xeb
[<c08c81b0>] ? tcp_retransmit_skb+0x4f2/0x632
[<c08c99b0>] ? tcp_write_timer+0x3c2/0x592
[<c045c17c>] ? run_timer_softirq+0x201/0x2a3
[<c08c95ee>] ? tcp_write_timer+0x0/0x592
[<c08c95ee>] ? tcp_write_timer+0x0/0x592
[<c04575e3>] ? ksoftirqd+0x12d/0x223
[<c04574b6>] ? ksoftirqd+0x0/0x223
[<c0467022>] ? kthread+0x4a/0x82
[<c0466fd8>] ? kthread+0x0/0x82
[<c0420b67>] ? kernel_thread_helper+0x7/0x10
Code: 8b 97 30 03 00 00 74 10 f7 d2 64 a1 b4 64 d6 c0 8b 04 82 ff 40 04 eb 2d f7 d2 64 a1 b4 64 d6 c0 8b 04 82 ff 00 8b 09 85 c9 74 18 <8b> 01 0f 18 00 90 8b 03 89 ce 3b 41 08 0f 85 78 ff ff ff e9 4d
EIP: [<f8aa431c>] __nf_conntrack_find+0xd6/0x109 [nf_conntrack] SS:ESP 0068:f7053cb8


---[ end trace a7919e7f17c0a727 ]---

Thomas Gleixner

unread,
Feb 23, 2009, 2:45:38 PM2/23/09
to LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
We are pleased to announce the next update to our new preempt-rt
series. It forwards to 2.6.29-rc6 and fixes

- various 32bit highmem related problems
- paravirt interaction
- sg list warnings
- IPI updates



Download locations:

http://rt.et.redhat.com/download/
http://www.kernel.org/pub/linux/kernel/projects/rt/

Information on the RT patch can be found at:

http://rt.wiki.kernel.org/index.php/Main_Page

to build the 2.6.29-rc6-rt2 tree, the following patches should be
applied:

http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc6.tar.bz2
http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc6-rt2.bz2



The broken out patches are also available at the same download
locations.

Enjoy !

Thomas, Ingo

Fernando Lopez-Lezcano

unread,
Feb 23, 2009, 7:57:42 PM2/23/09
to Thomas Gleixner, Ingo Molnar, Linux Kernel Mailing List, Fernando Pablo Lopez-Lezcano
Some feedback, just tried it in Fedora 9...

(BTW, in Fedora 9 'uname -r' adds a "-tip" component at the end of the
uname string which messes up loading modules, etc, and it is not
anywhere else to be seen - where is that coming from??)

Boots fine but does not last long:

------------[ cut here ]------------
WARNING: at lib/list_debug.c:30 __list_add+0x44/0x5c()
Hardware name: P5K/EPU
list_add corruption. prev->next should be next (f6042ab0), but was
(null). (prev=f415a670).
Modules linked in: fuse ip6table_filter ip6_tables iptable_raw
xt_comment xt_recent xt_policy ipt_ULOG ipt_TTL ipt_ttl ipt_REDIRECT
ipt_NETMAP ipt_MASQUERADE ipt_LOG ipt_ECN ipt_ecn ipt_CLUSTERIP ipt_ah
ipt_addrtype nf_nat_tftp nf_nat_snmp_basic nf_nat_sip nf_nat_pptp
nf_nat_proto_gre nf_nat_irc nf_nat_h323 nf_nat_ftp nf_nat_amanda ts_kmp
nf_conntrack_amanda nf_conntrack_tftp nf_conntrack_sip
nf_conntrack_proto_sctp nf_conntrack_pptp nf_conntrack_proto_gre
nf_conntrack_netlink nf_conntrack_netbios_ns nf_conntrack_irc
nf_conntrack_h323 nf_conntrack_ftp xt_tcpmss xt_pkttype xt_physdev
xt_owner xt_NFQUEUE xt_NFLOG nfnetlink_log xt_multiport xt_MARK xt_mark
xt_mac xt_limit xt_length xt_iprange xt_helper xt_hashlimit xt_DSCP
xt_dscp xt_dccp xt_CONNMARK xt_connmark xt_CLASSIFY iptable_nat nf_nat
iptable_mangle nfnetlink autofs4 coretemp w83627ehf hwmon_vid hwmon nfs
lockd nfs_acl auth_rpcgss sunrpc cpufreq_ondemand acpi_cpufreq
dm_multipath radeon drm ipv6 snd_hda_codec_realtek snd_hda_intel
snd_hda_codec snd_hwdep snd_ice1712 snd_ice17xx_ak4xxx snd_ak4xxx_adda
pcspkr snd_cs8427 snd_ac97_codec serio_raw i2c_i801 ac97_bus snd_i2c
i2c_core iTCO_wdt ohci1394 snd_mpu401_uart iTCO_vendor_support
snd_rawmidi snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq
snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm joydev snd_timer sky2
snd soundcore snd_page_alloc [last unloaded: microcode]
Pid: 5844, comm: slogin Not tainted
2.6.29-0.0.rc6.rt2.1.rc6.fc9.ccrma.i686.rtPAE-tip #1
Call Trace:
[<c0438765>] warn_slowpath+0x71/0xa8
[<c048183a>] ? cpupri_set+0xdd/0xfb
[<c042ace7>] ? update_curr+0x15f/0x167
[<c0429dbd>] ? resched_task+0x33/0x6b
[<c042ace7>] ? update_curr+0x15f/0x167
[<c0543b28>] __list_add+0x44/0x5c
[<c0440ef1>] internal_add_timer+0x88/0x8c
[<c044159e>] __mod_timer+0xcc/0xde
[<c04415c9>] mod_timer+0x19/0x1f
[<c04415e3>] add_timer+0x14/0x16
[<c068686e>] __nf_ct_refresh_acct+0x5b/0xdb
[<c068a095>] tcp_packet+0xa78/0xa9f
[<c06f0018>] ? topology_sysfs_init+0xf/0x51
[<c06f263d>] ? __spin_lock_irqsave+0x30/0x39
[<c0685cb3>] ? __nf_conntrack_find+0x64/0x7f
[<c0687161>] nf_conntrack_in+0x394/0x407
[<c06c003a>] ipv4_conntrack_local+0x32/0x3c
[<c0684d83>] nf_iterate+0x2f/0x62
[<c0692b30>] ? dst_output+0x0/0xb
[<c0684ed7>] nf_hook_slow+0x42/0x9f
[<c0692b30>] ? dst_output+0x0/0xb
[<c06942c0>] __ip_local_out+0x87/0x91
[<c0692b30>] ? dst_output+0x0/0xb
[<c06942d5>] ip_local_out+0xb/0x1b
[<c0694abe>] ip_queue_xmit+0x2b7/0x331
[<c04b6dbb>] ? pollwake+0x0/0x55
[<c042ace7>] ? update_curr+0x15f/0x167
[<c06a3be9>] tcp_transmit_skb+0x5cb/0x602
[<c06a5e35>] tcp_write_xmit+0x785/0x853
[<c045716e>] ? rt_spin_lock_fastlock+0x27/0x5e
[<c06f1fae>] ? rt_spin_lock+0xd/0xf
[<c04a5cf0>] ? __kmalloc+0xb6/0xeb
[<c06a5f50>] __tcp_push_pending_frames+0x21/0x56
[<c0699cfd>] tcp_push+0x84/0x8a
[<c069bd22>] tcp_sendmsg+0x6b0/0x75a
[<c0661511>] __sock_sendmsg+0x45/0x4e
[<c06615e8>] sock_aio_write+0xce/0xdb
[<c0513e80>] ? inode_has_perm+0x58/0x62
[<c04aab08>] do_sync_write+0xab/0xe9
[<c05140ca>] ? file_has_perm+0x80/0x89
[<c0449f77>] ? autoremove_wake_function+0x0/0x33
[<c051063a>] ? security_file_permission+0xf/0x11
[<c04ab336>] vfs_write+0x95/0xdf
[<c04ab419>] sys_write+0x3b/0x60
[<c0408bab>] sysenter_do_call+0x12/0x2c
---[ end trace 934e4b7ba06b93c0 ]---

Nfs/network stops working -> I have to reboot...
I'm attaching the full dmesg output of the test machine.

-- Fernando

dmesg.1

Thomas Gleixner

unread,
Feb 24, 2009, 5:29:59 AM2/24/09
to Fernando Lopez-Lezcano, Ingo Molnar, Linux Kernel Mailing List
On Mon, 23 Feb 2009, Fernando Lopez-Lezcano wrote:

> Some feedback, just tried it in Fedora 9...
>
> (BTW, in Fedora 9 'uname -r' adds a "-tip" component at the end of the
> uname string which messes up loading modules, etc, and it is not
> anywhere else to be seen - where is that coming from??)

My bad. Forgot to remove the localversion-tip file.

Can you try to enable the following config options:

CONFIG_DEBUG_OBJECTS
CONFIG_DEBUG_OBJECTS_FREE
CONFIG_DEBUG_OBJECTS_TIMERS
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT

Thanks,

tglx

Thomas Gleixner

unread,
Feb 24, 2009, 11:31:23 AM2/24/09
to Fernando Lopez-Lezcano, Ingo Molnar, Linux Kernel Mailing List
On Tue, 24 Feb 2009, Thomas Gleixner wrote:
> > [<c0440ef1>] internal_add_timer+0x88/0x8c
>
> Can you try to enable the following config options:
>
> CONFIG_DEBUG_OBJECTS
> CONFIG_DEBUG_OBJECTS_FREE
> CONFIG_DEBUG_OBJECTS_TIMERS
> CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT

Don't bother. Just noticed that this is nf_conntrack context. Working
on that right now.

Thomas Gleixner

unread,
Feb 24, 2009, 12:52:28 PM2/24/09
to LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
We are pleased to announce the next update to our new preempt-rt
series. It contains only one new patch:

- fix the nf_conntrack bug, which was reported by various folks

Download locations:

http://rt.et.redhat.com/download/
http://www.kernel.org/pub/linux/kernel/projects/rt/

Information on the RT patch can be found at:

http://rt.wiki.kernel.org/index.php/Main_Page

to build the 2.6.29-rc6-rt3 tree, the following patches should be
applied:

http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc6.tar.bz2
http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc6-rt3.bz2



The broken out patches are also available at the same download
locations.

Enjoy !

tglx

Thomas Gleixner

unread,
Feb 24, 2009, 12:58:25 PM2/24/09
to LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams

Fernando Lopez-Lezcano

unread,
Feb 24, 2009, 5:18:42 PM2/24/09
to Thomas Gleixner, Ingo Molnar, Linux Kernel Mailing List, Fernando Pablo Lopez-Lezcano
On Tue, 2009-02-24 at 17:30 +0100, Thomas Gleixner wrote:
> On Tue, 24 Feb 2009, Thomas Gleixner wrote:
> > > [<c0440ef1>] internal_add_timer+0x88/0x8c
> >
> > Can you try to enable the following config options:
> >
> > CONFIG_DEBUG_OBJECTS
> > CONFIG_DEBUG_OBJECTS_FREE
> > CONFIG_DEBUG_OBJECTS_TIMERS
> > CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT
>
> Don't bother. Just noticed that this is nf_conntrack context. Working
> on that right now.

I'm running rc6-rt3 and that problem seem to be gone (uptime of 2.5
hours in my desktop, 1.33 hours on my laptop, both running FC9 with a
2.6.29 version of the Planet CCRMA rt kernel). So far so good!

Thanks!!
-- Fernando

Thomas Meyer

unread,
Feb 25, 2009, 1:34:46 PM2/25/09
to Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
Am Dienstag, den 24.02.2009, 18:57 +0100 schrieb Thomas Gleixner:
> We are pleased to announce the next update to our new preempt-rt
> series. It contains only one new patch:
>
> - fix the nf_conntrack bug, which was reported by various folks
>
> Download locations:
>
> http://rt.et.redhat.com/download/
> http://www.kernel.org/pub/linux/kernel/projects/rt/
>
> Information on the RT patch can be found at:
>
> http://rt.wiki.kernel.org/index.php/Main_Page
>
> to build the 2.6.29-rc6-rt3 tree, the following patches should be
> applied:
>
> http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc6.tar.bz2
> http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc6-rt3.bz2
>
> The broken out patches are also available at the same download
> locations.
>
> Enjoy !
>
> tglx

Hi,

Should suspend&resume to ram work with this patchset applied?

greets
thomas

Peter Zijlstra

unread,
Feb 25, 2009, 1:43:56 PM2/25/09
to Thomas Meyer, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Carsten Emde, Clark Williams
On Wed, 2009-02-25 at 20:34 +0100, Thomas Meyer wrote:
> Am Dienstag, den 24.02.2009, 18:57 +0100 schrieb Thomas Gleixner:

> > http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc6.tar.bz2
> > http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc6-rt3.bz2
> >

> Should suspend&resume to ram work with this patchset applied?

If it works for you without (plain .29-rc6), then it ought to work with.

Fernando Lopez-Lezcano

unread,
Feb 25, 2009, 3:53:06 PM2/25/09
to Thomas Gleixner, Ingo Molnar, Linux Kernel Mailing List
On Tue, 2009-02-24 at 14:18 -0800, Fernando Lopez-Lezcano wrote:
> On Tue, 2009-02-24 at 17:30 +0100, Thomas Gleixner wrote:
> > On Tue, 24 Feb 2009, Thomas Gleixner wrote:
> > > > [<c0440ef1>] internal_add_timer+0x88/0x8c
> > >
> > > Can you try to enable the following config options:
> > >
> > > CONFIG_DEBUG_OBJECTS
> > > CONFIG_DEBUG_OBJECTS_FREE
> > > CONFIG_DEBUG_OBJECTS_TIMERS
> > > CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT
> >
> > Don't bother. Just noticed that this is nf_conntrack context. Working
> > on that right now.
>
> I'm running rc6-rt3 and that problem seem to be gone (uptime of 2.5
> hours in my desktop, 1.33 hours on my laptop, both running FC9 with a
> 2.6.29 version of the Planet CCRMA rt kernel). So far so good!

I see this when going through a suspend/wakeup cycle on my laptop (but
no side effects I can see):

BUG: sleeping function called from invalid context at

kernel/rtmutex.c:683
in_atomic(): 0, irqs_disabled(): 1, pid: 8829, name: pm-suspend
Pid: 8829, comm: pm-suspend Not tainted
2.6.29-0.1.rt3.1.rc6.fc9.ccrma.i686.rtPAE #1
Call Trace:
[<c06e62cf>] ? rt_spin_lock_slowlock+0x0/0x1db
[<c043216b>] __might_sleep+0xec/0xf1
[<c045716e>] rt_spin_lock_fastlock+0x27/0x5e
[<c06e6b2e>] rt_spin_lock+0xd/0xf
[<c040dc4e>] read_persistent_clock+0xe/0x25
[<c045057c>] timekeeping_suspend+0x9/0x94
[<c05c13fd>] sysdev_suspend+0x67/0x175
[<c045c508>] suspend_devices_and_enter+0xea/0x179
[<c045c6ec>] enter_state+0x130/0x190
[<c045c7e0>] state_store+0x94/0xa8
[<c045c74c>] ? state_store+0x0/0xa8
[<c053b9d5>] kobj_attr_store+0x1a/0x22
[<c04e8091>] sysfs_write_file+0xb7/0xe2
[<c04e7fda>] ? sysfs_write_file+0x0/0xe2
[<c04ab325>] vfs_write+0x84/0xdf
[<c04ab419>] sys_write+0x3b/0x60
[<c0408bab>] sysenter_do_call+0x12/0x2c

Fernando Lopez-Lezcano

unread,
Feb 25, 2009, 10:46:50 PM2/25/09
to Thomas Gleixner, na...@ccrma.stanford.edu, Ingo Molnar, Linux Kernel Mailing List, Tracey Hytry
On Wed, 2009-02-25 at 12:52 -0800, Fernando Lopez-Lezcano wrote:
> On Tue, 2009-02-24 at 14:18 -0800, Fernando Lopez-Lezcano wrote:
> > On Tue, 2009-02-24 at 17:30 +0100, Thomas Gleixner wrote:
> > > On Tue, 24 Feb 2009, Thomas Gleixner wrote:
> > > > > [<c0440ef1>] internal_add_timer+0x88/0x8c
> > > >
> > > > Can you try to enable the following config options:
> > > >
> > > > CONFIG_DEBUG_OBJECTS
> > > > CONFIG_DEBUG_OBJECTS_FREE
> > > > CONFIG_DEBUG_OBJECTS_TIMERS
> > > > CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT
> > >
> > > Don't bother. Just noticed that this is nf_conntrack context. Working
> > > on that right now.
> >
> > I'm running rc6-rt3 and that problem seem to be gone (uptime of 2.5
> > hours in my desktop, 1.33 hours on my laptop, both running FC9 with a
> > 2.6.29 version of the Planet CCRMA rt kernel). So far so good!
>
> I see this when going through a suspend/wakeup cycle on my laptop (but
> no side effects I can see):
>
> BUG: sleeping function called from invalid context at
> kernel/rtmutex.c:683
> in_atomic(): 0, irqs_disabled(): 1, pid: 8829, name: pm-suspend
> Pid: 8829, comm: pm-suspend Not tainted

One of my Planet CCRMA users tried the rc6-rt3 kernel and...
Traceys says:

> My only problem was that I couldn't compile the rpm-fusion/nvidia
> drivers so I had to use fc9's "nv" xorg drivers which still don't work
> properly with an SLI vidio system(I only use one card). As is the
> usual I had to be very careful not to crash the X system, but I
> managed to get some good results and some kernel debug info from a
> "non-tainted" kernel. The "warning" only happens once at boot. I'm
> going to paste part of dmesg below.
>
> If you could try to put together the same kernel for fc9, that would
> be nice? So I can see if the same error shows up? I'm pretty sure
> the error is about the "forcedeth" ethernet driver and the rt patches
> because of the way networking worked afterwards(I had to cold boot to
> get the ethernet going again in a regular fc9 kernel).

This is similar to what was happening to me with rc6-rt2, maybe another
driver with a similar problem?

> Anyway, here it is:

[MUNCH]

ACPI: PCI Interrupt Link [APC4] enabled at IRQ 19
alloc irq_desc for 19 on cpu 0 node 0
alloc kstat_irqs on cpu 0 node 0
ohci1394 0000:01:0b.0: PCI INT A -> Link[APC4] -> GSI 19 (level, low) ->
IRQ 19
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[19]
MMIO=[fdeff000-fdeff7ff] Max Packet=[2048] IR/IT contexts=[4/8]
forcedeth: Reverse Engineered nForce ethernet driver. Version 0.62.
ACPI: PCI Interrupt Link [APCH] enabled at IRQ 22
forcedeth 0000:00:08.0: PCI INT A -> Link[APCH] -> GSI 22 (level, low)
-> IRQ 22
forcedeth 0000:00:08.0: setting latency timer to 64
nv_probe: set workaround bit for reversed mac addr
ck804xrom ck804xrom_init_one(): Unable to register resource
0x00000000ff000000-0x00000000ffffffff - kernel bug?
resource map sanity check conflict: 0xff000000 0xffffffff 0xfff80000
0xfff80fff pnp 00:0e
------------[ cut here ]------------
WARNING: at arch/x86/mm/ioremap.c:208 __ioremap_caller+0xec/0x2e1()
Hardware name: System Product Name
Info: mapping multiple BARs. Your kernel is fine.Modules linked in:
ck804xrom(+) snd_rawmidi parport mtd chipreg ohci1394 snd_seq_device
i2c_nforce2(+) usb_storage pcspkr i2c_core map_funcs snd_hwdep snd
k8temp(+) forcedeth(+) pata_amd hwmon pata_jmicron soundcore sata_nv
pata_acpi ata_generic
Pid: 803, comm: modprobe Not tainted
2.6.29-0.1.rt3.1.rc6.fc10.ccrma.x86_64.rt #1
Call Trace:
[<ffffffff81059746>] warn_slowpath+0xcc/0x11c
[<ffffffff81035bce>] ? default_spin_lock_flags+0x1c/0x36
[<ffffffff81432fa3>] ? __spin_unlock_irqrestore+0x6d/0x91
[<ffffffffa0023000>] ? init_ck804xrom+0x0/0x57a [ck804xrom]
[<ffffffff8103c114>] __ioremap_caller+0xec/0x2e1
[<ffffffffa002326b>] ? init_ck804xrom+0x26b/0x57a [ck804xrom]
[<ffffffff81368e7e>] ? pci_write+0x3a/0x50
[<ffffffffa0023000>] ? init_ck804xrom+0x0/0x57a [ck804xrom]
[<ffffffff8103c460>] ioremap_nocache+0x25/0x3b
[<ffffffffa002326b>] init_ck804xrom+0x26b/0x57a [ck804xrom]
[<ffffffffa0023000>] ? init_ck804xrom+0x0/0x57a [ck804xrom]
[<ffffffff8100a092>] do_one_initcall+0x65/0x15c
[<ffffffff8108b8df>] sys_init_module+0xb8/0x1ed
[<ffffffff81013732>] system_call_fastpath+0x16/0x1b
---[ end trace fab354474480faa9 ]---
parport_pc 00:0a: reported by Plug and Play ACPI
parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE]
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
forcedeth 0000:00:08.0: ifname eth0, PHY OUI 0x5043 @ 1, addr
00:1a:92:f0:1a:e3
forcedeth 0000:00:08.0: highdma csum vlan pwrctl mgmt timirq gbit lnktim
msi desc-v3
k8temp 0000:00:18.3: Temperature readouts might be wrong - check erratum
#141
i2c-adapter i2c-0: nForce2 SMBus adapter at 0x1c00
ACPI: I/O resource nForce2_smbus [0x1c40-0x1c7f] conflicts with ACPI
region SM01 [0x1c40-0x1c45]


ACPI: Device needs an ACPI driver

i2c-adapter i2c-1: nForce2 SMBus adapter at 0x1c40
ACPI: PCI Interrupt Link [AMC1] enabled at IRQ 21
forcedeth 0000:00:09.0: PCI INT A -> Link[AMC1] -> GSI 21 (level, low)
-> IRQ 21
forcedeth 0000:00:09.0: setting latency timer to 64
nv_probe: set workaround bit for reversed mac addr
Found: SST 49LF040B
ck804xrom @fff80000: Found 1 x8 devices at 0x0 in 8-bit bank
using fwh lock/unlock method
number of JEDEC chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
ppdev: user-space parallel port driver
forcedeth 0000:00:09.0: ifname eth1, PHY OUI 0x5043 @ 1, addr
00:1a:92:f0:23:df
forcedeth 0000:00:09.0: highdma csum vlan pwrctl mgmt timirq gbit lnktim
msi desc-v3
ieee1394: Host added: ID:BUS[0-00:1023] GUID[0011d800014184cf]
ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
alloc irq_desc for 17 on cpu 0 node 0
alloc kstat_irqs on cpu 0 node 0
ICE1712 0000:01:07.0: PCI INT A -> Link[APC2] -> GSI 17 (level, low) ->
IRQ 17
usbcore: registered new interface driver snd-usb-audio

Thomas Meyer

unread,
Feb 26, 2009, 1:47:21 PM2/26/09
to Peter Zijlstra, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Carsten Emde, Clark Williams
Am Mittwoch, den 25.02.2009, 19:43 +0100 schrieb Peter Zijlstra:
> On Wed, 2009-02-25 at 20:34 +0100, Thomas Meyer wrote:
> > Am Dienstag, den 24.02.2009, 18:57 +0100 schrieb Thomas Gleixner:
>
> > > http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc6.tar.bz2
> > > http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc6-rt3.bz2
> > >
>
> > Should suspend&resume to ram work with this patchset applied?
>
> If it works for you without (plain .29-rc6), then it ought to work with.
>

plain .29-rc6 suspends and resumes just fine.
but .29-rc6-rt3 suspends just fine, but never resumes.
Is there an early_dma thing for the resume path for 1394?

greets
thomas

Thomas Gleixner

unread,
Mar 12, 2009, 3:20:23 PM3/12/09
to LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
We are pleased to announce the next update to our new preempt-rt
series. It contains only one new patch:

- port forward to 2.6.29-rc7
- disable CONFIG_MAXCPUS for now (undebugged runtime bug)
- fix CONFIG_HIGHMEM problems
- fix netfilter problems
- make debugobjects -rt safe
- various build fixes

Download locations:

http://rt.et.redhat.com/download/
http://www.kernel.org/pub/linux/kernel/projects/rt/

Information on the RT patch can be found at:

http://rt.wiki.kernel.org/index.php/Main_Page

to build the 2.6.29-rc7-rt1 tree, the following patches should be
applied:

http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc7.tar.bz2
http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc7-rt1.bz2

Tim Sander

unread,
Mar 12, 2009, 4:55:27 PM3/12/09
to LKML, rt-users
Hi

It is great to see that the -rt patchset is moving again.

> http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc7-rt1.bz2
This should be
http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc7-rt1.patch.bz2

As far as i understand this is again for x86. I tried some patches to get the
ARM platform working as the platform i am working on (phytec i.mx31) is not
supported by the stable 2.6.26-rt release. The attached patches are for
reference only as i think some of them are on their way via the pengutronix
git tree and others are just hacks to get this thing compile. These patches
enable rt functionality as tested with cyclictest but the kernel is not
stable, so some pieces are missing.

So my question is, what pieces are missing on the ARM platform to get it working?

Regards
Tim

The following patches are against the 2.6.29-rc4-rt2 in an attempt to get ARM working.
Subject: [PATCH] add compile fixes to rt patchset for arm

---
arch/arm/Kconfig | 13 +------------
arch/arm/include/asm/thread_info.h | 3 ++-
arch/arm/plat-mxc/include/mach/memory.h | 2 ++
include/linux/spinlock.h | 3 ++-
4 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index dbfdf87..ceb2e01 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -838,18 +838,7 @@ config LOCAL_TIMERS
accounting to be spread across the timer interval, preventing a
"thundering herd" at every timer tick.

-config PREEMPT
- bool "Preemptible Kernel (EXPERIMENTAL)"
- depends on EXPERIMENTAL
- help
- This option reduces the latency of the kernel when reacting to
- real-time or interactive events by allowing a low priority process to
- be preempted even if it is in kernel mode executing a system call.
- This allows applications to run more reliably even when the system is
- under load.
-
- Say Y here if you are building a kernel for a desktop, embedded
- or real-time system. Say N if you are unsure.
+source kernel/Kconfig.preempt

config HZ
int
diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
index 68b9ec8..b501541 100644
--- a/arch/arm/include/asm/thread_info.h
+++ b/arch/arm/include/asm/thread_info.h
@@ -119,7 +119,8 @@ extern void iwmmxt_task_switch(struct thread_info *);
* We use bit 30 of the preempt_count to indicate that kernel
* preemption is occurring. See <asm/hardirq.h>.
*/
-#define PREEMPT_ACTIVE 0x40000000
+#define PREEMPT_ACTIVE 0x10000000
+/*FIXME TIM #define PREEMPT_ACTIVE 0x40000000*/

/*
* thread information flags:
diff --git a/arch/arm/plat-mxc/include/mach/memory.h
b/arch/arm/plat-mxc/include/mach/memory.h
index 0b80839..b43a536 100644
--- a/arch/arm/plat-mxc/include/mach/memory.h
+++ b/arch/arm/plat-mxc/include/mach/memory.h
@@ -19,4 +19,6 @@
#define PHYS_OFFSET UL(0x80000000)
#endif

+#define arch_is_coherent() 1
+
#endif /* __ASM_ARCH_MXC_MEMORY_H__ */
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h
index c11b3a2..6c9b9b9 100644
--- a/include/linux/spinlock.h
+++ b/include/linux/spinlock.h
@@ -560,7 +560,8 @@ static inline void bit_spin_unlock(int bitnum, unsigned long *addr)
# ifdef CONFIG_DEBUG_SPINLOCK
BUG_ON(!test_bit(bitnum, addr));
# endif
- clear_bit_unlock(bitnum, addr);
+ //FIXME TIM clear_bit_unlock(bitnum, addr);
+ clear_bit(bitnum,addr);
#endif
__release(bitlock);
}
--
1.5.6.5

-- ---
arch/arm/kernel/process.c | 2 +-
include/linux/spinlock.h | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index d3ea6fa..8fbf03b 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -167,7 +167,7 @@ void cpu_idle(void)
idle();
leds_event(led_idle_end);
tick_nohz_restart_sched_tick();
- preempt_enable_no_resched();
+ __preempt_enable_no_resched();
schedule();
preempt_disable();
}
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h
index 6c9b9b9..130fbdd 100644
--- a/include/linux/spinlock.h
+++ b/include/linux/spinlock.h
@@ -93,6 +93,7 @@
#include <linux/bottom_half.h>
#include <linux/irqflags.h>
#include <linux/pickop.h>
+#include <asm/memory.h>

#include <asm/system.h>

@@ -560,8 +561,7 @@ static inline void bit_spin_unlock(int bitnum, unsigned long *addr)
# ifdef CONFIG_DEBUG_SPINLOCK
BUG_ON(!test_bit(bitnum, addr));
# endif
- //FIXME TIM clear_bit_unlock(bitnum, addr);
- clear_bit(bitnum,addr);
+ clear_bit_unlock(bitnum, addr);
#endif
__release(bitlock);
}
--
1.5.6.5


''=~('(?{'.('._@@[~'^'^-)./^').'"'.('}@@~-]@_^__'^'))-^~<.;;-}').',$/})')

Uwe Kleine-König

unread,
Mar 12, 2009, 8:34:28 PM3/12/09
to Tim Sander, LKML, rt-users
Hello Tim,

On Thu, Mar 12, 2009 at 09:43:33PM +0100, Tim Sander wrote:
> So my question is, what pieces are missing on the ARM platform to get
> it working?

See the follow up mail I will write on Thomas announcement for my
current status.

> diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
> index 68b9ec8..b501541 100644
> --- a/arch/arm/include/asm/thread_info.h
> +++ b/arch/arm/include/asm/thread_info.h
> @@ -119,7 +119,8 @@ extern void iwmmxt_task_switch(struct thread_info *);
> * We use bit 30 of the preempt_count to indicate that kernel
> * preemption is occurring. See <asm/hardirq.h>.
> */
> -#define PREEMPT_ACTIVE 0x40000000
> +#define PREEMPT_ACTIVE 0x10000000
> +/*FIXME TIM #define PREEMPT_ACTIVE 0x40000000*/

I didn't need this anymore for -rc7-rt1.

> /*
> * thread information flags:
> diff --git a/arch/arm/plat-mxc/include/mach/memory.h
> b/arch/arm/plat-mxc/include/mach/memory.h
> index 0b80839..b43a536 100644
> --- a/arch/arm/plat-mxc/include/mach/memory.h
> +++ b/arch/arm/plat-mxc/include/mach/memory.h
> @@ -19,4 +19,6 @@
> #define PHYS_OFFSET UL(0x80000000)
> #endif
>
> +#define arch_is_coherent() 1
> +

I suggested a better fix already last time. Moreover I think imx isn't
coherent.

> diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h
> index 6c9b9b9..130fbdd 100644
> --- a/include/linux/spinlock.h
> +++ b/include/linux/spinlock.h
> @@ -93,6 +93,7 @@
> #include <linux/bottom_half.h>
> #include <linux/irqflags.h>
> #include <linux/pickop.h>
> +#include <asm/memory.h>

Doing this in arch/arm/include/asm/bitops.h is less intrusive and it
seems to me the better place. See my patch stack.



> @@ -560,8 +561,7 @@ static inline void bit_spin_unlock(int bitnum, unsigned long *addr)
> # ifdef CONFIG_DEBUG_SPINLOCK
> BUG_ON(!test_bit(bitnum, addr));
> # endif
> - //FIXME TIM clear_bit_unlock(bitnum, addr);
> - clear_bit(bitnum,addr);
> + clear_bit_unlock(bitnum, addr);

It would be easier to check your patch if it didn't contain reverts of
earlier changes.

Best regards
Uwe

--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |

Uwe Kleine-König

unread,
Mar 12, 2009, 9:05:25 PM3/12/09
to Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
Hello,

On Thu, Mar 12, 2009 at 08:17:50PM +0100, Thomas Gleixner wrote:
> We are pleased to announce the next update to our new preempt-rt
> series. It contains only one new patch:
>
> - port forward to 2.6.29-rc7
> - disable CONFIG_MAXCPUS for now (undebugged runtime bug)
> - fix CONFIG_HIGHMEM problems
> - fix netfilter problems
> - make debugobjects -rt safe
> - various build fixes

on top of 2.6.29-rc7-rc1 I did some ARM related fixes that you can find
at

git://git.pengutronix.de/git/ukl/linux-2.6.git v2.6.29-rc7-rt1-pu

The top commit currently isn't pretty as it contains several independant
fixes. Some of them are netX specific so you probably don't need them,
but they shouldn't hurt you either.

I will update this branch as I continue working in a non-fast-forward
manner. I use TopGit to manage this branch, you might want to use it,
too, if you intend to follow my work.

My status quo is:

Testing tracer sched_switch: PASSED
Testing tracer function: PASSED
Testing tracer irqsoff: .. no entries found ..FAILED!
Testing tracer preemptoff: .. no entries found ..FAILED!
Testing tracer preemptirqsoff: .. no entries found ..<4>------------[ cut here ]------------
WARNING: at /ptx/work/octopus/WORK_2_A/ukl/gsrc/linux-2.6/kernel/trace/trace.c:683 warn_slowpath+0x18/0xa0()
Modules linked in:
[<c0244d40>] (dump_stack+0x0/0x18) from [<c003787c>] (warn_slowpath+0x6c/0xa0)
[<c0037810>] (warn_slowpath+0x0/0xa0) from [<c00750d0>] (tracing_start+0x60/0xdc)
r3:ffffffff r2:00000000
r7:c074aaf0 r6:c0748a0c r5:60000013 r4:c074aac8
[<c0075070>] (tracing_start+0x0/0xdc) from [<c0076430>] (trace_selftest_startup_preemptirqsoff+0x1ac/0x1d8)
r5:c1c1a000 r4:ffffffff
[<c0076284>] (trace_selftest_startup_preemptirqsoff+0x0/0x1d8) from [<c00760c4>] (register_tracer+0x118/0x240)
[<c0075fac>] (register_tracer+0x0/0x240) from [<c000ebbc>] (init_irqsoff_tracer+0x24/0x38)
r7:c000eb98 r6:00000000 r5:c001c44c r4:c001c2b8
[<c000eb98>] (init_irqsoff_tracer+0x0/0x38) from [<c00232c4>] (__exception_text_end+0x5c/0x1a4)
[<c0023268>] (__exception_text_end+0x0/0x1a4) from [<c00085a4>] (kernel_init+0x90/0x1c0)
r8:00000000 r7:00000000 r6:00000000 r5:c001c44c r4:c001c2b8
[<c0008514>] (kernel_init+0x0/0x1c0) from [<c003aebc>] (do_exit+0x0/0x798)
r5:00000000 r4:00000000
---[ end trace da227214a82491b7 ]---
FAILED!

The warning is triggered here because tracing_start is called twice in
trace_selftest_startup_preemptirqsoff's error path[1].

I researched for some time now why the tracers doesn't pass the
self-tests, but without success. It's bed time and any hints are
welcome.

Other than that my machine boots and reports from time to time

scheduling while atomic

and

sleeping function called from invalid context at kernel/rtmutex.c:683

Both errors probably happen because some spin_locks need to be converted
to raw_spin_locks. Will look later.

I provide this uncooked state to prevent duplicate work, so please
excuse the bad code and commit history. If it upsets you, please send
patches :-)

Best regards
Uwe

[1] if trace_test_buffer sets count = 0 or returns != 0 in
kernel/trace/trace_selftest.c:440, the code flow is:

tracing_start()
goto out;

...
out:
trace->reset(tr);
tracing_start();

I think the last tracing_start is wrong, but I didn't check deeply.

--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |

Fernando Lopez-Lezcano

unread,
Mar 13, 2009, 6:53:29 PM3/13/09
to Thomas Gleixner, Ingo Molnar, Linux Kernel Mailing List, Fernando Pablo Lopez-Lezcano
After a quick test some BUG's on boot (on a quad core intel machine),
I'm just attaching the whole dmesg output as that might provide more
clues...

In short, two types, one BUG and another WARNING:

BUG: sleeping function called from invalid context at
kernel/rtmutex.c:683

WARNING: at fs/sysfs/group.c:138 sysfs_remove_group+0x3e/0xa8()

Thanks again for all the hard work!
(and looking forward to the next rt patch!)

-- Fernando

dmesg.rc7.rt1

Thomas Gleixner

unread,
Mar 14, 2009, 3:46:52 AM3/14/09
to Fernando Lopez-Lezcano, Ingo Molnar, Linux Kernel Mailing List
On Fri, 13 Mar 2009, Fernando Lopez-Lezcano wrote:
> After a quick test some BUG's on boot (on a quad core intel machine),
> I'm just attaching the whole dmesg output as that might provide more
> clues...
>
> In short, two types, one BUG and another WARNING:
>
> BUG: sleeping function called from invalid context at
> kernel/rtmutex.c:683
> WARNING: at fs/sysfs/group.c:138 sysfs_remove_group+0x3e/0xa8()

Yep. I got another report already. Looking into it.



> Thanks again for all the hard work!
> (and looking forward to the next rt patch!)

Thansk for testing !

tglx

Uwe Kleine-König

unread,
Mar 15, 2009, 2:48:29 AM3/15/09
to Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams
Hello,

On Fri, Mar 13, 2009 at 02:04:58AM +0100, Uwe Kleine-König wrote:
> on top of 2.6.29-rc7-rc1 I did some ARM related fixes that you can find
> at
>
> git://git.pengutronix.de/git/ukl/linux-2.6.git v2.6.29-rc7-rt1-pu
>
> The top commit currently isn't pretty as it contains several independant
> fixes. Some of them are netX specific so you probably don't need them,
> but they shouldn't hurt you either.
>
> I will update this branch as I continue working in a non-fast-forward
> manner. I use TopGit to manage this branch, you might want to use it,
> too, if you intend to follow my work.
>
> My status quo is:
>
> Testing tracer sched_switch: PASSED
> Testing tracer function: PASSED
> Testing tracer irqsoff: .. no entries found ..FAILED!
> Testing tracer preemptoff: .. no entries found ..FAILED!
> Testing tracer preemptirqsoff: .. no entries found ..

[removed stack dump]
> FAILED!
I still have this problem. I digged into irqsoff without finding the reason.

Looking at trace_selftest_startup_irqsoff I saw that
trace_buffer_lock_reserve is called thrice successfully.

Steven (or someone else of course), do you can give me a hint?

> Other than that my machine boots and reports from time to time
>
> scheduling while atomic
>
> and
>
> sleeping function called from invalid context at kernel/rtmutex.c:683
>
> Both errors probably happen because some spin_locks need to be converted
> to raw_spin_locks. Will look later.

Up to now I didn't try to do much with my system, but just booting
doesn't yield such BUGs or Warnings anymore.

Best regards
Uwe

Thomas Gleixner

unread,
Mar 19, 2009, 8:32:46 PM3/19/09
to LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, Frank Rowand
We are pleased to announce the next update to our new preempt-rt
series.

- port forward to 2.6.29-rc8
- disable -rt conflicting config options
- hotplug cpu fixes (peterz)
- slab/pagealloc lock breaks (peterz / tglx)
- sigqueue caching for -rt tasks
- posixtimer thread avoid useless wakeups
- various build fixes (mingo, frank ....)
- lots of tracer updates from -tip (check the tip git logs)

The outstanding improvement is the slab/pagealloc change which breaks
and splits locking and brought down worst case latencies in
problematic use cases from >500us to <100us.

As a side note:

There seems to be a wide spread underestimation of the problem spots
exposed by preempt-rt. The usual shrug off answer is:

"I don't care about -rt. Come back if you can expose the same
problem in the mainline kernel."

This is a fundamentally wrong answer.

preempt-rt mostly exposes existing latency spots and magnifies
them

Reducing latencies in -rt by a factor 5 will be not that
prominent in a non-rt setup, but the problematic code area
will still produce measureable latency problems.

I'm well aware of the tradeoff between determinitic behaviour and
throughput, but problematic spots (e.g. lock contentions) hurt
both.

So can we please put down the stupid "I don't care about -rt"
attitudes and accept that we have to think about the mutual
benefits of deterministic and throughput aspects without hurting
each other ?


Download locations:

http://rt.et.redhat.com/download/
http://www.kernel.org/pub/linux/kernel/projects/rt/

Information on the RT patch can be found at:

http://rt.wiki.kernel.org/index.php/Main_Page

to build the 2.6.29-rc8-rt1 tree, the following patches should be
applied:

http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc8.tar.bz2
http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc8-rt1.bz2



The broken out patches are also available at the same download
locations.

Enjoy !

tglx

P.S.: ARM/PowerPC support is in the pipeline and will be available
with -rt2 (hopefully :)

Cliff Brake

unread,
Mar 20, 2009, 12:31:40 PM3/20/09
to Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, Frank Rowand
On Thu, Mar 19, 2009 at 8:31 PM, Thomas Gleixner <tg...@linutronix.de> wrote:
> We are pleased to announce the next update to our new preempt-rt
> series.

> P.S.: ARM/PowerPC support is in the pipeline and will be available
>      with -rt2 (hopefully :)

Do you have a time estimate for -rt2/ARM support, and is there
anything that can be done to help (testing, etc).

Thanks,
Cliff

--
=======================
Cliff Brake
http://bec-systems.com

Thomas Gleixner

unread,
Mar 20, 2009, 1:46:56 PM3/20/09
to LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, Frank Rowand
We are pleased to announce the next update to our new preempt-rt
series.

- resurrected ARM and PowerPC support
- tracing fixes for ARM (Uwe Kleine-Koenig)

The support for ARM/PowerPC has only been lightly tested. It might
crash and burn your system, make your hair curl, frigthen your cat and
give you sleepless nights. You have been warned !

On PowerPC watch out for the following warning:

__do_IRQ called for irq X. PREEMPT_RT will crash your system soon.

__do_IRQ is deprecated and -rt does not support it anymore. Most of
the PowerPC subarchitectures do not longer use it, but you might be
unlucky and hit one of the remaining users. RT will spit out the
message above and then do what it said. :)

Download locations:

http://rt.et.redhat.com/download/
http://www.kernel.org/pub/linux/kernel/projects/rt/

Information on the RT patch can be found at:

http://rt.wiki.kernel.org/index.php/Main_Page

to build the 2.6.29-rc8-rt1 tree, the following patches should be
applied:

http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc8.tar.bz2
http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc8-rt2.bz2



The broken out patches are also available at the same download
locations.

Enjoy !

tglx

Thomas Gleixner

unread,
Mar 20, 2009, 1:49:33 PM3/20/09
to Cliff Brake, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, Frank Rowand
On Fri, 20 Mar 2009, Cliff Brake wrote:

> On Thu, Mar 19, 2009 at 8:31 PM, Thomas Gleixner <tg...@linutronix.de> wrote:
> > We are pleased to announce the next update to our new preempt-rt
> > series.
>
> > P.S.: ARM/PowerPC support is in the pipeline and will be available
> > with -rt2 (hopefully :)
>
> Do you have a time estimate for -rt2/ARM support, and is there

Time estimate is about: now minus 20sec :)

> anything that can be done to help (testing, etc).

Yup, the patches need full testing.

Thanks,

tglx

Will Schmidt

unread,
Mar 20, 2009, 3:19:27 PM3/20/09
to Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, Frank Rowand
On Fri, 2009-03-20 at 18:45 +0100, Thomas Gleixner wrote:
> We are pleased to announce the next update to our new preempt-rt
> series.
>
> - resurrected ARM and PowerPC support
> - tracing fixes for ARM (Uwe Kleine-Koenig)
>
> The support for ARM/PowerPC has only been lightly tested. It might
> crash and burn your system, make your hair curl, frigthen your cat and
> give you sleepless nights. You have been warned !

During a build attempt on powerpc, I am seeing:

In file included from include/linux/mmzone.h:776,
from include/linux/gfp.h:5,
from include/linux/slab.h:13,
from include/linux/percpu.h:6,
from include/linux/rcupdate.h:40,
from include/linux/rculist.h:11,
from include/linux/dcache.h:7,
from include/linux/fs.h:299,
from init/do_mounts_rd.c:4:
/root/linux-2.6.29-rc8/arch/powerpc/include/asm/mmzone.h:32: error:
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before
‘numa_cpumask_lookup_table’
In file included from include/linux/topology.h:35,
from include/linux/gfp.h:8,
from include/linux/slab.h:13,
from include/linux/percpu.h:6,
from include/linux/rcupdate.h:40,
from include/linux/rculist.h:11,
from include/linux/dcache.h:7,
from include/linux/fs.h:299,
from init/do_mounts_rd.c:4:
/root/linux-2.6.29-rc8/arch/powerpc/include/asm/topology.h: In function
‘node_to_cpumask’:
/root/linux-2.6.29-rc8/arch/powerpc/include/asm/topology.h:22: error:
‘numa_cpumask_lookup_table’ undeclared (first use in this function)
/root/linux-2.6.29-rc8/arch/powerpc/include/asm/topology.h:22: error:
(Each undeclared identifier is reported only once
/root/linux-2.6.29-rc8/arch/powerpc/include/asm/topology.h:22: error:
for each function it appears in.)
/root/linux-2.6.29-rc8/arch/powerpc/include/asm/topology.h: In function
‘node_to_first_cpu’:
/root/linux-2.6.29-rc8/arch/powerpc/include/asm/topology.h:29: error:
‘numa_cpumask_lookup_table’ undeclared (first use in this function)
make[1]: *** [init/do_mounts_rd.o] Error 1
make[1]: *** Waiting for unfinished jobs....

I have locally fixed by adding an include just above the cpumask_t
reference. The include may belong elsewhere, but in case I got it
right,.. :-)

Signed-Off-By: Will Schmidt <will_s...@vnet.ibm.com>

--


diff --git a/arch/powerpc/include/asm/mmzone.h
b/arch/powerpc/include/asm/mmzone.h
index 19f299b..530fa41 100644
--- a/arch/powerpc/include/asm/mmzone.h
+++ b/arch/powerpc/include/asm/mmzone.h
@@ -28,6 +28,8 @@ extern struct pglist_data *node_data[];
* Following are specific to this numa platform.
*/

+#include <linux/cpumask.h>
+
extern int numa_cpu_lookup_table[];
extern cpumask_t numa_cpumask_lookup_table[];
#ifdef CONFIG_MEMORY_HOTPLUG

Thanks,
-Will

>
> On PowerPC watch out for the following warning:
>
> __do_IRQ called for irq X. PREEMPT_RT will crash your system soon.
>
> __do_IRQ is deprecated and -rt does not support it anymore. Most of
> the PowerPC subarchitectures do not longer use it, but you might be
> unlucky and hit one of the remaining users. RT will spit out the
> message above and then do what it said. :)
>
> Download locations:
>
> http://rt.et.redhat.com/download/
> http://www.kernel.org/pub/linux/kernel/projects/rt/
>
> Information on the RT patch can be found at:
>
> http://rt.wiki.kernel.org/index.php/Main_Page
>
> to build the 2.6.29-rc8-rt1 tree, the following patches should be
> applied:
>
> http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc8.tar.bz2
> http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc8-rt2.bz2
>
> The broken out patches are also available at the same download
> locations.
>
> Enjoy !
>
> tglx
> --

> To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in

Ingo Molnar

unread,
Mar 20, 2009, 3:25:55 PM3/20/09
to Will Schmidt, Thomas Gleixner, LKML, rt-users, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, Frank Rowand

you got it right :-) The full fix (the bug also affects sparc) is
already queued up - see it below.

Ingo

-------------->
From 0c7e5b187fc599a40c1e6392926424d26cd0cf41 Mon Sep 17 00:00:00 2001
From: Stephen Rothwell <s...@canb.auug.org.au>
Date: Thu, 19 Mar 2009 22:03:22 +1100
Subject: [PATCH] numa, cpumask: move numa_node_id default implementation to topology.h, fix

Impact: build fix for powerpc and sparc

Today's linux-next build (powerpc allyesconfig) failed like this:

> In file included from include/linux/mmzone.h:776,
> from include/linux/gfp.h:5,

> from include/linux/kmod.h:23,
> from include/linux/module.h:14,
> from init/version.c:11:
> arch/powerpc/include/asm/mmzone.h:32: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'numa_cpumask_lookup_table'

Caused by commit 082edb7bf443eb8eda15b482d16ad9dd8137ad24 ("numa,
cpumask: move numa_node_id default implementation to topology.h") from
the cpus4096 tree which removed the include of linux/topology.h from
linux/mmzone.h.

Same for sparc64 defconfig.

Signed-off-by: Stephen Rothwell <s...@canb.auug.org.au>
Acked-b: Rusty Russell <ru...@rustcorp.com.au>
Cc: ppc-dev <linuxp...@ozlabs.org>
LKML-Reference: <2009031922032...@canb.auug.org.au>
Signed-off-by: Ingo Molnar <mi...@elte.hu>
---
arch/powerpc/include/asm/mmzone.h | 1 +
arch/sparc/include/asm/mmzone.h | 2 ++
2 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/include/asm/mmzone.h b/arch/powerpc/include/asm/mmzone.h
index 19f299b..35acac9 100644
--- a/arch/powerpc/include/asm/mmzone.h
+++ b/arch/powerpc/include/asm/mmzone.h
@@ -8,6 +8,7 @@
#define _ASM_MMZONE_H_
#ifdef __KERNEL__

+#include <linux/cpumask.h>

/*
* generic non-linear memory support:
diff --git a/arch/sparc/include/asm/mmzone.h b/arch/sparc/include/asm/mmzone.h
index ebf5986..e8c6487 100644
--- a/arch/sparc/include/asm/mmzone.h
+++ b/arch/sparc/include/asm/mmzone.h
@@ -3,6 +3,8 @@

#ifdef CONFIG_NEED_MULTIPLE_NODES

+#include <linux/cpumask.h>
+
extern struct pglist_data *node_data[];

#define NODE_DATA(nid) (node_data[nid])

Fernando Lopez-Lezcano

unread,
Mar 21, 2009, 2:43:52 PM3/21/09
to Thomas Gleixner, Ingo Molnar, Linux Kernel Mailing List, Fernando Pablo Lopez-Lezcano
On Sat, 2009-03-14 at 08:46 +0100, Thomas Gleixner wrote:
> On Fri, 13 Mar 2009, Fernando Lopez-Lezcano wrote:
> > After a quick test some BUG's on boot (on a quad core intel machine),
> > I'm just attaching the whole dmesg output as that might provide more
> > clues...
> >
> > In short, two types, one BUG and another WARNING:
> >
> > BUG: sleeping function called from invalid context at
> > kernel/rtmutex.c:683
> > WARNING: at fs/sysfs/group.c:138 sysfs_remove_group+0x3e/0xa8()
>
> Yep. I got another report already. Looking into it.
>
> > Thanks again for all the hard work!
> > (and looking forward to the next rt patch!)
>
> Thansk for testing !

More testing and an Oops that prevents booting... maybe unrelated to rt?
(this is with 2.6.29-rc8 plus additional patches from Fedora's koji
build 61 for fc10). First time my laptop does not boot with the new
kernels on a long time.

See below.
-- Fernando


Mar 21 10:47:43 localhost kernel: kernel tried to execute NX-protected
page - exploit attempt? (uid: 0)
Mar 21 10:47:43 localhost kernel: BUG: unable to handle kernel paging
request at f6400800
Mar 21 10:47:43 localhost kernel: IP: [<f6400800>] 0xf6400800
Mar 21 10:47:43 localhost kernel: *pdpt = 0000000000922001 *pde =
000000003087f063 *pte = 8000000036400163
Mar 21 10:47:43 localhost kernel: Oops: 0011 [#1] PREEMPT SMP
Mar 21 10:47:43 localhost kernel: last sysfs
file: /sys/devices/pci0000:00/0000:00:19.0/irq
Mar 21 10:47:43 localhost kernel: Modules linked in: sunrpc ip6t_REJECT
nf_conntrack_ipv6 ip6table_filter ip6_tables cpufreq_ondemand
acpi_cpufreq dm_multipath i915 drm i2c_algo_bit ipv6
snd_hda_codec_analog snd_hda_intel snd_hda_codec snd_hwdep thinkpad_acpi
hwmon arc4 snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq joydev
ecb sdhci_pci snd_seq_device yenta_socket ricoh_mmc i2c_i801 sdhci
i2c_core pcspkr snd_pcm_oss snd_mixer_oss snd_pcm mmc_core
rsrc_nonstatic iwl3945 ohci1394 snd_timer iTCO_wdt iTCO_vendor_support
snd video output soundcore rfkill btusb snd_page_alloc mac80211 lib80211
e1000e bluetooth cfg80211 ata_generic pata_acpi uhci_hcd ohci_hcd
ehci_hcd [last unloaded: microcode]
Mar 21 10:47:43 localhost kernel:
Mar 21 10:47:43 localhost kernel: Pid: 9, comm: sirq-tasklet/0 Not
tainted (2.6.29-0.2.rt2.1.rc8.fc9.ccrma.i686.rtPAE #1) 6463CTO
Mar 21 10:47:43 localhost kernel: EIP: 0060:[<f6400800>] EFLAGS:
00010246 CPU: 0
Mar 21 10:47:43 localhost kernel: EIP is at 0xf6400800
Mar 21 10:47:43 localhost kernel: EAX: f3858f20 EBX: 00000000 ECX:
000000ff EDX: f38598b4
Mar 21 10:47:43 localhost kernel: ESI: f3858f20 EDI: 000000ff EBP:
f7073f84 ESP: f7073f20
Mar 21 10:47:43 localhost kernel: DS: 007b ES: 007b FS: 00d8 GS: 0000
SS: 0068 preempt:00000001
Mar 21 10:47:43 localhost kernel: Process sirq-tasklet/0 (pid: 9,
ti=f7073000 task=f7088e30 task.ti=f7073000)
Mar 21 10:47:43 localhost kernel: Stack:
Mar 21 10:47:43 localhost kernel: f82adb93 f3859494 00000000 00010000
00000008 00ccd272 00000000 00000000
Mar 21 10:47:43 localhost kernel: 00000002 ea427004 f38598b4 f385b5cc
f385b5d8 2a427004 00000000 f385b7f4
Mar 21 10:47:43 localhost kernel: f385cf70 f3859880 f41a3a40 80000008
2a9ae004 00000006 f385d020 f385d024
Mar 21 10:47:43 localhost kernel: Call Trace:
Mar 21 10:47:43 localhost kernel: [<f82adb93>] ? iwl3945_irq_tasklet
+0x421/0x80f [iwl3945]
Mar 21 10:47:43 localhost kernel: [<c043d0e2>] ? __tasklet_action
+0x81/0xe4
Mar 21 10:47:43 localhost kernel: [<c043d1c5>] ? tasklet_action
+0x3e/0x42
Mar 21 10:47:43 localhost kernel: [<c043ceb7>] ? ksoftirqd+0x131/0x221
Mar 21 10:47:43 localhost kernel: [<c043cd86>] ? ksoftirqd+0x0/0x221
Mar 21 10:47:43 localhost kernel: [<c0449949>] ? kthread+0x3b/0x61
Mar 21 10:47:43 localhost kernel: [<c044990e>] ? kthread+0x0/0x61
Mar 21 10:47:43 localhost kernel: [<c0409207>] ? kernel_thread_helper
+0x7/0x10
Mar 21 10:47:43 localhost kernel: Code: 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 <00> 00 00 00 6c 09 14 00 01 00 00 00 00 00 00
00 06 00 00 00 0f
Mar 21 10:47:43 localhost kernel: EIP: [<f6400800>] 0xf6400800 SS:ESP
0068:f7073f20
Mar 21 10:47:43 localhost kernel: CR2: 00000000f6400800
Mar 21 10:47:43 localhost kernel: ---[ end trace 8e8838dc83c2350d ]---

Ingo Molnar

unread,
Mar 21, 2009, 2:49:34 PM3/21/09
to Fernando Lopez-Lezcano, Thomas Gleixner, Linux Kernel Mailing List

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

> Mar 21 10:47:43 localhost kernel: kernel tried to execute NX-protected
> page - exploit attempt? (uid: 0)
> Mar 21 10:47:43 localhost kernel: BUG: unable to handle kernel paging
> request at f6400800

kernel tried to execute some really weird address, probably via a
function pointer.

> ehci_hcd [last unloaded: microcode]

perhaps try excluding the microcode module for now - maybe it messed
up something?

> Mar 21 10:47:43 localhost kernel: EIP: 0060:[<f6400800>] EFLAGS:

> Mar 21 10:47:43 localhost kernel: Call Trace:


> Mar 21 10:47:43 localhost kernel: [<f82adb93>] ? iwl3945_irq_tasklet

> Mar 21 10:47:43 localhost kernel: [<c043d0e2>] ? __tasklet_action

> Mar 21 10:47:43 localhost kernel: [<c043d1c5>] ? tasklet_action

> Mar 21 10:47:43 localhost kernel: [<c043ceb7>] ? ksoftirqd+0x131/0x221
> Mar 21 10:47:43 localhost kernel: [<c043cd86>] ? ksoftirqd+0x0/0x221
> Mar 21 10:47:43 localhost kernel: [<c0449949>] ? kthread+0x3b/0x61
> Mar 21 10:47:43 localhost kernel: [<c044990e>] ? kthread+0x0/0x61
> Mar 21 10:47:43 localhost kernel: [<c0409207>] ? kernel_thread_helper

does any of the Fedora patches you have applied involve wireless
changes? I'd suggest undoing those first.

Ingo

Fernando Lopez-Lezcano

unread,
Mar 21, 2009, 3:06:31 PM3/21/09
to Ingo Molnar, na...@ccrma.stanford.edu, Thomas Gleixner, Linux Kernel Mailing List
On Sat, 2009-03-21 at 19:49 +0100, Ingo Molnar wrote:
> * Fernando Lopez-Lezcano <na...@ccrma.Stanford.EDU> wrote:
>
> > Mar 21 10:47:43 localhost kernel: kernel tried to execute NX-protected
> > page - exploit attempt? (uid: 0)
> > Mar 21 10:47:43 localhost kernel: BUG: unable to handle kernel paging
> > request at f6400800
>
> kernel tried to execute some really weird address, probably via a
> function pointer.

Strangely enough rc8-rt1 boots (almost). _Exact_ same build with the
exception of the change from rt1 -> rt2.

Haldaemon does not start on boot (fails), if I login as root and start
the haldaemon service manually it starts. And then things seem to work
fine (I'm writing this email from that machine). Still investigating...

-- Fernando


> > ehci_hcd [last unloaded: microcode]
>
> perhaps try excluding the microcode module for now - maybe it messed
> up something?
>
> > Mar 21 10:47:43 localhost kernel: EIP: 0060:[<f6400800>] EFLAGS:
>
> > Mar 21 10:47:43 localhost kernel: Call Trace:
> > Mar 21 10:47:43 localhost kernel: [<f82adb93>] ? iwl3945_irq_tasklet
> > Mar 21 10:47:43 localhost kernel: [<c043d0e2>] ? __tasklet_action
> > Mar 21 10:47:43 localhost kernel: [<c043d1c5>] ? tasklet_action
> > Mar 21 10:47:43 localhost kernel: [<c043ceb7>] ? ksoftirqd+0x131/0x221
> > Mar 21 10:47:43 localhost kernel: [<c043cd86>] ? ksoftirqd+0x0/0x221
> > Mar 21 10:47:43 localhost kernel: [<c0449949>] ? kthread+0x3b/0x61
> > Mar 21 10:47:43 localhost kernel: [<c044990e>] ? kthread+0x0/0x61
> > Mar 21 10:47:43 localhost kernel: [<c0409207>] ? kernel_thread_helper
>
> does any of the Fedora patches you have applied involve wireless
> changes? I'd suggest undoing those first.

Fernando Lopez-Lezcano

unread,
Mar 21, 2009, 3:28:29 PM3/21/09
to Ingo Molnar, na...@ccrma.stanford.edu, Thomas Gleixner, Linux Kernel Mailing List
On Sat, 2009-03-21 at 12:06 -0700, Fernando Lopez-Lezcano wrote:
> On Sat, 2009-03-21 at 19:49 +0100, Ingo Molnar wrote:
> > * Fernando Lopez-Lezcano <na...@ccrma.Stanford.EDU> wrote:
> >
> > > Mar 21 10:47:43 localhost kernel: kernel tried to execute NX-protected
> > > page - exploit attempt? (uid: 0)
> > > Mar 21 10:47:43 localhost kernel: BUG: unable to handle kernel paging
> > > request at f6400800
> >
> > kernel tried to execute some really weird address, probably via a
> > function pointer.
>
> Strangely enough rc8-rt1 boots (almost). _Exact_ same build with the
> exception of the change from rt1 -> rt2.
>
> Haldaemon does not start on boot (fails), if I login as root and start
> the haldaemon service manually it starts. And then things seem to work
> fine (I'm writing this email from that machine). Still investigating...

First problem was due to old firmware for the iwl3945 hardware. I
updated to the latest and hal started fine (this is on fc9).

Now another one related to xorg/drm...
Oh well...
-- Fernando

Mar 21 12:17:51 localhost kernel: ------------[ cut here ]------------
Mar 21 12:17:51 localhost kernel: kernel BUG at
drivers/gpu/drm/drm_fops.c:146!
Mar 21 12:17:51 localhost kernel: invalid opcode: 0000 [#1] PREEMPT SMP
Mar 21 12:17:51 localhost kernel: last sysfs
file: /sys/devices/pci0000:00/0000:00:02.0/drm/card0/dri_library_name
Mar 21 12:17:51 localhost kernel: Modules linked in: i915 drm
i2c_algo_bit bridge stp bnep rfcomm l2cap sunrpc ip6t_REJECT
nf_conntrack_ipv6 ip6table_filter ip6_tables ipv6 cpufreq_ondemand
acpi_cpufreq dm_multipath snd_hda_codec_analog snd_hda_intel
snd_hda_codec snd_hwdep thinkpad_acpi snd_seq_dummy snd_seq_oss
snd_seq_midi_event hwmon snd_seq sdhci_pci arc4 snd_seq_device sdhci
pcspkr joydev mmc_core snd_pcm_oss ecb i2c_i801 yenta_socket
snd_mixer_oss rsrc_nonstatic ricoh_mmc ohci1394 iTCO_wdt
iTCO_vendor_support i2c_core iwl3945 snd_pcm video snd_timer snd rfkill
output soundcore e1000e mac80211 btusb snd_page_alloc lib80211 bluetooth


cfg80211 ata_generic pata_acpi uhci_hcd ohci_hcd ehci_hcd [last
unloaded: microcode]

Mar 21 12:17:51 localhost kernel:
Mar 21 12:17:51 localhost kernel: Pid: 2809, comm: Xorg Not tainted
(2.6.29-0.2.rt1.1.rc8.fc9.ccrma.i686.rtPAE #1) 6463CTO
Mar 21 12:17:51 localhost kernel: EIP: 0060:[<f85a7471>] EFLAGS:
00013216 CPU: 0
Mar 21 12:17:51 localhost kernel: EIP is at drm_open+0x442/0x48d [drm]
Mar 21 12:17:51 localhost kernel: EAX: f59339a4 EBX: f45a582c ECX:
f4584564 EDX: f45a5800
Mar 21 12:17:51 localhost kernel: ESI: 00000000 EDI: f45a582c EBP:
f4570e64 ESP: f4570e40
Mar 21 12:17:51 localhost kernel: DS: 007b ES: 007b FS: 00d8 GS: 0033
SS: 0068 preempt:00000001
Mar 21 12:17:51 localhost kernel: Process Xorg (pid: 2809, ti=f4570000
task=f44e6d70 task.ti=f4570000)
Mar 21 12:17:51 localhost kernel: Stack:
Mar 21 12:17:51 localhost kernel: f4955e00 f4584564 f45a5800 f5883400
00000000 f45ca394 ffffffed f85b2338
Mar 21 12:17:51 localhost kernel: f4955e00 f4570e7c f85a6fe4 f4584564
00000000 f45433c0 f45433c0 f4570ea0
Mar 21 12:17:51 localhost kernel: c04ae3bd f4955e00 f4584564 00000000
00000000 f4955e00 00000000 f4584564
Mar 21 12:17:51 localhost kernel: Call Trace:
Mar 21 12:17:51 localhost kernel: [<f85a6fe4>] ? drm_stub_open+0xa5/0xf0
[drm]
Mar 21 12:17:51 localhost kernel: [<c04ae3bd>] ? chrdev_open+0x112/0x129
Mar 21 12:17:51 localhost kernel: [<c04aa8a5>] ? __dentry_open
+0x146/0x23a
Mar 21 12:17:51 localhost kernel: [<c04aaa33>] ? nameidata_to_filp
+0x2c/0x43
Mar 21 12:17:51 localhost kernel: [<c04ae2ab>] ? chrdev_open+0x0/0x129
Mar 21 12:17:51 localhost kernel: [<c04b489c>] ? do_filp_open
+0x35d/0x677
Mar 21 12:17:51 localhost kernel: [<c0456d82>] ? rt_spin_lock_fastlock
+0x27/0x5e
Mar 21 12:17:51 localhost kernel: [<c0456d82>] ? rt_spin_lock_fastlock
+0x27/0x5e
Mar 21 12:17:51 localhost kernel: [<c04aa68b>] ? do_sys_open+0x42/0xb7
Mar 21 12:17:51 localhost kernel: [<c04aa742>] ? sys_open+0x1e/0x26
Mar 21 12:17:51 localhost kernel: [<c0408720>] ? sysenter_do_call
+0x12/0x28
Mar 21 12:17:51 localhost kernel: Code: 83 c3 2c 89 d8 e8 a5 ea 13 c8 8b
4d e8 83 79 04 01 75 2e 8b 55 e4 8b 82 d4 02 00 00 85 c0 74 0f 8b 4d e0
3b 81 e0 00 00 00 74 16 <0f> 0b eb fe 8b 55 e0 8b 4d e4 8b 82 e0 00 00
00 89 81 d4 02 00
Mar 21 12:17:51 localhost kernel: EIP: [<f85a7471>] drm_open+0x442/0x48d
[drm] SS:ESP 0068:f4570e40
Mar 21 12:17:51 localhost kernel: ---[ end trace ebf0ba7e33809de9 ]---

Fernando Lopez-Lezcano

unread,
Mar 21, 2009, 10:07:28 PM3/21/09
to Ingo Molnar, na...@ccrma.stanford.edu, Thomas Gleixner, Linux Kernel Mailing List
On Sat, 2009-03-21 at 12:27 -0700, Fernando Lopez-Lezcano wrote:
> On Sat, 2009-03-21 at 12:06 -0700, Fernando Lopez-Lezcano wrote:
> > On Sat, 2009-03-21 at 19:49 +0100, Ingo Molnar wrote:
> > > * Fernando Lopez-Lezcano <na...@ccrma.Stanford.EDU> wrote:
> > >
> > > > Mar 21 10:47:43 localhost kernel: kernel tried to execute NX-protected
> > > > page - exploit attempt? (uid: 0)
> > > > Mar 21 10:47:43 localhost kernel: BUG: unable to handle kernel paging
> > > > request at f6400800
> > >
> > > kernel tried to execute some really weird address, probably via a
> > > function pointer.
> >
> > Strangely enough rc8-rt1 boots (almost). _Exact_ same build with the
> > exception of the change from rt1 -> rt2.
> >
> > Haldaemon does not start on boot (fails), if I login as root and start
> > the haldaemon service manually it starts. And then things seem to work
> > fine (I'm writing this email from that machine). Still investigating...
>
> First problem was due to old firmware for the iwl3945 hardware. I
> updated to the latest and hal started fine (this is on fc9).
>
> Now another one related to xorg/drm...

Scratch that, I had an old version of xorg/drm installed in this
particular machine and the new kernel did not like it. Seems to boot
fine now... sorry for the noise.

-- Fernando

Ingo Molnar

unread,
Mar 22, 2009, 9:10:09 AM3/22/09
to Fernando Lopez-Lezcano, Thomas Gleixner, Linux Kernel Mailing List

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

> On Sat, 2009-03-21 at 12:27 -0700, Fernando Lopez-Lezcano wrote:
> > On Sat, 2009-03-21 at 12:06 -0700, Fernando Lopez-Lezcano wrote:
> > > On Sat, 2009-03-21 at 19:49 +0100, Ingo Molnar wrote:
> > > > * Fernando Lopez-Lezcano <na...@ccrma.Stanford.EDU> wrote:
> > > >
> > > > > Mar 21 10:47:43 localhost kernel: kernel tried to execute NX-protected
> > > > > page - exploit attempt? (uid: 0)
> > > > > Mar 21 10:47:43 localhost kernel: BUG: unable to handle kernel paging
> > > > > request at f6400800
> > > >
> > > > kernel tried to execute some really weird address, probably via a
> > > > function pointer.
> > >
> > > Strangely enough rc8-rt1 boots (almost). _Exact_ same build with the
> > > exception of the change from rt1 -> rt2.
> > >
> > > Haldaemon does not start on boot (fails), if I login as root and start
> > > the haldaemon service manually it starts. And then things seem to work
> > > fine (I'm writing this email from that machine). Still investigating...
> >
> > First problem was due to old firmware for the iwl3945 hardware. I
> > updated to the latest and hal started fine (this is on fc9).
> >
> > Now another one related to xorg/drm...
>
> Scratch that, I had an old version of xorg/drm installed in this
> particular machine and the new kernel did not like it. Seems to
> boot fine now... sorry for the noise.

No problem :-)

I'm wondering, do you have any theory about how the old firmware
cause that weird NX-fault kernel crash? For a few minutes i took it
for an x86 crash.

Ingo

Fernando Lopez-Lezcano

unread,
Mar 22, 2009, 5:43:28 PM3/22/09
to Ingo Molnar, na...@ccrma.stanford.edu, Thomas Gleixner, Linux Kernel Mailing List

Sorry, no theories at all - I would have to be a kernel guru for that. I
was surprised the whole thing went away with the firmware upgrade (I saw
some message in /var/log/messages telling me the firmware was old) - it
did seem like something more serious.

I hit another problem. On a quad code intel machine here at home there
is a problem during shutdown. The final shutdown dies with a traceback
(something like "rc0 was killed by SIGSEGV" or similar words at the very
end). Then I have to push the power button for x+ seconds to force a
power off.

Should I post a picture of the screen as it is at that point, or just
send that to you and Thomas?

-- Fernando

Ingo Molnar

unread,
Mar 23, 2009, 4:08:17 AM3/23/09
to Fernando Lopez-Lezcano, Thomas Gleixner, Linux Kernel Mailing List

any kernel stack dump in that?

You could try to do this before shutting down:

echo 1 > /proc/sys/kernel/print-fatal-signals
dmesg -n 8

that way there's a (hopefully helpful) stack dump done of the
SIGSEGV itself.

Ingo

Thomas Gleixner

unread,
Mar 23, 2009, 12:27:58 PM3/23/09
to LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, Frank Rowand
We are pleased to announce the next update to our new preempt-rt
series.

- fix a x86 32bit PAE pagetable corruption caused by a hard to
trigger race.

- update to latest linus and tip

Download locations:

http://rt.wiki.kernel.org/index.php/Main_Page

to build the 2.6.29-rc8-rt3 tree, the following patches should be
applied:

http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc8.tar.bz2
http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc8-rt3.bz2

Fernando Lopez-Lezcano

unread,
Mar 23, 2009, 11:13:03 PM3/23/09
to Ingo Molnar, na...@ccrma.stanford.edu, Thomas Gleixner, Linux Kernel Mailing List
On Mon, 2009-03-23 at 09:07 +0100, Ingo Molnar wrote:
> * Fernando Lopez-Lezcano <na...@ccrma.Stanford.EDU> wrote:
> > On Sun, 2009-03-22 at 14:09 +0100, Ingo Molnar wrote:
> > > * Fernando Lopez-Lezcano <na...@ccrma.Stanford.EDU> wrote:
> > I hit another problem. On a quad code intel machine here at home there
> > is a problem during shutdown. The final shutdown dies with a traceback
> > (something like "rc0 was killed by SIGSEGV" or similar words at the very
> > end). Then I have to push the power button for x+ seconds to force a
> > power off.
> >
> > Should I post a picture of the screen as it is at that point, or just
> > send that to you and Thomas?
>
> any kernel stack dump in that?

The tail end of it.
(still happening in rc8-rt4)

> You could try to do this before shutting down:
>
> echo 1 > /proc/sys/kernel/print-fatal-signals
> dmesg -n 8
>
> that way there's a (hopefully helpful) stack dump done of the
> SIGSEGV itself.

without all the funny numbers this is what remains on screen:

native_cpu_die
_cpu_down
disable_nonboot_cpus
kernel_power_off
sys_reboot
__hrtimer_start_range_ns
default_spin_lock_flags
__spin_lock_irqsave
__spin_lock_irqrestore
hrtimer_try_to_cancel
hrtimer_cancel
do_nanosleep
hrtimer_nanosleep
hrtimer_wakeup
path_put
audit_syscall_entry
audit_syscall_exit
sysenter_do_call
Code: 00 00 6a 00 ff 15 08 49 85 c0 58 etc etc etc
EIP [<c06f2549>] text_poke+0x163/0x181 SS:ESP 0068:f4567ddc
-- [end trace db3e80122adba82c ]---
init: rc0 main process (3047) killed by SEGV signal

(I can take a picture if that would help - I don't have a second machine
with a serial port to try to capture the whole thing)

BTW, the hard disk powers down and everything else seems to complete.

-- Fernando

Thomas Gleixner

unread,
Mar 24, 2009, 4:12:20 AM3/24/09
to Fernando Lopez-Lezcano, Ingo Molnar, Linux Kernel Mailing List
On Mon, 23 Mar 2009, Fernando Lopez-Lezcano wrote:
> without all the funny numbers this is what remains on screen:
>
> native_cpu_die
> _cpu_down
> disable_nonboot_cpus
> kernel_power_off
> sys_reboot
> __hrtimer_start_range_ns
> default_spin_lock_flags
> __spin_lock_irqsave
> __spin_lock_irqrestore
> hrtimer_try_to_cancel
> hrtimer_cancel
> do_nanosleep
> hrtimer_nanosleep
> hrtimer_wakeup
> path_put
> audit_syscall_entry
> audit_syscall_exit
> sysenter_do_call
> Code: 00 00 6a 00 ff 15 08 49 85 c0 58 etc etc etc
> EIP [<c06f2549>] text_poke+0x163/0x181 SS:ESP 0068:f4567ddc

Hmm. Do you have CONFIG_HAVE_DYNAMIC_FTRACE=y in your config ? If yes,
can you please disable it ?

> -- [end trace db3e80122adba82c ]---
> init: rc0 main process (3047) killed by SEGV signal
>
> (I can take a picture if that would help - I don't have a second machine
> with a serial port to try to capture the whole thing)

That'd be very helpful.

Thanks,

tglx

Thomas Gleixner

unread,
Mar 24, 2009, 4:13:35 AM3/24/09
to Fernando Lopez-Lezcano, Ingo Molnar, Linux Kernel Mailing List
On Tue, 24 Mar 2009, Thomas Gleixner wrote:

> On Mon, 23 Mar 2009, Fernando Lopez-Lezcano wrote:
> > without all the funny numbers this is what remains on screen:
> >
> > native_cpu_die
> > _cpu_down
> > disable_nonboot_cpus
> > kernel_power_off
> > sys_reboot
> > __hrtimer_start_range_ns
> > default_spin_lock_flags
> > __spin_lock_irqsave
> > __spin_lock_irqrestore
> > hrtimer_try_to_cancel
> > hrtimer_cancel
> > do_nanosleep
> > hrtimer_nanosleep
> > hrtimer_wakeup
> > path_put
> > audit_syscall_entry
> > audit_syscall_exit
> > sysenter_do_call
> > Code: 00 00 6a 00 ff 15 08 49 85 c0 58 etc etc etc
> > EIP [<c06f2549>] text_poke+0x163/0x181 SS:ESP 0068:f4567ddc
>
> Hmm. Do you have CONFIG_HAVE_DYNAMIC_FTRACE=y in your config ? If yes,

CONFIG_DYNAMIC_FTRACE=y of course.

Frederic Weisbecker

unread,
Mar 24, 2009, 7:04:55 AM3/24/09
to Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, Frank Rowand
On Mon, Mar 23, 2009 at 05:26:52PM +0100, Thomas Gleixner wrote:
> We are pleased to announce the next update to our new preempt-rt
> series.
>
> - fix a x86 32bit PAE pagetable corruption caused by a hard to
> trigger race.
>
> - update to latest linus and tip
>
> Download locations:
>
> http://rt.et.redhat.com/download/
> http://www.kernel.org/pub/linux/kernel/projects/rt/
>
> Information on the RT patch can be found at:
>
> http://rt.wiki.kernel.org/index.php/Main_Page
>
> to build the 2.6.29-rc8-rt3 tree, the following patches should be
> applied:
>
> http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc8.tar.bz2
> http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc8-rt3.bz2


Hi,

It doesn't seem to be available (404).
But I can see a 2.6.29-rc8-rt4.bz2 downloadable.

Thanks.

> The broken out patches are also available at the same download
> locations.
>
> Enjoy !
>
> tglx
> --

> To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in

Uwe Kleine-König

unread,
Mar 24, 2009, 5:07:39 PM3/24/09
to Frederic Weisbecker, Thomas Gleixner, LKML, rt-users, Ingo Molnar, Steven Rostedt, Peter Zijlstra, Carsten Emde, Clark Williams, Frank Rowand
Hi,

> > http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.29-rc8.tar.bz2
> > http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.29-rc8-rt3.bz2
>
>
> Hi,
>
> It doesn't seem to be available (404).
> But I can see a 2.6.29-rc8-rt4.bz2 downloadable.
>
> Thanks.

This is a channel log from #linux-rt

19:57 < clark|w> tglx, just how small was the -rt3 window (which I hit btw)?
19:58 < tglx> you mean how long -rt3 was up on the web ?
19:58 < clark|w> yeah
19:58 < tglx> half an hour or so
19:59 < clark|w> because I got it, built/booted it (64-bit) and was running it
up til thismorning when I saw that you'd released -rt4 :)
19:59 < tglx> 64bit was fine
19:59 < tglx> I fixed a 32bit PAE bug in -rt2 and when I pushed out -rt3 I did
not notice that half of the fix was lost
20:00 < tglx> so I zapped it and pushed out rt4
20:00 < clark|w> cool
20:00 < clark|w> good think I'm 64bit clean :)
20:00 < tglx> but I was too tired to send out another mail

Just FYI
Uwe

--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |

Thomas Gleixner

unread,
Mar 25, 2009, 3:27:53 AM3/25/09
to Fernando Lopez-Lezcano, Ingo Molnar, Linux Kernel Mailing List
On Wed, 25 Mar 2009, Fernando Lopez-Lezcano wrote:
> > >
> > > That'd be very helpful.
>
> Snapshot attached... (on my t61 laptop)

The crash happens in alternatives_smp_switch(). Can you check whether
adding "noreplace-smp" to the kernel command line helps ? I boot your
config on my own T61. Hopefully I can reproduce.

Ingo Molnar

unread,
Mar 25, 2009, 8:57:38 AM3/25/09
to Thomas Gleixner, Fernando Lopez-Lezcano, Linux Kernel Mailing List

* Thomas Gleixner <tg...@linutronix.de> wrote:

> On Wed, 25 Mar 2009, Fernando Lopez-Lezcano wrote:
> > > >
> > > > That'd be very helpful.
> >
> > Snapshot attached... (on my t61 laptop)
>
> The crash happens in alternatives_smp_switch(). Can you check
> whether adding "noreplace-smp" to the kernel command line helps ?
> I boot your config on my own T61. Hopefully I can reproduce.
>
> Thanks,

candidate bad commits would be:

f80d2d7: tracing, Text Edit Lock: Fix one sparse warning in kernel/extable.c
505f2b9: tracing, Text Edit Lock - kprobes architecture independent support, nommu fix
3945dab: tracing, Text Edit Lock - SMP alternatives support
4460fda: tracing, Text Edit Lock - kprobes architecture independent support
0e39ac4: tracing, Text Edit Lock - Architecture Independent Code

Ingo

It is loading more messages.
0 new messages