* v2.6.21-rt2
@ 2007-05-16 18:04 Ingo Molnar
2007-05-16 20:54 ` v2.6.21-rt2 Daniel Walker
2007-05-16 23:32 ` v2.6.21-rt2 Free Ekanayaka
0 siblings, 2 replies; 9+ messages in thread
From: Ingo Molnar @ 2007-05-16 18:04 UTC (permalink / raw)
To: linux-kernel; +Cc: linux-rt-users
i'm pleased to announce the v2.6.20-rt2 kernel, which can be downloaded
from the usual place:
http://redhat.com/~mingo/realtime-preempt/
more info about the -rt patchset can be found in the RT wiki:
http://rt.wiki.kernel.org
This is a fixes-mostly release and has been assembled by Thomas
Gleixner. Thanks Thomas! Here are the various changes:
- ppc fixes from Tsutomu OWA
- new sh -rt port from Paul Mundt & Co
- fixes for various problems by Steven Rostedt and Clark Williams
- x86/64 high-res timers and dynticks update (Thomas Gleixner)
- various fixes from Sergie Shtylyov
- latency fixes from John Stultz
- misc fixes
to build a 2.6.21-rt2 tree, the following patches should be applied:
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2
http://redhat.com/~mingo/realtime-preempt/patch-2.6.21-rt2
Ingo
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: v2.6.21-rt2 2007-05-16 18:04 v2.6.21-rt2 Ingo Molnar @ 2007-05-16 20:54 ` Daniel Walker 2007-05-16 21:01 ` v2.6.21-rt2 Ingo Molnar 2007-05-16 23:32 ` v2.6.21-rt2 Free Ekanayaka 1 sibling, 1 reply; 9+ messages in thread From: Daniel Walker @ 2007-05-16 20:54 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, linux-rt-users On Wed, 2007-05-16 at 20:04 +0200, Ingo Molnar wrote: > i'm pleased to announce the v2.6.20-rt2 kernel, which can be downloaded > from the usual place: 2.6.21-rt2 ? > http://redhat.com/~mingo/realtime-preempt/ > > more info about the -rt patchset can be found in the RT wiki: > > http://rt.wiki.kernel.org > > This is a fixes-mostly release and has been assembled by Thomas > Gleixner. Thanks Thomas! Here are the various changes: > > - ppc fixes from Tsutomu OWA > > - new sh -rt port from Paul Mundt & Co > > - fixes for various problems by Steven Rostedt and Clark Williams I think you missed the fix I submitted for one of Steve's changes. http://lkml.org/lkml/2007/5/3/368 Daniel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: v2.6.21-rt2 2007-05-16 20:54 ` v2.6.21-rt2 Daniel Walker @ 2007-05-16 21:01 ` Ingo Molnar 2007-05-16 21:20 ` v2.6.21-rt2 Daniel Walker 0 siblings, 1 reply; 9+ messages in thread From: Ingo Molnar @ 2007-05-16 21:01 UTC (permalink / raw) To: Daniel Walker; +Cc: linux-kernel, linux-rt-users * Daniel Walker <dwalker@mvista.com> wrote: > On Wed, 2007-05-16 at 20:04 +0200, Ingo Molnar wrote: > > i'm pleased to announce the v2.6.20-rt2 kernel, which can be downloaded > > from the usual place: > > 2.6.21-rt2 ? oops, right! :-) > > - fixes for various problems by Steven Rostedt and Clark Williams > > I think you missed the fix I submitted for one of Steve's changes. > > http://lkml.org/lkml/2007/5/3/368 hm - trace_hardirqs_on() should never be called with irqs on - lockdep could break for example. Could you try to fix the call site instead? Ingo ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: v2.6.21-rt2 2007-05-16 21:01 ` v2.6.21-rt2 Ingo Molnar @ 2007-05-16 21:20 ` Daniel Walker 2007-05-16 21:32 ` v2.6.21-rt2 Ingo Molnar 0 siblings, 1 reply; 9+ messages in thread From: Daniel Walker @ 2007-05-16 21:20 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, linux-rt-users On Wed, 2007-05-16 at 23:01 +0200, Ingo Molnar wrote: > * Daniel Walker <dwalker@mvista.com> wrote: > > > On Wed, 2007-05-16 at 20:04 +0200, Ingo Molnar wrote: > > > i'm pleased to announce the v2.6.20-rt2 kernel, which can be downloaded > > > from the usual place: > > > > 2.6.21-rt2 ? > > oops, right! :-) > > > > - fixes for various problems by Steven Rostedt and Clark Williams > > > > I think you missed the fix I submitted for one of Steve's changes. > > > > http://lkml.org/lkml/2007/5/3/368 > > hm - trace_hardirqs_on() should never be called with irqs on - lockdep > could break for example. Could you try to fix the call site instead? If that's the case why check if they're enabled inside trace_hardirqs_on() ? If that check fails you still still get the warning in my original release .. Daniel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: v2.6.21-rt2 2007-05-16 21:20 ` v2.6.21-rt2 Daniel Walker @ 2007-05-16 21:32 ` Ingo Molnar 2007-05-16 21:47 ` v2.6.21-rt2 Daniel Walker 0 siblings, 1 reply; 9+ messages in thread From: Ingo Molnar @ 2007-05-16 21:32 UTC (permalink / raw) To: Daniel Walker; +Cc: linux-kernel, linux-rt-users * Daniel Walker <dwalker@mvista.com> wrote: > > > http://lkml.org/lkml/2007/5/3/368 > > > > hm - trace_hardirqs_on() should never be called with irqs on - > > lockdep could break for example. Could you try to fix the call site > > instead? > > If that's the case why check if they're enabled inside > trace_hardirqs_on() ? If that check fails you still still get the > warning in my original release .. yeah, indeed you are right - it checks the soft flag. But even then, the better fix is to check for hardirqs-off first and not to flip around the preempt count check in irqs_off_preempt_count() - i.e. something like the patch below. Does this solve the warning you've triggered with irqsoff-tracing enabled? Ingo Index: linux-rt.q/kernel/latency_trace.c =================================================================== --- linux-rt.q.orig/kernel/latency_trace.c +++ linux-rt.q/kernel/latency_trace.c @@ -1963,7 +1963,7 @@ void notrace trace_hardirqs_on(void) local_save_flags(flags); - if (!irqs_off_preempt_count() && irqs_disabled_flags(flags)) + if (irqs_disabled_flags(flags) && !irqs_off_preempt_count()) __stop_critical_timing(CALLER_ADDR0, 0 /* CALLER_ADDR1 */); } @@ -1975,7 +1975,7 @@ void notrace trace_hardirqs_off(void) local_save_flags(flags); - if (!irqs_off_preempt_count() && irqs_disabled_flags(flags)) + if (irqs_disabled_flags(flags) && !irqs_off_preempt_count()) __start_critical_timing(CALLER_ADDR0, 0 /* CALLER_ADDR1 */, INTERRUPT_LATENCY); } @@ -1989,7 +1989,7 @@ void notrace trace_hardirqs_on_caller(un local_save_flags(flags); - if (!irqs_off_preempt_count() && irqs_disabled_flags(flags)) + if (irqs_disabled_flags(flags) && !irqs_off_preempt_count()) __stop_critical_timing(caller_addr, 0 /* CALLER_ADDR1 */); } @@ -1999,7 +1999,7 @@ void notrace trace_hardirqs_off_caller(u local_save_flags(flags); - if (!irqs_off_preempt_count() && irqs_disabled_flags(flags)) + if (irqs_disabled_flags(flags) && !irqs_off_preempt_count()) __start_critical_timing(caller_addr, 0 /* CALLER_ADDR1 */, INTERRUPT_LATENCY); } ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: v2.6.21-rt2 2007-05-16 21:32 ` v2.6.21-rt2 Ingo Molnar @ 2007-05-16 21:47 ` Daniel Walker 2007-05-16 22:04 ` v2.6.21-rt2 Ingo Molnar 0 siblings, 1 reply; 9+ messages in thread From: Daniel Walker @ 2007-05-16 21:47 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, linux-rt-users On Wed, 2007-05-16 at 23:32 +0200, Ingo Molnar wrote: > * Daniel Walker <dwalker@mvista.com> wrote: > > > > > http://lkml.org/lkml/2007/5/3/368 > > > > > > hm - trace_hardirqs_on() should never be called with irqs on - > > > lockdep could break for example. Could you try to fix the call site > > > instead? > > > > If that's the case why check if they're enabled inside > > trace_hardirqs_on() ? If that check fails you still still get the > > warning in my original release .. > > yeah, indeed you are right - it checks the soft flag. But even then, the > better fix is to check for hardirqs-off first and not to flip around the > preempt count check in irqs_off_preempt_count() - i.e. something like > the patch below. Does this solve the warning you've triggered with > irqsoff-tracing enabled? I don't know. irqs_off_preempt_count() could get used someplace else, where you would want to flip the preempt_count() check .. It seems sane to combine your patch with mine .. irqs_off_preempt_count() (!__get_cpu_var(trace_cpu_idle) && preempt_count()) You can't call __get_cpu_var() without the a positive preempt_count(), so the check seems backwards regardless of the other factors .. Daniel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: v2.6.21-rt2 2007-05-16 21:47 ` v2.6.21-rt2 Daniel Walker @ 2007-05-16 22:04 ` Ingo Molnar 2007-05-16 22:22 ` v2.6.21-rt2 Daniel Walker 0 siblings, 1 reply; 9+ messages in thread From: Ingo Molnar @ 2007-05-16 22:04 UTC (permalink / raw) To: Daniel Walker; +Cc: linux-kernel, linux-rt-users * Daniel Walker <dwalker@mvista.com> wrote: > I don't know. irqs_off_preempt_count() could get used someplace else, > where you would want to flip the preempt_count() check .. It seems > sane to combine your patch with mine .. > > irqs_off_preempt_count() (!__get_cpu_var(trace_cpu_idle) && > preempt_count()) > > You can't call __get_cpu_var() without the a positive preempt_count(), > so the check seems backwards regardless of the other factors .. yeah. The whole trace_preempt_enter_idle() thing looks a bit suspect. Why cannot those architectures simply disable/enable preemption and get the same effect? It's not like we ever want to allow the preemption of the idle task. and once that is solved, irqs_off_preempt_count() can again include the hardirq and preempt count check only and doesnt have to check the idle_cpu flag. This would make the whole thing simpler and would avoid silly bugs like this. Ingo ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: v2.6.21-rt2 2007-05-16 22:04 ` v2.6.21-rt2 Ingo Molnar @ 2007-05-16 22:22 ` Daniel Walker 0 siblings, 0 replies; 9+ messages in thread From: Daniel Walker @ 2007-05-16 22:22 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, linux-rt-users On Thu, 2007-05-17 at 00:04 +0200, Ingo Molnar wrote: > * Daniel Walker <dwalker@mvista.com> wrote: > > > I don't know. irqs_off_preempt_count() could get used someplace else, > > where you would want to flip the preempt_count() check .. It seems > > sane to combine your patch with mine .. > > > > irqs_off_preempt_count() (!__get_cpu_var(trace_cpu_idle) && > > preempt_count()) > > > > You can't call __get_cpu_var() without the a positive preempt_count(), > > so the check seems backwards regardless of the other factors .. > > yeah. The whole trace_preempt_enter_idle() thing looks a bit suspect. > Why cannot those architectures simply disable/enable preemption and get > the same effect? It's not like we ever want to allow the preemption of > the idle task. They disable interrupts it looks like (i386, and x86_64), around the same area where those trace_preempt_enter_idle calls are placed .. I'm not up on the details of Steve's fix .. There's also a preempt_disable/preempt_enable .. I'm not up on the details of Steve's fix , but stuff looks a little odd .. Daniel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: v2.6.21-rt2 2007-05-16 18:04 v2.6.21-rt2 Ingo Molnar 2007-05-16 20:54 ` v2.6.21-rt2 Daniel Walker @ 2007-05-16 23:32 ` Free Ekanayaka 1 sibling, 0 replies; 9+ messages in thread From: Free Ekanayaka @ 2007-05-16 23:32 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, linux-rt-users Hi, |--==> Ingo Molnar writes: IM> i'm pleased to announce the v2.6.20-rt2 kernel, which can be downloaded IM> from the usual place: IM> http://redhat.com/~mingo/realtime-preempt/ This new version of the patch solves the amd64/udev bug I reported against previous releases: http://www.mail-archive.com/linux-rt-users@vger.kernel.org/msg00353.html I'm going to test the patch on other amd64 machines as well, thanks a lot and keep up goo the work! Ciao, Free ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2007-05-16 23:32 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-05-16 18:04 v2.6.21-rt2 Ingo Molnar 2007-05-16 20:54 ` v2.6.21-rt2 Daniel Walker 2007-05-16 21:01 ` v2.6.21-rt2 Ingo Molnar 2007-05-16 21:20 ` v2.6.21-rt2 Daniel Walker 2007-05-16 21:32 ` v2.6.21-rt2 Ingo Molnar 2007-05-16 21:47 ` v2.6.21-rt2 Daniel Walker 2007-05-16 22:04 ` v2.6.21-rt2 Ingo Molnar 2007-05-16 22:22 ` v2.6.21-rt2 Daniel Walker 2007-05-16 23:32 ` v2.6.21-rt2 Free Ekanayaka
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox