[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090822103541.GA26476@elte.hu>
Date: Sat, 22 Aug 2009 12:35:41 +0200
From: Ingo Molnar <mingo@...e.hu>
To: mingo@...hat.com, hpa@...or.com, linux-kernel@...r.kernel.org,
johnstul@...ibm.com, schwidefsky@...ibm.com, tglx@...utronix.de
Cc: linux-tip-commits@...r.kernel.org
Subject: Re: [tip:timers/core] x86: Do not unregister PIT clocksource on
PIT oneshot setup/shutdown
* tip-bot for Thomas Gleixner <tglx@...utronix.de> wrote:
> Commit-ID: 8cab02dc3c58a12235c6d463ce684dded9696848
> Gitweb: http://git.kernel.org/tip/8cab02dc3c58a12235c6d463ce684dded9696848
> Author: Thomas Gleixner <tglx@...utronix.de>
> AuthorDate: Thu, 20 Aug 2009 18:19:45 +0200
> Committer: Thomas Gleixner <tglx@...utronix.de>
> CommitDate: Fri, 21 Aug 2009 21:13:37 +0200
>
> x86: Do not unregister PIT clocksource on PIT oneshot setup/shutdown
even after this fix, -tip testing found yet another circular locking
bug, on a 32-bit Core2 laptop:
[ 1.198605] initcall cpufreq_gov_performance_init+0x0/0x10 returned 0 after 0 usecs
[ 1.198736] calling init_acpi_pm_clocksource+0x0/0x250 @ 1
[ 1.233442] Switching to clocksource acpi_pm
[ 1.233626]
[ 1.233627] =======================================================
[ 1.233798] [ INFO: possible circular locking dependency detected ]
[ 1.233889] 2.6.31-rc6-tip-01322-gd685ec8-dirty #7600
[ 1.233977] -------------------------------------------------------
[ 1.233999] swapper/1 is trying to acquire lock:
[ 1.233999] (cpu_add_remove_lock){+.+.+.}, at: [<c103e6af>] cpu_maps_update_begin+0xf/0x20
[ 1.233999]
[ 1.233999] but task is already holding lock:
[ 1.233999] (setup_lock){+.+.+.}, at: [<c10788a2>] stop_machine_create+0x12/0xa0
[ 1.233999]
[ 1.233999] which lock already depends on the new lock.
[ 1.233999]
[ 1.233999]
[ 1.233999] the existing dependency chain (in reverse order) is:
[ 1.233999]
[ 1.233999] -> #3 (setup_lock){+.+.+.}:
[ 1.233999] [<c1068410>] validate_chain+0xad0/0x1130
[ 1.233999] [<c1068db1>] __lock_acquire+0x341/0x690
[ 1.233999] [<c106918e>] lock_acquire+0x8e/0xf0
[ 1.233999] [<c15b55b9>] __mutex_lock_common+0x49/0x3d0
[ 1.233999] [<c15b59e9>] mutex_lock_nested+0x29/0x40
[ 1.233999] [<c10788a2>] stop_machine_create+0x12/0xa0
[ 1.233999] [<c107894b>] stop_machine+0x1b/0x50
[ 1.233999] [<c105c319>] timekeeping_notify+0x19/0x20
[ 1.233999] [<c105df94>] clocksource_select+0x84/0xb0
[ 1.233999] [<c105e262>] clocksource_register+0x22/0x1e0
[ 1.233999] [<c1901c1c>] init_acpi_pm_clocksource+0x16c/0x250
[ 1.233999] [<c1001127>] do_one_initcall+0x27/0x190
[ 1.233999] [<c18c5a0a>] kernel_init+0x14a/0x1a0
[ 1.233999] [<c1003bc3>] kernel_thread_helper+0x7/0x14
[ 1.233999]
[ 1.233999] -> #2 (clocksource_mutex){+.+.+.}:
[ 1.233999] [<c1068410>] validate_chain+0xad0/0x1130
[ 1.233999] [<c1068db1>] __lock_acquire+0x341/0x690
[ 1.233999] [<c106918e>] lock_acquire+0x8e/0xf0
[ 1.233999] [<c15b55b9>] __mutex_lock_common+0x49/0x3d0
[ 1.233999] [<c15b59e9>] mutex_lock_nested+0x29/0x40
[ 1.233999] [<c105e21d>] clocksource_change_rating+0x1d/0x40
[ 1.233999] [<c100877c>] mark_tsc_unstable+0x4c/0x50
[ 1.233999] [<c15b18df>] check_tsc_sync_source+0x10f/0x120
[ 1.233999] [<c15b0b63>] native_cpu_up+0x423/0x800
[ 1.233999] [<c15b27c9>] _cpu_up+0x89/0x110
[ 1.233999] [<c15b28c9>] cpu_up+0x49/0x70
[ 1.233999] [<c18c598c>] kernel_init+0xcc/0x1a0
[ 1.233999] [<c1003bc3>] kernel_thread_helper+0x7/0x14
[ 1.233999]
[ 1.233999] -> #1 (cpu_hotplug.lock){+.+.+.}:
[ 1.233999] [<c1068410>] validate_chain+0xad0/0x1130
[ 1.233999] [<c1068db1>] __lock_acquire+0x341/0x690
[ 1.233999] [<c106918e>] lock_acquire+0x8e/0xf0
[ 1.233999] [<c15b55b9>] __mutex_lock_common+0x49/0x3d0
[ 1.233999] [<c15b59e9>] mutex_lock_nested+0x29/0x40
[ 1.233999] [<c103e70d>] cpu_hotplug_begin+0x1d/0x50
[ 1.233999] [<c15b279b>] _cpu_up+0x5b/0x110
[ 1.233999] [<c15b28c9>] cpu_up+0x49/0x70
[ 1.233999] [<c18c598c>] kernel_init+0xcc/0x1a0
[ 1.233999] [<c1003bc3>] kernel_thread_helper+0x7/0x14
[ 1.233999]
[ 1.233999] -> #0 (cpu_add_remove_lock){+.+.+.}:
[ 1.233999] [<c1068a55>] validate_chain+0x1115/0x1130
[ 1.233999] [<c1068db1>] __lock_acquire+0x341/0x690
[ 1.233999] [<c106918e>] lock_acquire+0x8e/0xf0
[ 1.233999] [<c15b55b9>] __mutex_lock_common+0x49/0x3d0
[ 1.233999] [<c15b59e9>] mutex_lock_nested+0x29/0x40
[ 1.233999] [<c103e6af>] cpu_maps_update_begin+0xf/0x20
[ 1.233999] [<c1050230>] __create_workqueue_key+0x100/0x1f0
[ 1.233999] [<c10788d2>] stop_machine_create+0x42/0xa0
[ 1.233999] [<c107894b>] stop_machine+0x1b/0x50
[ 1.233999] [<c105c319>] timekeeping_notify+0x19/0x20
[ 1.233999] [<c105df94>] clocksource_select+0x84/0xb0
[ 1.233999] [<c105e262>] clocksource_register+0x22/0x1e0
[ 1.233999] [<c1901c1c>] init_acpi_pm_clocksource+0x16c/0x250
[ 1.233999] [<c1001127>] do_one_initcall+0x27/0x190
[ 1.233999] [<c18c5a0a>] kernel_init+0x14a/0x1a0
[ 1.233999] [<c1003bc3>] kernel_thread_helper+0x7/0x14
[ 1.233999]
[ 1.233999] other info that might help us debug this:
[ 1.233999]
[ 1.233999] 2 locks held by swapper/1:
[ 1.233999] #0: (clocksource_mutex){+.+.+.}, at: [<c105e256>] clocksource_register+0x16/0x1e0
[ 1.233999] #1: (setup_lock){+.+.+.}, at: [<c10788a2>] stop_machine_create+0x12/0xa0
[ 1.233999]
[ 1.233999] stack backtrace:
[ 1.233999] Pid: 1, comm: swapper Not tainted 2.6.31-rc6-tip-01322-gd685ec8-dirty #7600
[ 1.233999] Call Trace:
[ 1.233999] [<c10666fb>] print_circular_bug+0xbb/0xd0
[ 1.233999] [<c1068a55>] validate_chain+0x1115/0x1130
[ 1.233999] [<c1068db1>] __lock_acquire+0x341/0x690
[ 1.233999] [<c106918e>] lock_acquire+0x8e/0xf0
[ 1.233999] [<c103e6af>] ? cpu_maps_update_begin+0xf/0x20
[ 1.233999] [<c15b55b9>] __mutex_lock_common+0x49/0x3d0
[ 1.233999] [<c103e6af>] ? cpu_maps_update_begin+0xf/0x20
[ 1.233999] [<c15b53d8>] ? mutex_unlock+0x8/0x10
[ 1.233999] [<c10d566b>] ? pcpu_alloc+0x30b/0x400
[ 1.233999] [<c10d605b>] ? kmemleak_alloc+0x2b/0x60
[ 1.233999] [<c15b59e9>] mutex_lock_nested+0x29/0x40
[ 1.233999] [<c103e6af>] ? cpu_maps_update_begin+0xf/0x20
[ 1.233999] [<c103e6af>] cpu_maps_update_begin+0xf/0x20
[ 1.233999] [<c1050230>] __create_workqueue_key+0x100/0x1f0
[ 1.233999] [<c15b59e9>] ? mutex_lock_nested+0x29/0x40
[ 1.233999] [<c10788d2>] stop_machine_create+0x42/0xa0
[ 1.233999] [<c107894b>] stop_machine+0x1b/0x50
[ 1.233999] [<c105c170>] ? change_clocksource+0x0/0x70
[ 1.233999] [<c105c319>] timekeeping_notify+0x19/0x20
[ 1.233999] [<c105df94>] clocksource_select+0x84/0xb0
[ 1.233999] [<c105e262>] clocksource_register+0x22/0x1e0
[ 1.233999] [<c11ee57e>] ? __const_udelay+0x2e/0x30
[ 1.233999] [<c1901c1c>] init_acpi_pm_clocksource+0x16c/0x250
[ 1.233999] [<c105d16f>] ? ktime_get+0x5f/0x110
[ 1.233999] [<c1901ab0>] ? init_acpi_pm_clocksource+0x0/0x250
[ 1.233999] [<c1001127>] do_one_initcall+0x27/0x190
[ 1.233999] [<c1901ab0>] ? init_acpi_pm_clocksource+0x0/0x250
[ 1.233999] [<c18c5a0a>] kernel_init+0x14a/0x1a0
[ 1.233999] [<c18c58c0>] ? kernel_init+0x0/0x1a0
[ 1.233999] [<c1003bc3>] kernel_thread_helper+0x7/0x14
[ 1.234233] initcall init_acpi_pm_clocksource+0x0/0x250 returned 0 after 35202 usecs
[ 1.234365] calling ssb_modinit+0x0/0x60 @ 1
[ 1.234455] Switched to high resolution mode on CPU 0
config and full bootlog attached.
Ingo
View attachment "config" of type "text/plain" (69547 bytes)
View attachment "boot.log" of type "text/plain" (258158 bytes)
Powered by blists - more mailing lists