Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp1765510pxb; Sat, 23 Apr 2022 17:02:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzOCykw3JlIjQ9rCRQduS9aO3jmuBMTAoOvl4fngx2oLdmbE44AyvRoHBptg2dPx26E5+mm X-Received: by 2002:aa7:c789:0:b0:413:605d:8d17 with SMTP id n9-20020aa7c789000000b00413605d8d17mr11898057eds.100.1650758569257; Sat, 23 Apr 2022 17:02:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650758569; cv=none; d=google.com; s=arc-20160816; b=cnzEkK2ueVssrf4XykVaQddwgtPoyMeOqMP/EfsCzlrGHx0U9XmRjl6vk/AfRADaVy UIpEtV+7IMo+qKwYnC+KkFxH1KEWXrOqpHSIk3XL9f76g7tO1RwO6izKN3jOMXcE9dGY CYtA7fX6LRqGVoXm/AyOGTiRu5uOqnyMw4OgeujNvfxYcqo25e7FRaROhjkUkOinZla9 bTOl0XcWIk7jk0Vg31lN9MkJAerNoO+Q3dBhLtywllJfIKtrtIC6mjBB9Iy6ayHtV4mD dg0CFqA2Q+h4SYnlZjkobCBXrBU6hCe8LpGe/OO8bbfJcqmgKIhJSOYFnUG7SIY7zYBC vCzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=OjNNj2h0H9BdL9f5m+RhS3iK90tZuCfxF3PYDW2jHLo=; b=Ste0qsQnyMnJ8N99VMAYF3RczYi1rRFI1pvV0plLjadmjFtzBz7I0gmJ1pVVu2rigb Xe5o8t1UwHvdWXztdRQFPqwybtRxMh8Qik1c/INICHKWUW91tGlIA/YU37tvm7syIGZ7 SYV/W8t95rYu6rYk3SDXpVDSs6QktS/gQehjGA+zB3/ILYzJxyZ+tQPZ3NRR7fae7GvL danjNftgqlB5H41Uqf4YWXaZy4Efkk6Z3nr3GcmwJgxllxdRKWv+iKeAiFX55PQw2v1Y ksph7HEcfHXgnbu1b8MzfmGZ4ypPrhqb1+Eu9ufo/lg1HE2HsbFRipW5Uxd02BsxKaYu xnMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel-com.20210112.gappssmtp.com header.s=20210112 header.b=Y4suICBQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c12-20020a056402120c00b0041e4c76fecfsi9266884edw.555.2022.04.23.17.02.16; Sat, 23 Apr 2022 17:02:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel-com.20210112.gappssmtp.com header.s=20210112 header.b=Y4suICBQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236572AbiDWRbC (ORCPT + 99 others); Sat, 23 Apr 2022 13:31:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35410 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235097AbiDWRbA (ORCPT ); Sat, 23 Apr 2022 13:31:00 -0400 Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 921B115B467 for ; Sat, 23 Apr 2022 10:28:03 -0700 (PDT) Received: by mail-pg1-x52c.google.com with SMTP id q12so9880965pgj.13 for ; Sat, 23 Apr 2022 10:28:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OjNNj2h0H9BdL9f5m+RhS3iK90tZuCfxF3PYDW2jHLo=; b=Y4suICBQDJxf0jQtkeyC3zyUM3bJCKEEvMlhWiNcQGzmHv6AX00nag852PsZfn/2WY QX3PVo+C07/bFjX7RsJyx8FIa8FTgD/N2sYKBiWOpN2jEIWRzzbv5Cd0J8GEUpLILWe1 kYOvssQac95PDPJANkwqEueJuzNVkyZfGUdeSyiSdjU3+KTpuB7qjofvFpgq9PTG962L iY5fl8f1dAKPE5sSN/uu+Ln8TWXq9VgcVzyZH71ov5mgjuJl8PBt0nZSjXlPmLC7OVUu Lx53yMbickS/RVM/xs9BR4dNxqU3PNoknFTU3wQfaMkFAgIKpRIeULxaBE48sPeUDaIW D2Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OjNNj2h0H9BdL9f5m+RhS3iK90tZuCfxF3PYDW2jHLo=; b=2svYSmml/RQdtco6R8z+fT8Qs11LiN9uIrNEbXpwU4ObY57JyA5IkncjCLzyRg0uyo PQvkU6fqkr2nGyimJYbRv9nxLM9lMbCEzk2GrnFkOCS9vpGTyBBwvvprkoz01bsTEoXb l535i/L9ZQ3Ay+JAXBMJ7Rs2UUlc0TxHxNR6rP9pRDFrx0UCtVjPG9iQ/iBnNOw9raOk GHUtVYYilDSobIZCjbULjWbMiZoUeXOrCGs1uXsEIHKVjknHPgFK6LackAvflp/RuCHY 1KNbtuRxOEtH0YTlXNNqhQGEkS2U/qoyA3+LKW/nVLlwK4qMKFWiPLG175NxuC9NFnrW cesg== X-Gm-Message-State: AOAM532iMMvkclhLRA77iYQOlS0lXDI3n7u5Sm8uooNGzTNn9G1N2KDK JLQizFT/m3TcnN3z9w4YCctBmJ6rYX5jqHkjBtF1rN5rpt7I0w== X-Received: by 2002:a63:1117:0:b0:399:2df0:7fb9 with SMTP id g23-20020a631117000000b003992df07fb9mr8862901pgl.40.1650734883122; Sat, 23 Apr 2022 10:28:03 -0700 (PDT) MIME-Version: 1.0 References: <165055518776.3745911.9346998911322224736.stgit@dwillia2-desk3.amr.corp.intel.com> <165055519869.3745911.10162603933337340370.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: From: Dan Williams Date: Sat, 23 Apr 2022 10:27:52 -0700 Message-ID: Subject: Re: [PATCH v3 2/8] cxl/acpi: Add root device lockdep validation To: Ira Weiny Cc: linux-cxl@vger.kernel.org, Peter Zijlstra , Greg Kroah-Hartman , "Rafael J. Wysocki" , Ingo Molnar , Will Deacon , Waiman Long , Boqun Feng , Alison Schofield , Vishal Verma , Ben Widawsky , Jonathan Cameron , Linux NVDIMM , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 22, 2022 at 5:08 PM Dan Williams wrote: > > On Fri, Apr 22, 2022 at 4:58 PM Ira Weiny wrote: > > > > On Thu, Apr 21, 2022 at 08:33:18AM -0700, Dan Williams wrote: > > > The CXL "root" device, ACPI0017, is an attach point for coordinating > > > platform level CXL resources and is the parent device for a CXL port > > > topology tree. As such it has distinct locking rules relative to other > > > CXL subsystem objects, but because it is an ACPI device the lock class > > > is established well before it is given to the cxl_acpi driver. > > > > This final sentence gave me pause because it implied that the device lock class > > was set to something other than no validate. But I don't see that anywhere in > > the acpi code. So given that it looks to me like ACPI is just using the > > default no validate class... > > Oh, good observation. *If* ACPI had set a custom lock class then > cxl_acpi would need to be careful to restore that ACPI-specific class > and not reset it to "no validate" on exit, or skip setting its own > custom class. However, I think for generic buses like ACPI that feed > devices into other subsystems it likely has little reason to set its > own class. For safety, since device_lock_set_class() is general > purpose, I'll have it emit a debug message and fail if the class is > not "no validate" on entry. > So this turned out way uglier than I expected: drivers/cxl/acpi.c | 4 +++- include/linux/device.h | 33 +++++++++++++++++++++++++-------- 2 files changed, 28 insertions(+), 9 deletions(-) ...so I'm going to drop it and just add a comment about the expectations. As Peter said there's already a multitude of ways to cause false positive / negative results with lockdep so this is just one more area where one needs to be careful and understand the lock context they might be overriding.