From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758257Ab2JSFWA (ORCPT ); Fri, 19 Oct 2012 01:22:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:4298 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753017Ab2JSFV7 (ORCPT ); Fri, 19 Oct 2012 01:21:59 -0400 Date: Fri, 19 Oct 2012 01:21:36 -0400 From: Dave Jones To: Jens Axboe Cc: Linux Kernel , Peter Zijlstra , Ingo Molnar Subject: Re: MAX_LOCKDEP_ENTRIES too low (called from ioc_release_fn) Message-ID: <20121019052136.GA30852@redhat.com> Mail-Followup-To: Dave Jones , Jens Axboe , Linux Kernel , Peter Zijlstra , Ingo Molnar References: <20121018015312.GA29865@redhat.com> <507F9944.50505@kernel.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <507F9944.50505@kernel.dk> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Oct 18, 2012 at 07:53:08AM +0200, Jens Axboe wrote: > On 2012-10-18 03:53, Dave Jones wrote: > > Triggered while fuzz testing.. > > > > > > BUG: MAX_LOCKDEP_ENTRIES too low! > > turning off the locking correctness validator. > > Pid: 22788, comm: kworker/2:1 Not tainted 3.7.0-rc1+ #34 > > Call Trace: > > [] add_lock_to_list.isra.29.constprop.45+0xdd/0xf0 > > [] __lock_acquire+0x1121/0x1ba0 > > [] lock_acquire+0xa2/0x220 > > [] ? free_one_page+0x32/0x450 > > [] ? sub_preempt_count+0x79/0xd0 > > [] _raw_spin_lock+0x40/0x80 > > [] ? free_one_page+0x32/0x450 > > [] free_one_page+0x32/0x450 > > [] ? __free_pages_ok.part.58+0x51/0x110 > > [] __free_pages_ok.part.58+0xac/0x110 > > [] __free_pages+0x73/0x90 > > [] __free_slab+0xd3/0x1b0 > > [] discard_slab+0x39/0x50 > > [] __slab_free+0x378/0x3a3 > > [] ? ioc_release_fn+0x99/0xe0 > > [] ? ioc_release_fn+0x99/0xe0 > > [] kmem_cache_free+0x2f2/0x320 > > [] ? sub_preempt_count+0x79/0xd0 > > [] ioc_release_fn+0x99/0xe0 > > [] process_one_work+0x207/0x780 > > [] ? process_one_work+0x197/0x780 > > [] ? get_io_context+0x20/0x20 > > [] worker_thread+0x15e/0x440 > > [] ? rescuer_thread+0x240/0x240 > > [] kthread+0xed/0x100 > > [] ? put_lock_stats.isra.25+0xe/0x40 > > [] ? kthread_create_on_node+0x160/0x160 > > [] ret_from_fork+0x7c/0xb0 > > [] ? kthread_create_on_node+0x160/0x160 > > Not sure why you are CC'ing a call site, rather than the maintainers of > the code. Just looks like lockdep is using too small a static value. > Though it is pretty darn large... You're right, it's a huge chunk of memory. It looks like I can trigger this from multiple callsites.. Another different trace below. Not sure why this suddenly got a lot worse in 3.7 Peter, Ingo ? Dave BUG: MAX_LOCKDEP_ENTRIES too low! turning off the locking correctness validator. Pid: 22350, comm: trinity-child0 Not tainted 3.7.0-rc1+ #36 Call Trace: [] add_lock_to_list.isra.29.constprop.45+0xdd/0xf0 [] __lock_acquire+0x1121/0x1ba0 [] ? local_clock+0x89/0xa0 [] ? __swap_duplicate+0xb5/0x190 [] ? trace_hardirqs_off_caller+0x28/0xd0 [] lock_acquire+0xa2/0x220 [] ? __add_to_swap_cache+0x6d/0x180 [] ? _raw_spin_lock_irq+0x29/0x90 [] _raw_spin_lock_irq+0x56/0x90 [] ? __add_to_swap_cache+0x6d/0x180 [] __add_to_swap_cache+0x6d/0x180 [] read_swap_cache_async+0xb5/0x220 [] swapin_readahead+0x9e/0xf0 [] handle_pte_fault+0x6d6/0xae0 [] ? sub_preempt_count+0x79/0xd0 [] ? delay_tsc+0xae/0x120 [] ? __const_udelay+0x28/0x30 [] handle_mm_fault+0x289/0x350 [] __do_page_fault+0x18e/0x530 [] ? local_clock+0x89/0xa0 [] ? __slab_free+0x32e/0x3a3 [] ? rcu_user_exit+0xc9/0xf0 [] ? 0xffffffffa000001f [] ? 0xffffffffa000001f [] do_page_fault+0x2b/0x50 [] page_fault+0x28/0x30 [] ? 0xffffffffa000001f [] ? strncpy_from_user+0x6c/0x120 [] ? 0xffffffffa000001f [] setxattr+0x6f/0x1d0 [] ? sub_preempt_count+0x79/0xd0 [] ? __percpu_counter_add+0x75/0xc0 [] ? __sb_start_write+0x101/0x1d0 [] ? mnt_want_write+0x24/0x50 [] ? mnt_want_write+0x24/0x50 [] ? get_parent_ip+0x11/0x50 [] ? sub_preempt_count+0x79/0xd0 [] ? __mnt_want_write+0x60/0xa0 [] ? 0xffffffffa000001f [] sys_setxattr+0x95/0xb0 [] tracesys+0xe1/0xe6 [] ? 0xffffffffa000001f