From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754740AbZAZXER (ORCPT ); Mon, 26 Jan 2009 18:04:17 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751811AbZAZXEE (ORCPT ); Mon, 26 Jan 2009 18:04:04 -0500 Received: from xc.sipsolutions.net ([83.246.72.84]:60361 "EHLO sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751689AbZAZXEC (ORCPT ); Mon, 26 Jan 2009 18:04:02 -0500 Subject: Re: [PATCH] timer: implement lockdep deadlock detection From: Johannes Berg To: Thomas Gleixner Cc: Linux Kernel list , Peter Zijlstra , Ingo Molnar In-Reply-To: <1233010786.4344.1.camel@johannes.local> References: <1233010786.4344.1.camel@johannes.local> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Xo1scVtL/2i4IgUQf/qS" Date: Tue, 27 Jan 2009 00:03:56 +0100 Message-Id: <1233011036.4869.0.camel@johannes.local> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-Xo1scVtL/2i4IgUQf/qS Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Mon, 2009-01-26 at 23:59 +0100, Johannes Berg wrote: > This modifies the timer code in a way to allow lockdep to detect > deadlocks resulting from a lock being taken in the timer function > as well as around the del_timer_sync() call. >=20 > Validated with this module, otherwise bootup was clean. Not having a proper stack trace in there is a little confusing: [ 81.547455]=20 [ 81.547457] =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D [ 81.547657] [ INFO: possible circular locking dependency detected ] [ 81.547759] 2.6.29-rc2-wl-11979-gc32422d-dirty #24 [ 81.547857] ------------------------------------------------------- [ 81.547956] rmmod/3857 is trying to acquire lock: [ 81.548055] (&t){-+..}, at: [] del_timer_sync+0x0/0xa= 0 [ 81.548303]=20 [ 81.548303] but task is already holding lock: [ 81.548491] (&l){.+..}, at: [] e+0x10/0x30 [test] [ 81.548736]=20 [ 81.548736] which lock already depends on the new lock. [ 81.548737]=20 [ 81.549023]=20 [ 81.549023] the existing dependency chain (in reverse order) is: [ 81.549212]=20 [ 81.549213] -> #1 (&l){.+..}: [ 81.549544] [] 0xffffffffffffffff [ 81.549697]=20 [ 81.549697] -> #0 (&t){-+..}: [ 81.550028] [] check_prev_add+0x57/0x770 [ 81.550178] [] validate_chain+0x606/0x6c0 [ 81.550322] [] __lock_acquire+0x43f/0xa10 [ 81.550471] [] lock_acquire+0x91/0xc0 [ 81.550619] [] del_timer_sync+0x3d/0xa0 [ 81.550767] [] e+0x1c/0x30 [test] [ 81.550911] [] sys_delete_module+0x27b/0x2e0 [ 81.551062] [] system_call_fastpath+0x16/0x1b [ 81.551213] [] 0xffffffffffffffff [ 81.551361]=20 [ 81.551361] other info that might help us debug this: [ 81.551362]=20 [ 81.551646] 1 lock held by rmmod/3857: [ 81.551743] #0: (&l){.+..}, at: [] e+0x10/0x30 [test= ] [ 81.552035]=20 [ 81.552035] stack backtrace: [ 81.552222] Pid: 3857, comm: rmmod Not tainted 2.6.29-rc2-wl-11979-gc324= 22d-dirty #24 [ 81.552371] Call Trace: [ 81.552469] [] print_circular_bug_tail+0xe0/0xf0 [ 81.552571] [] check_prev_add+0x57/0x770 [ 81.552672] [] validate_chain+0x606/0x6c0 [ 81.552773] [] __lock_acquire+0x43f/0xa10 [ 81.552876] [] ? get_lock_stats+0x34/0x70 [ 81.552979] [] ? get_lock_stats+0x34/0x70 [ 81.553080] [] lock_acquire+0x91/0xc0 [ 81.553181] [] ? del_timer_sync+0x0/0xa0 [ 81.553284] [] del_timer_sync+0x3d/0xa0 [ 81.553383] [] ? del_timer_sync+0x0/0xa0 [ 81.553487] [] e+0x1c/0x30 [test] [ 81.553588] [] sys_delete_module+0x27b/0x2e0 [ 81.553690] [] ? retint_swapgs+0xe/0x13 [ 81.553792] [] ? trace_hardirqs_on_caller+0x182/0x1e0 [ 81.553895] [] system_call_fastpath+0x16/0x1b --=-Xo1scVtL/2i4IgUQf/qS Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Comment: Johannes Berg (powerbook) iQIcBAABAgAGBQJJfkFaAAoJEKVg1VMiehFYUoIP/if6kML8vv4/5sasNCA2tU6J F9PIFTH8Q6ru86YdnSBV4qaP5TeRgNvTZZXGMwduQEYAj8PQo1/SMH0bWoV9ACrd oB5uZByuohZB/u0H60DgRgeqBwZld4+xmhItJfKMboH0unMN6G/eG1ZCt05FgJea NHY7qhWhm4dJEfcOnWlX1/5gLzKyqH/LhLljzykpdx6XABXMqYN1Zm321/jd1yPG DuNwv6zThFJn5nkdPSCKCp5Xx1tw8X7FcvMSUhn6876amvpykMEndFLIrvgFccyt Q95956/HQJ4xoWp6uQIKBZoc0d3BMYiurz0/wrxUToOs9zFd8/hmJ1kNU4SB1zay xK4/l3MHh2rapwPM4291J+CNTVD0PsoVh4kbSc+DrS7PwkO+lv6KYcZE2Z9OKr2r 71E5u5WUDKEZm08yJ+ZKIA8yXQbcfV1gyDhAeqJhzPYsmvqAjzV9qRk9nmrDt7jz ep60AA4oQ3vIhdUBt0vgk8Lvkvp8LusZSGSTLft3Ftwj3V8Rfo2at+lLT5TSQ0xW 9hquV+0dtsQ2d8+VqUyFO4by5uIoNOBzaf8zGdCB5FofNHHw8CYVXhDhCsIF00Z6 qFEDw7Jfc7PQ1BDYj/jsiXeh52PTb4uKapN1W/4QItJsGqndyOkPrp9tlxJHhThl 1hn9MxMHeUyKS4X+D6U7 =g1b1 -----END PGP SIGNATURE----- --=-Xo1scVtL/2i4IgUQf/qS--