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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20080618100153.6369d784@barsoom.rdu.redhat.com>
Date:	Wed, 18 Jun 2008 10:01:53 -0400
From:	Jeff Layton <jlayton@...hat.com>
To:	linux-kernel@...r.kernel.org
Subject: debug_objects: lockdep warnings from 2.6.26-rc6 with debug_objects
 enabled

Trying to reproduce another problem this morning and I ran across this
easily reproducible lockdep warning when I booted a recent Fedora
rawhide kernel with debug_objects=1.

I seem to consistently get a similar lockdep warning every time I boot,
but sometimes the stack traces look a bit different. The locks involved
do seem to be relatively consistent though.

Let me know if you need any other info...

=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.26-0.74.rc6.git4.fc10.x86_64 #1
-------------------------------------------------------
automount/2337 is trying to acquire lock:
 (&n->list_lock){++..}, at: [<ffffffff810a9540>] unfreeze_slab+0x58/0xb1

but task is already holding lock:
 (&obj_hash[i].lock){++..}, at: [<ffffffff8114ad59>] __debug_object_init+0x2f/0x352

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (&obj_hash[i].lock){++..}:
       [<ffffffff81057c5c>] __lock_acquire+0xbcf/0xd5f
       [<ffffffff81057e4a>] lock_acquire+0x5e/0x78
       [<ffffffff812b00a5>] _spin_lock_irqsave+0x36/0x69
       [<ffffffff8114a870>] debug_check_no_obj_freed+0x6d/0x158
       [<ffffffff81087b6c>] free_hot_cold_page+0xe6/0x1d0
       [<ffffffff81087cae>] free_hot_page+0xb/0xd
       [<ffffffff81087cd2>] __free_pages+0x22/0x2b
       [<ffffffff810a9494>] __free_slab+0xf5/0x102
       [<ffffffff810a94e6>] discard_slab+0x45/0x47
       [<ffffffff810aca5b>] kmem_cache_shrink+0x13a/0x21e
       [<ffffffff8116f2ad>] acpi_os_purge_cache+0x9/0xd
       [<ffffffff81186004>] acpi_purge_cached_objects+0x10/0x38
       [<ffffffff8118608a>] acpi_initialize_objects+0x49/0x54
       [<ffffffff8151fdd0>] acpi_init+0x8c/0x221
       [<ffffffff8150175f>] kernel_init+0x1eb/0x344
       [<ffffffff8100cec8>] child_rip+0xa/0x12
       [<ffffffffffffffff>] 0xffffffffffffffff

