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 smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (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 C13A4C3DA4A for ; Tue, 20 Aug 2024 18:44:33 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 6954E6070C; Tue, 20 Aug 2024 18:44:33 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id CK1FAsefBW0j; Tue, 20 Aug 2024 18:44:32 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.34; helo=ash.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 6EA4B60765 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org; s=default; t=1724179472; bh=70AoaSjo96+DLI/aDgGJ/KSUUJum/oVq1+roRVZK2o8=; h=Date:From:To:In-Reply-To:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:Cc:From; b=IN+b17NP/9Ua0dE9LrFCFHbppbLpQLUnt86NuXF89gq9qSMsDDajGlgUaAlJYkwsy jMge2+YPtmX3e+JxEMEYn/Esdw3DFArPk5yFcG+thmAg1gIbtNXG95uPgTOAN0J1N3 jjQ+0zYVwbNxXKG+QzJjURNHozA7xvH9QuGFT5QoYTr7kbRgLMDFreu/Z/EVERb3s/ Vd82iOb/nHZ01O4xPhEj2r1/8ArF03QaNK8fgO0B/eVb3209QRapxvtu2WVjyBq+qS beYpVUc+ORcP+P9VwD4Lra9SO8ovJ2EtG7VrR6vMcpO0UOQ4oNvpvU+w5fLOCVMXei tRkbH1rjOX5mw== Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id 6EA4B60765; Tue, 20 Aug 2024 18:44:32 +0000 (UTC) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 22B551BF575 for ; Tue, 20 Aug 2024 18:44:31 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 1B4DA4067B for ; Tue, 20 Aug 2024 18:44:31 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id 90drYmr9VE_g for ; Tue, 20 Aug 2024 18:44:30 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=145.40.73.55; helo=sin.source.kernel.org; envelope-from=helgaas@kernel.org; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp4.osuosl.org 8A1294067A DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 8A1294067A Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by smtp4.osuosl.org (Postfix) with ESMTPS id 8A1294067A for ; Tue, 20 Aug 2024 18:44:29 +0000 (UTC) Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 3A033CE094C; Tue, 20 Aug 2024 18:44:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 130A5C4AF17; Tue, 20 Aug 2024 18:44:25 +0000 (UTC) Date: Tue, 20 Aug 2024 13:44:24 -0500 From: Bjorn Helgaas To: Tony Nguyen , Przemek Kitszel Message-ID: <20240820184424.GA216935@bhelgaas> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <782b7159-076a-4064-8333-69c454972b29@kernel.org> X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1724179466; bh=R/txcs1DZkukly3Qa0Vt3JIrM10BbblB1vJcIw6/Yq8=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=rliiBxSjFnjRgV0xG3x/qTaAvHoVWNLmRb0wKuTy2oPrAmwnkwsP22UkvwhsXTIL3 F4dxD5FiaDReJIUlHPyTU2loYJXasYBu20Q2ibWG07aJtW81dvqdfL7NfmUCBCWe2A 9hGNH2HZ+fJnjNWIYGotEr8FUouWMqGFPWocX60/G7eGkr5CY4dql0KmXCXpjHKjEj BeslEFR6tpTI59xZLd7vuRD8/gYfmGPtgUvDWxE1AEOVwghPbQIdiHkeXQtDheq0Wm bA1IXutwpO9Ztp+5LVZdKJtKlKqDO5iAJkAWOOTpKkazVmrgiAdLg+iiqwqNNnP32h RwwsvQ9IRG8/w== X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dmarc=pass (p=quarantine dis=none) header.from=kernel.org X-Mailman-Original-Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=rliiBxSj Subject: Re: [Intel-wired-lan] ACPI IRQ storm with 6.10 X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Linux regressions mailing list , "Rafael J. Wysocki" , Linux kernel mailing list , "linux-acpi@vger.kernel.org" , Petr Valenta , intel-wired-lan@lists.osuosl.org, Bjorn Helgaas , Jiri Slaby , Len Brown Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" [+to Tony, Przemek for e1000e questions; -cc Jesse] On Mon, Aug 19, 2024 at 07:23:42AM +0200, Jiri Slaby wrote: > On 19. 08. 24, 6:50, Jiri Slaby wrote: > > CC e1000e guys + Jesse (due to 75a3f93b5383) + Bjorn (due to b2c289415b2b) > > Bjorn, > > I am confused by these changes: > ========================================== > @@ -291,16 +288,13 @@ static int e1000_set_link_ksettings(struct net_device > *net > dev, > * duplex is forced. > */ > if (cmd->base.eth_tp_mdix_ctrl) { > - if (hw->phy.media_type != e1000_media_type_copper) { > - ret_val = -EOPNOTSUPP; > - goto out; > - } > + if (hw->phy.media_type != e1000_media_type_copper) > + return -EOPNOTSUPP; > > if ((cmd->base.eth_tp_mdix_ctrl != ETH_TP_MDI_AUTO) && > (cmd->base.autoneg != AUTONEG_ENABLE)) { > e_err("forcing MDI/MDI-X state is not supported when > lin > k speed and/or duplex are forced\n"); > - ret_val = -EINVAL; > - goto out; > + return -EINVAL; > } > } > > @@ -347,7 +341,6 @@ static int e1000_set_link_ksettings(struct net_device > *netde > v, > } > > out: > - pm_runtime_put_sync(netdev->dev.parent); > clear_bit(__E1000_RESETTING, &adapter->state); > return ret_val; > } > ========================================== > > So no more clear_bit(__E1000_RESETTING in the above fail paths. Is that > intentional? I don't remember if it was intentional, but the use of __E1000_RESETTING is a bit subtle and I don't know what is correct. Here's how it was used before I changed it with b2c289415b2b, i.e., in https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/intel/e1000e/ethtool.c?id=39f59c72ad3a: e1000_set_link_ksettings(...) { if (hw->phy.ops.check_reset_block(hw)) { ret_val = -EINVAL; goto out; } while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) usleep_range(1000, 2000); if (err) { ret_val = -EINVAL; goto out; } ... out: clear_bit(__E1000_RESETTING, &adapter->state); } In this case, we *always* clear __E1000_RESETTING, even if we bail out before the test_and_set_bit(__E1000_RESETTING). It makes sense to me that we clear __E1000_RESETTING after we've set it via test_and_set_bit() because we know it was set *here*. But it seems wrong to me that we clear __E1000_RESETTING even when we haven't done the test_and_set_bit() because it may have been set by a concurrent thread executing a different operation. e1000_set_ringparam(...) { if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending)) return -EINVAL; while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) usleep_range(1000, 2000); err = e1000e_setup_tx_resources(...); if (err) goto out; ... out: clear_bit(__E1000_RESETTING, &adapter->state); } But here, we *don't* clear __E1000_RESETTING if we bail out before the test_and_set_bit(__E1000_RESETTING). This seems like the correct behavior. In the e1000 driver (not the e1000e driver), e1000_set_link_ksettings() does *not* clear __E1000_RESETTING unless it has already done the test_and_set_bit(). b2c289415b2b changed e1000e to work that way, too. FWIW, 3ef672ab1862 ("e1000e: ethtool unnecessarily takes device out of RPM suspend") changed e1000e e1000_set_link_ksettings() to clear __E1000_RESETTING even when bailing out before the test_and_set_bit(). That part of 3ef672ab1862 looks possibly buggy to me. Bjorn