>-----Original Message----- >From: Peter Zijlstra [mailto:peterz@xxxxxxxxxxxxx] >Sent: Friday, August 27, 2010 2:46 AM >To: Sydir, Jerry >Cc: linux-rt-users@xxxxxxxxxxxxxxx; tglx >Subject: Re: perf and oprofile causing kernel oops on 2.6.33.7-rt29 kernel > >On Wed, 2010-08-18 at 12:31 -0700, Sydir, Jerry wrote: > >> I am having trouble running profiling tools on the 2.6.33.7 kernel >> with the rt29 patch. I am running on an Intel Core 2 machine. > >Then run a 64bit kernel already, seriously, your employer didn't spend >all that silicon just so you could run 32bit crap. > >> When I run perf record I get a kernel oops. Here is the relevant log >> info: >> >> BUG: sleeping function called from invalid context at >arch/x86/mm/highmem_32.c:9 >> pcnt: 14010003 0 in_atomic(): 1, irqs_disabled(): 1, pid: 3640, name: >perf >> Pid: 3640, comm: perf Not tainted 2.6.33.7-rt29 #3 >> Call Trace: >> [<c101d0c3>] ? kmap+0x41/0x52 >> [<c100b66e>] ? perf_callchain+0x20d/0x2ac >> [<c106abd9>] ? perf_prepare_sample+0x1d1/0x23b >> [<c106ce0b>] ? __perf_event_overflow+0x20a/0x25e >> [<c106d4bc>] ? perf_event_overflow+0xf/0x12 >> [<c100c906>] ? intel_pmu_handle_irq+0x1fd/0x25d >> [<c100b7a3>] ? intel_pmu_enable_all+0x3d/0xae >> [<c1386478>] ? perf_event_nmi_handler+0x34/0x3f > >The below might cure that. The patch works. Thanks very much for your help. > >--- > arch/x86/kernel/cpu/perf_event.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > >diff --git a/arch/x86/kernel/cpu/perf_event.c >b/arch/x86/kernel/cpu/perf_event.c >index 16307ff..4c178c3 100644 >--- a/arch/x86/kernel/cpu/perf_event.c >+++ b/arch/x86/kernel/cpu/perf_event.c >@@ -2480,9 +2480,9 @@ copy_from_user_nmi(void *to, const void __user *from, >unsigned long n) > offset = addr & (PAGE_SIZE - 1); > size = min(PAGE_SIZE - offset, n - len); > >- map = kmap_atomic(page, type); >+ map = kmap_atomic_direct(page, type); > memcpy(to, map+offset, size); >- kunmap_atomic(map, type); >+ kunmap_atomic_direct(map, type); > put_page(page); > > len += size; -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html