-> #0 (&n->list_lock){++..}:
       [<ffffffff81057b5f>] __lock_acquire+0xad2/0xd5f
       [<ffffffff81057e4a>] lock_acquire+0x5e/0x78
       [<ffffffff812aff8f>] _spin_lock+0x26/0x53
       [<ffffffff810a9540>] unfreeze_slab+0x58/0xb1
       [<ffffffff810aaf10>] __slab_alloc+0xf0/0x481
       [<ffffffff810ab3c2>] kmem_cache_alloc+0x62/0xa8
       [<ffffffff8114ae74>] __debug_object_init+0x14a/0x352
       [<ffffffff8114b0a9>] debug_object_init+0x14/0x17
       [<ffffffff8103f947>] init_timer+0x18/0x5b
       [<ffffffffa005c133>] scsi_get_command+0x53/0xa8 [scsi_mod]
       [<ffffffffa0061555>] scsi_setup_fs_cmnd+0x41/0x91 [scsi_mod]
       [<ffffffffa0084d37>] sd_prep_fn+0x72/0x79f [sd_mod]
       [<ffffffff81130101>] elv_next_request+0x158/0x21f
       [<ffffffffa0060bd8>] scsi_request_fn+0x93/0x411 [scsi_mod]
       [<ffffffff811320d8>] __generic_unplug_device+0x27/0x2b
       [<ffffffff811321b1>] generic_unplug_device+0x29/0x39
       [<ffffffff811315ad>] blk_unplug+0x5c/0x63
       [<ffffffffa00c80ef>] dm_table_unplug_all+0x2b/0x3e [dm_mod]
       [<ffffffffa00c7d3c>] dm_unplug_all+0x25/0x32 [dm_mod]
       [<ffffffff811315ad>] blk_unplug+0x5c/0x63
       [<ffffffff811315c1>] blk_backing_dev_unplug+0xd/0xf
       [<ffffffff810d4a6f>] sync_buffer+0x39/0x42
       [<ffffffff812ade39>] __wait_on_bit+0x47/0x79
       [<ffffffff812aded5>] out_of_line_wait_on_bit+0x6a/0x77
       [<ffffffff810d49be>] __wait_on_buffer+0x1f/0x21
       [<ffffffff810d6d02>] __bread+0x9a/0xb4
       [<ffffffffa003e7ee>] ext3_get_branch+0x76/0xe9 [ext3]
       [<ffffffffa003f526>] ext3_get_blocks_handle+0x9d/0x8b1 [ext3]
       [<ffffffffa003fdf8>] ext3_get_block+0xbe/0xfc [ext3]
       [<ffffffff810db3e2>] do_mpage_readpage+0x181/0x4d5
       [<ffffffff810db83b>] mpage_readpages+0xb2/0xf7
       [<ffffffffa003f41f>] ext3_readpages+0x1a/0x1c [ext3]
       [<ffffffff8108a7ca>] __do_page_cache_readahead+0x136/0x1ac
       [<ffffffff8108a896>] do_page_cache_readahead+0x56/0x63
       [<ffffffff81082a41>] filemap_fault+0x16a/0x33a
       [<ffffffff81090d5c>] __do_fault+0x51/0x3a8
       [<ffffffff81092a2b>] handle_mm_fault+0x339/0x6f3
       [<ffffffff812b2867>] do_page_fault+0x4aa/0x8b9
       [<ffffffff812b057d>] error_exit+0x0/0xa9
       [<ffffffffffffffff>] 0xffffffffffffffff

other info that might help us debug this:

3 locks held by automount/2337:
 #0:  (&mm->mmap_sem){----}, at: [<ffffffff812b27af>] do_page_fault+0x3f2/0x8b9
 #1:  (&q->__queue_lock){.+..}, at: [<ffffffff811321a9>] generic_unplug_device+0x21/0x39
 #2:  (&obj_hash[i].lock){++..}, at: [<ffffffff8114ad59>] __debug_object_init+0x2f/0x352

stack backtrace:
Pid: 2337, comm: automount Not tainted 2.6.26-0.74.rc6.git4.fc10.x86_64 #1

