From mboxrd@z Thu Jan 1 00:00:00 1970 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EFFA8C4332F for ; Mon, 12 Dec 2022 16:19:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+BzDqXw55Bo5q37OUbOcwnePqC8Um47ZHuiCKhgvXfo=; b=LykSa13LJnQJV3 Pkpj+6L5QZEDB5SV10HM/ldk8RR+HmVH1KeZiIqYEvspMaUVayHVVXM/HAAyUzYl7Rz7g+28Hryhl uwKWW3DtD2FrBtDLBuWol32eTM58U+ygI87dgN30+ScOZfTxW4AaEaCVxIe2qDHjJ/TusfJy9sjeC QBDq6aWJ4Fl+c+a89TNgi+jPOBPXCShCrjH3Q/NU9Tz511EE5I4Oos1HJgnoi0p0aF7miZ/Q+CCTg BbQ1CYO7xV5FrA51PQf7+yT64GCANK6P4eq1pzeYYWq5pn8C+PydSj3IUI5Gc01Fyk9DLh/ZbLPbs 6Mgcd4lANey/Srr4MLRA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p4lVU-001zm7-8Q; Mon, 12 Dec 2022 16:18:20 +0000 Received: from galois.linutronix.de ([2a0a:51c0:0:12e:550::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1p4lVR-001zcC-Fy for linux-arm-kernel@lists.infradead.org; Mon, 12 Dec 2022 16:18:18 +0000 From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1670861892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=xj018pjLW2UkgQnmqILBUEjAhXT9K6CF9xEj+xIiOFE=; b=dKy70Zi3FiVNICZwR1ZmCUEpDQ3v/TY50J/4hvfbOePjz8inPzy3fENnG8eMjkELCHMY8U 38zyt11Ffk1cmTWmB6ToWEZTugFnAY0I7ngiTNgllZaM+/f27zmb/uveKuqeVZZtLLbUow LstYVR6VpXbY5gzJ6o+xdFVwAJ7GacdIDVFJjzkpdqszoQeGW9ekwsbN1D4np6IJBnA+xT pjKnMILuN78kgX48D5Bulitb2TWj3LZFduti5L8HN3wQ0lBZZnak79HXBCp0UMxtM7ypeL Q7GZi2E0KgDgV3rqQzfI+t1XG7SPNTWwb6uP+Tgd3EH0S9TO5mmr8mO4QLsFOA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1670861892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=xj018pjLW2UkgQnmqILBUEjAhXT9K6CF9xEj+xIiOFE=; b=wyzDgR0jttlml3luJKS9Im9oim6JOrsphSFktX57nGApgGMBCUL4+A9pqaB+oEGsO9mRnw m6hOMh+W+d1iIFBw== To: Johan Hovold Cc: Johan Hovold , Marc Zyngier , x86@kernel.org, platform-driver-x86@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 19/19] irqdomain: Switch to per-domain locking In-Reply-To: References: <20221209140150.1453-1-johan+linaro@kernel.org> <20221209140150.1453-20-johan+linaro@kernel.org> <87mt7sbtf9.ffs@tglx> Date: Mon, 12 Dec 2022 17:18:11 +0100 Message-ID: <878rjcbnp8.ffs@tglx> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221212_081817_681274_7EA424DC X-CRM114-Status: GOOD ( 17.17 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Mon, Dec 12 2022 at 15:29, Johan Hovold wrote: > On Mon, Dec 12, 2022 at 03:14:34PM +0100, Thomas Gleixner wrote: >> On Fri, Dec 09 2022 at 15:01, Johan Hovold wrote: >> > The IRQ domain structures are currently protected by the global >> > irq_domain_mutex. Switch to using more fine-grained per-domain locking, >> > which may potentially speed up parallel probing somewhat. >> > >> > Note that the domain lock of the root domain (innermost domain) must be >> > used for hierarchical domains. For non-hierarchical domain (as for root >> > domains), the new root pointer is set to the domain itself so that >> > domain->root->mutex can be used in shared code paths. >> > >> > Also note that hierarchical domains should be constructed using >> > irq_domain_create_hierarchy() (or irq_domain_add_hierarchy()) to avoid >> > poking at irqdomain internals. >> >> While I agree in principle, this change really makes me nervous. >> >> Any fail in setting up domain->root correctly, e.g. by not using >> irq_domain_create_hierarchy(), cannot be detected and creates nasty to >> debug race conditions. >> >> So we need some debug mechanism which allows to validate that >> domain->root is set up correctly when domain->parent != NULL. > > Lockdep will catch that due to the > > lockdep_assert_held(&domain->root->mutex); > > I added to irq_domain_set_mapping() and which is is called for each > (inner) domain in a hierarchy when allocating an IRQ. Hmm. Indeed that should do the trick. Some comments would be appreciated as the rules around domain->root are far from obvious. Thanks, tglx _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel