[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090815095221.GA15831@elte.hu>
Date: Sat, 15 Aug 2009 11:52:21 +0200
From: Ingo Molnar <mingo@...e.hu>
To: Thomas Gleixner <tglx@...utronix.de>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>
Cc: john stultz <johnstul@...ibm.com>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
linux-kernel@...r.kernel.org
Subject: Re: [patch 00/15] clocksource / timekeeping rework V4 (resend V3 +
bug fix)
* Thomas Gleixner <tglx@...utronix.de> wrote:
> On Fri, 14 Aug 2009, john stultz wrote:
> > > Keeping the fingers crossed that this is now really done.
> > > John already gave his thumbs up for the patch series, so the next
> > > logical question is who is going to sit on the patches until the merge
> > > window is opened? I can certainly create a git branch on git390 for
> > > them, but the patches depend on some patches in the x86-tip tree.
> > > Thomas, any thoughts?
> >
> > So with the fix I sent out to patch #4, this set looks good to me.
> >
> > So for all of them, including the fixup:
> >
> > Acked-by: John Stultz <johnstul@...ibm.com>
>
> Thanks John for the fix. I picked up everything and pushed it into
> tip/timers/core.
>
> Martin, thanks for the nice work. FYI, I massaged the commit
> messages a bit as they were missing subsystem identifiers and I
> added some more explanation to some of them.
Yeah, nice cleanups!
I gave it some brief testing in tip:master and there's the new
lockdep assert below. Config and full bootlog attached.
Ingo
[ 1.680107] =======================================================
[ 1.683330] [ INFO: possible circular locking dependency detected ]
[ 1.683330] 2.6.31-rc6-tip #4534
[ 1.683330] -------------------------------------------------------
[ 1.703334] events/1/8 is trying to acquire lock:
[ 1.703334] (clocksource_mutex){+.+...}, at: [<c105dde6>] clocksource_change_rating+0x1b/0x86
[ 1.703334]
[ 1.703334] but task is already holding lock:
[ 1.703334] (watchdog_lock){+.-...}, at: [<c105e24a>] clocksource_watchdog_work+0x14/0x94
[ 1.703334]
[ 1.703334] which lock already depends on the new lock.
[ 1.703334]
[ 1.703334]
[ 1.703334] the existing dependency chain (in reverse order) is:
[ 1.703334]
[ 1.703334] -> #1 (watchdog_lock){+.-...}:
[ 1.703334] [<c1066317>] __lock_acquire+0xa5d/0xbed
[ 1.703334] [<c1066542>] lock_acquire+0x9b/0xb8
[ 1.703334] [<c19fcf2a>] _spin_lock_irqsave+0x37/0x6a
[ 1.703334] [<c105e0da>] clocksource_register+0x65/0x1c1
[ 1.703334] [<c1fe8102>] tsc_init+0x1d7/0x1df
[ 1.703334] [<c1fe4b75>] time_init+0xd/0x19
[ 1.703334] [<c1fe2ab1>] start_kernel+0x21b/0x3e5
[ 1.703334] [<c1fe2391>] i386_start_kernel+0x6b/0x70
[ 1.703334]
[ 1.703334] -> #0 (clocksource_mutex){+.+...}:
[ 1.703334] [<c1066222>] __lock_acquire+0x968/0xbed
[ 1.703334] [<c1066542>] lock_acquire+0x9b/0xb8
[ 1.703334] [<c19fbb3f>] __mutex_lock_common+0x3a/0x34d
[ 1.703334] [<c19fbecc>] mutex_lock_nested+0x24/0x2c
[ 1.703334] [<c105dde6>] clocksource_change_rating+0x1b/0x86
[ 1.703334] [<c105e277>] clocksource_watchdog_work+0x41/0x94
[ 1.703334] [<c1050d96>] worker_thread+0x179/0x24a
[ 1.703334] [<c1054ad7>] kthread+0x66/0x6b
[ 1.703334] [<c1004227>] kernel_thread_helper+0x7/0x10
[ 1.703334]
[ 1.703334] other info that might help us debug this:
[ 1.703334]
[ 1.703334] 3 locks held by events/1/8:
[ 1.703334] #0: (events){+.+...}, at: [<c1050d4c>] worker_thread+0x12f/0x24a
[ 1.703334] #1: (&watchdog_work){+.+...}, at: [<c1050d4c>] worker_thread+0x12f/0x24a
[ 1.703334] #2: (watchdog_lock){+.-...}, at: [<c105e24a>] clocksource_watchdog_work+0x14/0x94
[ 1.703334]
[ 1.703334] stack backtrace:
[ 1.703334] Pid: 8, comm: events/1 Tainted: G W 2.6.31-rc6-tip #4534
[ 1.703334] Call Trace:
[ 1.703334] [<c19fa80e>] ? printk+0x14/0x16
[ 1.703334] [<c1065575>] print_circular_bug+0x8a/0x96
[ 1.703334] [<c1066222>] __lock_acquire+0x968/0xbed
[ 1.703334] [<c1066542>] lock_acquire+0x9b/0xb8
[ 1.703334] [<c105dde6>] ? clocksource_change_rating+0x1b/0x86
[ 1.703334] [<c19fbb3f>] __mutex_lock_common+0x3a/0x34d
[ 1.703334] [<c105dde6>] ? clocksource_change_rating+0x1b/0x86
[ 1.703334] [<c105e24a>] ? clocksource_watchdog_work+0x14/0x94
[ 1.703334] [<c19fbecc>] mutex_lock_nested+0x24/0x2c
[ 1.703334] [<c105dde6>] ? clocksource_change_rating+0x1b/0x86
[ 1.703334] [<c105dde6>] clocksource_change_rating+0x1b/0x86
[ 1.703334] [<c105e277>] clocksource_watchdog_work+0x41/0x94
[ 1.703334] [<c1050d96>] worker_thread+0x179/0x24a
[ 1.703334] [<c1050d4c>] ? worker_thread+0x12f/0x24a
[ 1.703334] [<c105e236>] ? clocksource_watchdog_work+0x0/0x94
[ 1.703334] [<c1054d71>] ? autoremove_wake_function+0x0/0x38
[ 1.703334] [<c1050c1d>] ? worker_thread+0x0/0x24a
[ 1.703334] [<c1054ad7>] kthread+0x66/0x6b
[ 1.703334] [<c1054a71>] ? kthread+0x0/0x6b
[ 1.703334] [<c1004227>] kernel_thread_helper+0x7/0x10
[ 2.464242] initcall cfg80211_init+0x0/0x69 returned 0 after 735675 usecs
[ 2.466667] calling ieee80211_init+0x0/0x24 @ 1
Timer List Version: v0.4
HRTIMER_MAX_CLOCK_BASES: 2
now at 1915353302473 nsecs
cpu: 0
clock 0:
.base: c28c0a78
.index: 0
.resolution: 3333116 nsecs
.get_time: ktime_get_real
.offset: 0 nsecs
active timers:
clock 1:
.base: c28c0aa4
.index: 1
.resolution: 3333116 nsecs
.get_time: ktime_get
.offset: 0 nsecs
active timers:
#0: <f604daf0>, hrtimer_wakeup, S:01, <(null)>, /-1
# expires at 1919286635810-1919291635810 nsecs [in 3933333337 to 3938333337 nsecs]
.expires_next : 9223372036854775807 nsecs
.hres_active : 0
.nr_events : 0
.nohz_mode : 0
.idle_tick : 0 nsecs
.tick_stopped : 0
.idle_jiffies : 0
.idle_calls : 0
.idle_sleeps : 0
.idle_entrytime : 1915196635812 nsecs
.idle_waketime : 0 nsecs
.idle_exittime : 0 nsecs
.idle_sleeptime : 0 nsecs
.last_jiffies : 0
.next_jiffies : 0
.idle_expires : 0 nsecs
jiffies: 484606
cpu: 1
clock 0:
.base: c2a0da78
.index: 0
.resolution: 3333116 nsecs
.get_time: ktime_get_real
.offset: 0 nsecs
active timers:
clock 1:
.base: c2a0daa4
.index: 1
.resolution: 3333116 nsecs
.get_time: ktime_get
.offset: 0 nsecs
active timers:
#0: <f4089b74>, hrtimer_wakeup, S:01, <(null)>, /-1
# expires at 1915449969140-1915450069140 nsecs [in 96666667 to 96766667 nsecs]
.expires_next : 9223372036854775807 nsecs
.hres_active : 0
.nr_events : 0
.nohz_mode : 0
.idle_tick : 0 nsecs
.tick_stopped : 0
.idle_jiffies : 0
.idle_calls : 0
.idle_sleeps : 0
.idle_entrytime : 1915349969140 nsecs
.idle_waketime : 0 nsecs
.idle_exittime : 0 nsecs
.idle_sleeptime : 49729999524 nsecs
.last_jiffies : 0
.next_jiffies : 0
.idle_expires : 0 nsecs
jiffies: 484606
Tick Device: mode: 0
Broadcast device
Clock Event Device: pit
max_delta_ns: 27461866
min_delta_ns: 12571
mult: 5124677
shift: 32
mode: 1
next_event: 9223372036854775807 nsecs
set_next_event: pit_next_event
set_mode: init_pit_timer
event_handler: clockevents_handle_noop
tick_broadcast_mask: 00000000
tick_broadcast_oneshot_mask: 00000000
Tick Device: mode: 0
Per CPU device: 0
Clock Event Device: lapic
max_delta_ns: 667650479
min_delta_ns: 1193
mult: 53963554
shift: 32
mode: 2
next_event: 9223372036854775807 nsecs
set_next_event: lapic_next_event
set_mode: lapic_timer_setup
event_handler: tick_handle_periodic
Tick Device: mode: 0
Per CPU device: 1
Clock Event Device: lapic
max_delta_ns: 667650479
min_delta_ns: 1193
mult: 53963554
shift: 32
mode: 2
next_event: 9223372036854775807 nsecs
set_next_event: lapic_next_event
set_mode: lapic_timer_setup
event_handler: tick_handle_periodic
mercury:~> cat
/sys/devices/system/clocksource/clocksource0/current_clocksource
jiffies
mercury:~> cat
/sys/devices/system/clocksource/clocksource0/available_clocksource
jiffies tsc
View attachment "config" of type "text/plain" (62552 bytes)
View attachment "boot.log" of type "text/plain" (382437 bytes)
Powered by blists - more mailing lists