Call Trace:
 [<ffffffff81056df2>] print_circular_bug_tail+0x70/0x7b
 [<ffffffff81057b5f>] __lock_acquire+0xad2/0xd5f
 [<ffffffff8114ae74>] ? __debug_object_init+0x14a/0x352
 [<ffffffff81057e4a>] lock_acquire+0x5e/0x78
 [<ffffffff810a9540>] ? unfreeze_slab+0x58/0xb1
 [<ffffffff812aff8f>] _spin_lock+0x26/0x53
 [<ffffffff810a9540>] unfreeze_slab+0x58/0xb1
 [<ffffffff810aaf10>] __slab_alloc+0xf0/0x481
 [<ffffffff8114ae74>] ? __debug_object_init+0x14a/0x352
 [<ffffffff81054fad>] ? lock_release_holdtime+0x1e/0x108
 [<ffffffff8114ae74>] ? __debug_object_init+0x14a/0x352
 [<ffffffff810ab3c2>] kmem_cache_alloc+0x62/0xa8
 [<ffffffff8114ae74>] __debug_object_init+0x14a/0x352
 [<ffffffff8114b0a9>] debug_object_init+0x14/0x17
 [<ffffffff8103f947>] init_timer+0x18/0x5b
 [<ffffffffa005c133>] :scsi_mod:scsi_get_command+0x53/0xa8
 [<ffffffffa0061555>] :scsi_mod:scsi_setup_fs_cmnd+0x41/0x91
 [<ffffffff8114a5e1>] ? list_add+0xc/0xf
 [<ffffffffa0084d37>] :sd_mod:sd_prep_fn+0x72/0x79f
 [<ffffffff81130101>] elv_next_request+0x158/0x21f
 [<ffffffffa0060bd8>] :scsi_mod:scsi_request_fn+0x93/0x411
 [<ffffffff811320d8>] __generic_unplug_device+0x27/0x2b
 [<ffffffff811321b1>] generic_unplug_device+0x29/0x39
 [<ffffffff811315ad>] blk_unplug+0x5c/0x63
 [<ffffffff812afdd6>] ? _read_unlock+0x26/0x2b
 [<ffffffffa00c80ef>] :dm_mod:dm_table_unplug_all+0x2b/0x3e
 [<ffffffffa00c7d3c>] :dm_mod:dm_unplug_all+0x25/0x32
 [<ffffffff811315ad>] blk_unplug+0x5c/0x63
 [<ffffffff811315c1>] blk_backing_dev_unplug+0xd/0xf
 [<ffffffff810d4a6f>] sync_buffer+0x39/0x42
 [<ffffffff812ade39>] __wait_on_bit+0x47/0x79
 [<ffffffff810d4a36>] ? sync_buffer+0x0/0x42
 [<ffffffff810d4a36>] ? sync_buffer+0x0/0x42
 [<ffffffff812aded5>] out_of_line_wait_on_bit+0x6a/0x77
 [<ffffffff8104a610>] ? wake_bit_function+0x0/0x2a
 [<ffffffff810d49be>] __wait_on_buffer+0x1f/0x21
 [<ffffffff810d6d02>] __bread+0x9a/0xb4
 [<ffffffffa003e7ee>] :ext3:ext3_get_branch+0x76/0xe9
 [<ffffffffa003f526>] :ext3:ext3_get_blocks_handle+0x9d/0x8b1
 [<ffffffff810568de>] ? mark_held_locks+0x5c/0x77
 [<ffffffff812afe39>] ? _spin_unlock_irq+0x2b/0x30
 [<ffffffff81132e2d>] ? __make_request+0x3b2/0x3cf
 [<ffffffff8113142d>] ? generic_make_request+0x3b4/0x3ef
 [<ffffffff81011de7>] ? native_sched_clock+0x50/0x6d
 [<ffffffffa003fdf8>] :ext3:ext3_get_block+0xbe/0xfc
 [<ffffffff81131548>] ? submit_bio+0xe0/0xe9
 [<ffffffff810db3e2>] do_mpage_readpage+0x181/0x4d5
 [<ffffffff8108257d>] ? add_to_page_cache+0x93/0xa2
 [<ffffffff810db83b>] mpage_readpages+0xb2/0xf7
 [<ffffffffa003fd3a>] ? :ext3:ext3_get_block+0x0/0xfc
 [<ffffffffa003fd3a>] ? :ext3:ext3_get_block+0x0/0xfc
 [<ffffffff81088c7f>] ? __alloc_pages_nodemask+0x9/0xb
 [<ffffffffa003f41f>] :ext3:ext3_readpages+0x1a/0x1c
 [<ffffffff8108a7ca>] __do_page_cache_readahead+0x136/0x1ac
 [<ffffffff8108a896>] do_page_cache_readahead+0x56/0x63
 [<ffffffff81082a41>] filemap_fault+0x16a/0x33a
 [<ffffffff81090d5c>] __do_fault+0x51/0x3a8
 [<ffffffff81092a2b>] handle_mm_fault+0x339/0x6f3
 [<ffffffff812b27af>] ? do_page_fault+0x3f2/0x8b9
 [<ffffffff812b2867>] do_page_fault+0x4aa/0x8b9
 [<ffffffff811442d9>] ? __up_write+0xf0/0xff
 [<ffffffff81054fad>] ? lock_release_holdtime+0x1e/0x108
 [<ffffffff812afe7d>] ? _spin_unlock_irqrestore+0x3f/0x47
 [<ffffffff81056a6f>] ? trace_hardirqs_on+0xf1/0x115
 [<ffffffff811442d9>] ? __up_write+0xf0/0xff
 [<ffffffff812afa6b>] ? trace_hardirqs_on_thunk+0x35/0x3a
 [<ffffffff81056a6f>] ? trace_hardirqs_on+0xf1/0x115
 [<ffffffff812b057d>] error_exit+0x0/0xa9


-- 
Jeff Layton <jlayton@...hat.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