Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 83F6BC636D4 for ; Mon, 13 Feb 2023 15:25:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230178AbjBMPZP (ORCPT ); Mon, 13 Feb 2023 10:25:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230098AbjBMPZN (ORCPT ); Mon, 13 Feb 2023 10:25:13 -0500 Received: from netrider.rowland.org (netrider.rowland.org [192.131.102.5]) by lindbergh.monkeyblade.net (Postfix) with SMTP id BBF6A9018 for ; Mon, 13 Feb 2023 07:25:11 -0800 (PST) Received: (qmail 909736 invoked by uid 1000); 13 Feb 2023 10:25:10 -0500 Date: Mon, 13 Feb 2023 10:25:10 -0500 From: Alan Stern To: Kent Overstreet Cc: Kent Overstreet , Linus Torvalds , Coly Li , Tetsuo Handa , syzkaller , Dmitry Vyukov , Greg Kroah-Hartman , "Rafael J. Wysocki" , Peter Zijlstra , Ingo Molnar , Boqun Feng , LKML , USB list , Hillf Danton Subject: Re: [PATCH RFC] drivers/core: Replace lockdep_set_novalidate_class() with unique class keys Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Feb 12, 2023 at 09:21:14PM -0500, Kent Overstreet wrote: > On Sun, Feb 12, 2023 at 08:23:34PM -0500, Alan Stern wrote: > > I really don't think that's a good idea here. When you've got a bus > > containing multiple devices, typically all those device structures are > > created by the same line of code. So knowing the source code location > > won't tell you _which_ device structure is involved in the locking > > cycle or what driver it's using. > > Yeah, I was thinking about this more and realized it'd be insufficient. > > > By contrast, knowing the device name > > would. > > > > Furthermore, to the extent that the device's name identifies what kind > > of device it is, the name would tell you what where the structure was > > created and which driver it is using. > > OTOH, with the device name, it seems like you'll additionally need the > full device topology to be able to do anything with lockdep splats, no? Not necessarily. Knowing the name already tells you something about where the device fits into the full tree. And if necessary, you can probably glean the necessary information from the kernel log. Besides, you often don't need the full device topology. For instance, if the problem is that a driver is flushing a work queue while holding a lock needed by an item on the queue, mostly you just need to know what driver and where the flush occurs -- and that information is already provided by lockdep. > What if we just added a way to set a comparison function for a lockdep > class? I'm looking at the lockdep code now, and I think I could do that > for you. I don't know what a lockdep class comparison function does (or would do). Nor how having one would help. Alan Stern