lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