From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761127AbYEQAiG (ORCPT ); Fri, 16 May 2008 20:38:06 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753158AbYEQAhy (ORCPT ); Fri, 16 May 2008 20:37:54 -0400 Received: from simmts7-qfe0.srvr.bell.ca ([206.47.199.165]:40604 "EHLO simmts7-srv.bellnexxia.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753470AbYEQAhw (ORCPT ); Fri, 16 May 2008 20:37:52 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtoAAMbFLUicIvmz/2dsb2JhbAAIinqiWw Message-ID: <482E28DE.3090609@gmail.com> Date: Fri, 16 May 2008 21:37:50 -0300 From: Kevin Winchester User-Agent: Thunderbird 2.0.0.14 (X11/20080505) MIME-Version: 1.0 To: Ingo Molnar CC: linux-kernel@vger.kernel.org, Linus Torvalds , Andrew Morton , Peter Zijlstra , Thomas Gleixner , Alan Cox , Alexander Viro , airlied@linux.ie Subject: Re: [announce] "kill the Big Kernel Lock (BKL)" tree References: <20080514174955.GA515@elte.hu> <482E2378.9020007@gmail.com> In-Reply-To: <482E2378.9020007@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Kevin Winchester wrote: > Ingo Molnar wrote: > > > > I decided to give this tree a try, and I got: > > > [4294034.386085] ------------[ cut here ]------------ > [4294034.387882] WARNING: at fs/proc/generic.c:669 > create_proc_entry+0x3d/0xc5() > [4294034.390059] Pid: 2565, comm: Xorg Not tainted > 2.6.26-rc2-00456-gd9df34e #35 > [4294034.392682] > [4294034.392683] Call Trace: > [4294034.394071] [] warn_on_slowpath+0x53/0x81 > [4294034.394077] [] ? proc_register+0xf7/0x162 > [4294034.394081] [] ? proc_register+0x14e/0x162 > [4294034.394087] [] ? _spin_unlock+0x30/0x4b > [4294034.394091] [] ? proc_register+0x14e/0x162 > [4294034.394095] [] ? startup_ioapic_irq+0x54/0x5f > [4294034.394099] [] create_proc_entry+0x3d/0xc5 > [4294034.394103] [] register_irq_proc+0x84/0xa0 > [4294034.394108] [] setup_irq+0x1b2/0x21b > [4294034.394113] [] request_irq+0xf1/0x117 > [4294034.394117] [] ? radeon_driver_irq_handler+0x0/0x7e > [4294034.394122] [] ? drm_control+0x0/0x186 > [4294034.394126] [] drm_control+0x119/0x186 > [4294034.394130] [] drm_ioctl+0x1d3/0x265 > [4294034.394589] [] vfs_ioctl+0x5e/0x77 > [4294034.394593] [] do_vfs_ioctl+0x25b/0x270 > [4294034.394598] [] ? trace_hardirqs_on_thunk+0x35/0x3a > [4294034.394601] [] sys_ioctl+0x42/0x65 > [4294034.394606] [] system_call_after_swapgs+0x7b/0x80 > [4294034.411597] > [4294034.411601] ---[ end trace 7f52164e4c2b9927 ]--- > And now applying the debugging tips that Linus, Al and others supplied to me awhile back, I see from GDB that: vfs_ioctl locks the kernel before calling drm_ioctl, and, that create_proc_entry() has the following new line thanks to Ingo: WARN_ON_ONCE(kernel_locked()); According to Ingo's patch log: The functions, if called from the BKL, show that the calling site might have a dependency on the procfs code previously using the BKL in the dir-entry manipulation functions. I do not really know what that means, so I cc'd Dave Airlie to see if he has a solution. -- Kevin Winchester