From patchwork Tue Feb 21 02:38:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kai-Heng Feng X-Patchwork-Id: 59706 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1635437wrn; Mon, 20 Feb 2023 18:44:20 -0800 (PST) X-Google-Smtp-Source: AK7set8B65XzmVQapagyiY6/L0pyfSFAZw9NLiiEBKfBzLtNxfb5tTr8/3eoxM0yJ09vvEa8BwVk X-Received: by 2002:a05:6a21:99a2:b0:bc:5fc6:6894 with SMTP id ve34-20020a056a2199a200b000bc5fc66894mr2396434pzb.53.1676947460538; Mon, 20 Feb 2023 18:44:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676947460; cv=none; d=google.com; s=arc-20160816; b=rhzFH/hKJhocNg5HIDwXtE1rX936ubyGz/sSeqFh85R+QwqyonTOzgp/WjXFuaP4hS nkl25rAcg9XkvAyUZNE+cJ1qZTmPM9yvAe+qpMmuHkjaegmYLO/uoW5pTJYXUZIUt0yl AwjcbCazYTxqpog01iQ6L+5CGN1BY+xFVGlNyXBhDKhYCe+4gUHRGq8IJ30GOyRlSvhj pV3uFur6C3klEXAnuTrJqjHt/ATUvnKH3mesh6Dak1o3EUSu3ecWceJ9pvp4ry9U95OE XJ/d9bB7NgvCPHHluiD3MXXDHMVXLPHwtFDWuc6c1lpMbd3+Vv069/jRt8ekOlc73nM1 O9lQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=jXActFRB2e7tUmIdxW8pUWDAQLwCu7muuixpsDg2eGI=; b=YxtW0Q8PvIKz+1LD/EPffNWLtHHaPdajGwm5gaM8WiVHEIb9FXQVnb3VLhPRqUwqyn M1bJo0EqqLdEHOpOppoYEV7MIgNDa7u9SluXWjcAMIGdzW9VfCSUV6ZSnnZyZyUeIEea K7hLWeHdhc/MtdpdW0SoddG3pGcDyKEIZjzyWKx6y0uepjjuLtLCJUgHvkbIa4IhVoub 2hub9TDuK7H8ZnEM0JyAqQSWlpH40yiMEmh6EfXy+dAQb8ltAgN+niE3FKepk9+r9x0M GqhWvK/yieIRMDJLeaD4x20Lb3iU54dPYgCv0W+gf6z696lZHbRKXWWuQkQ0gWjDohVO /Syg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=e4Ciw8nS; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a3-20020a63e843000000b004fb1d903b3csi7678483pgk.37.2023.02.20.18.44.07; Mon, 20 Feb 2023 18:44:20 -0800 (PST) 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=@canonical.com header.s=20210705 header.b=e4Ciw8nS; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232851AbjBUCkD (ORCPT + 99 others); Mon, 20 Feb 2023 21:40:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41986 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233070AbjBUCjs (ORCPT ); Mon, 20 Feb 2023 21:39:48 -0500 Received: from smtp-relay-canonical-0.canonical.com (smtp-relay-canonical-0.canonical.com [185.125.188.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 45999234F4; Mon, 20 Feb 2023 18:39:47 -0800 (PST) Received: from localhost.localdomain (unknown [10.101.196.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id 1F82B406AF; Tue, 21 Feb 2023 02:39:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1676947185; bh=jXActFRB2e7tUmIdxW8pUWDAQLwCu7muuixpsDg2eGI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=e4Ciw8nS8VyWd/Hlq1uY4k0iXL6mawE03a+E7f+uHpGRMxjqcMUZB4A2TCKWs9Rgv 3mQ5xstI8CQbAyu3J53uPXgjTv1xyWdq+tLJiQxHnUL3ZOvknwFS5yii+ppZSL2UQ7 T/dmABd3kAYjP5h+djhbeWZNeUmezY/sju4eS3/Q8eFsFNAJWQqIzbGa/6GaglRup7 U9AZU+YVjrxUkije1FIJBHSBbjxSvCPzlf3v4O4D82Yd+2r8rCexOGoMKJQM5X1L1W g8ZkXRFEOK8KbqJK0bqlYEAEeg/ntBSkZzvf3zZpa6Rn8Pze0i6m8rxbk26cNb+NIv XlDlvgJknCSXw== From: Kai-Heng Feng To: hkallweit1@gmail.com, nic_swsd@realtek.com, bhelgaas@google.com Cc: koba.ko@canonical.com, acelan.kao@canonical.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, sathyanarayanan.kuppuswamy@linux.intel.com, vidyas@nvidia.com, rafael.j.wysocki@intel.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Kai-Heng Feng Subject: [PATCH v8 RESEND 1/6] r8169: Disable ASPM L1.1 on 8168h Date: Tue, 21 Feb 2023 10:38:44 +0800 Message-Id: <20230221023849.1906728-2-kai.heng.feng@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221023849.1906728-1-kai.heng.feng@canonical.com> References: <20230221023849.1906728-1-kai.heng.feng@canonical.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758406860398360098?= X-GMAIL-MSGID: =?utf-8?q?1758406860398360098?= ASPM L1/L1.1 gets enabled based on [0], but ASPM L1.1 was actually disabled too [1]. So also disable L1.1 for better compatibility. [0] https://bugs.launchpad.net/bugs/1942830 [1] https://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-oem/+git/focal/commit/?id=c9b3736de48fd419d6699045d59a0dd1041da014 Signed-off-by: Kai-Heng Feng --- v8: - New patch. drivers/net/ethernet/realtek/r8169_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index 45147a1016bec..1c949822661ae 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -5224,13 +5224,13 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) /* Disable ASPM L1 as that cause random device stop working * problems as well as full system hangs for some PCIe devices users. - * Chips from RTL8168h partially have issues with L1.2, but seem - * to work fine with L1 and L1.1. + * Chips from RTL8168h partially have issues with L1.1 and L1.2, but + * seem to work fine with L1. */ if (rtl_aspm_is_safe(tp)) rc = 0; else if (tp->mac_version >= RTL_GIGA_MAC_VER_46) - rc = pci_disable_link_state(pdev, PCIE_LINK_STATE_L1_2); + rc = pci_disable_link_state(pdev, PCIE_LINK_STATE_L1_1 | PCIE_LINK_STATE_L1_2); else rc = pci_disable_link_state(pdev, PCIE_LINK_STATE_L1); tp->aspm_manageable = !rc; From patchwork Tue Feb 21 02:38:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kai-Heng Feng X-Patchwork-Id: 59707 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1635545wrn; Mon, 20 Feb 2023 18:44:44 -0800 (PST) X-Google-Smtp-Source: AK7set+jHCgWQhn2u55xU/I3xH3fgYfAAikHo3aBCHrjfKw29Z7rA3wNqut7/Q6hDODm6AR6Zu8s X-Received: by 2002:a17:902:ce8e:b0:19a:de35:aeaf with SMTP id f14-20020a170902ce8e00b0019ade35aeafmr4748124plg.40.1676947484415; Mon, 20 Feb 2023 18:44:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676947484; cv=none; d=google.com; s=arc-20160816; b=IJvRbD07TR1ZlBE8urn/Ldm96njdOH8pSsUbWqIx5Bb28PwkDXclG37sZabSgta47A mBO5TTjiL2aHMrl7QGfrRuq0bo7Ck0iF9FU5tW9iWQ76wgVo7BITAy158oigASZdRu79 o5g1C/RGAyL3Ltb7Zf1uFyusU+5NVNB/DobH80kWnnwKLY55Nr+3tw9PmllWmg+Ovq8F eqs0HtieQIOm4DrXJ3+55kwCspZTAHyyJH9hxnmTeVGHTRQ5ETdXnDlgIR0BDh+cGQeQ TfrTP/qF09Uph4MamdYTfz3i4qZ2QtPP2JBbD0HZfLkgTQwkNaIE9IMv+iS0mNgIjNnL SjVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=bhjZxuXkm1MHeyPMkpuHBbBuF0eWs3dLUcdK/gbm22M=; b=y676AJdDympjEE69GARm2kwjI2v/O/bZD1xB6psCHIeN+RQLvUEkqtatrJetuKtioS org5BibShU1WlHPCaMWoyJ2OPqeHBC/dwDgdg7Q07IzWddCBGJKfqzaW/t7U3d4Lv0IS f9eB0B2QAUTez9dgEU9+fFULtfAD/4o23N4O+3gD+mzFXD7jzRQAjZvrVZge50ePTIGf s82ZbAABG6gR1QC6voWBst5RTyEv2g6iFF2xCwVLA0PNnLIg2TRDrtC2ZgS5wR6G8U+8 AwXWUEGiGBAZwOo1nx/W32IkGxQpZYaPXcp9IOQZ3UoBHdBNRlDvrvKNc3jInPRabaCy /22g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=sVFwdem5; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d17-20020a170903231100b001890c6ff018si12954131plh.486.2023.02.20.18.44.32; Mon, 20 Feb 2023 18:44:44 -0800 (PST) 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=@canonical.com header.s=20210705 header.b=sVFwdem5; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233070AbjBUCkH (ORCPT + 99 others); Mon, 20 Feb 2023 21:40:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41884 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233149AbjBUCj7 (ORCPT ); Mon, 20 Feb 2023 21:39:59 -0500 Received: from smtp-relay-canonical-0.canonical.com (smtp-relay-canonical-0.canonical.com [185.125.188.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 84B82448B; Mon, 20 Feb 2023 18:39:53 -0800 (PST) Received: from localhost.localdomain (unknown [10.101.196.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id 0CBC13F158; Tue, 21 Feb 2023 02:39:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1676947192; bh=bhjZxuXkm1MHeyPMkpuHBbBuF0eWs3dLUcdK/gbm22M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sVFwdem5XR4yjnDTanXqgcRjFp2ZadRa79H4Q+MNB5HJuL8btJR+ijuo+BQQu7o78 XWyqtV/FFaNkfXy7Ll3dLUxya5cby2SvtvP3I4XhXL3N2HPTibaRlHB3IjbMjjjhfW 4baW2zpyGyiR0rjJ6E9Fiyntnk1p2g2NAqWZTWDFycwaIXYQlgGhCYvo5jWLOb1o3F Q95vOlWJCiEsivCT2pflGFq9T0m8Bitx7fQ3ND6VDlMEmuGUWDQWP78GHYBoZM3vR/ LjhFV8tiDPbIfYbbvWP+a3VARgT17TdN8jD7NDBS2usVRBMaqQSuNbLBQCf290k99K 3Pfg0plbiPF7g== From: Kai-Heng Feng To: hkallweit1@gmail.com, nic_swsd@realtek.com, bhelgaas@google.com Cc: koba.ko@canonical.com, acelan.kao@canonical.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, sathyanarayanan.kuppuswamy@linux.intel.com, vidyas@nvidia.com, rafael.j.wysocki@intel.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Kai-Heng Feng Subject: [PATCH v8 RESEND 2/6] Revert "PCI/ASPM: Unexport pcie_aspm_support_enabled()" Date: Tue, 21 Feb 2023 10:38:45 +0800 Message-Id: <20230221023849.1906728-3-kai.heng.feng@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221023849.1906728-1-kai.heng.feng@canonical.com> References: <20230221023849.1906728-1-kai.heng.feng@canonical.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758406885314622119?= X-GMAIL-MSGID: =?utf-8?q?1758406885314622119?= This reverts commit ba13d4575da5e656a3cbc18583e0da5c5d865417. This will be used by module once again. Signed-off-by: Kai-Heng Feng --- v8: - New patch. drivers/pci/pcie/aspm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c index 4b4184563a927..692d6953f0970 100644 --- a/drivers/pci/pcie/aspm.c +++ b/drivers/pci/pcie/aspm.c @@ -1372,3 +1372,4 @@ bool pcie_aspm_support_enabled(void) { return aspm_support_enabled; } +EXPORT_SYMBOL(pcie_aspm_support_enabled); From patchwork Tue Feb 21 02:38:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kai-Heng Feng X-Patchwork-Id: 59708 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1635723wrn; Mon, 20 Feb 2023 18:45:13 -0800 (PST) X-Google-Smtp-Source: AK7set+6fhh7cvlVKT+RpW8JJ0tguomx3NypLxuznbqZ/DkYWCwZSPTJri02vRiyPzzsoBHhknDy X-Received: by 2002:a17:90a:47:b0:22c:4f41:bbc2 with SMTP id 7-20020a17090a004700b0022c4f41bbc2mr2433876pjb.5.1676947512717; Mon, 20 Feb 2023 18:45:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676947512; cv=none; d=google.com; s=arc-20160816; b=AW2dkdwAjLU0GBb9bblObFpdgHqa/+n+BzHXa0UDb4H+0Z+n+W8/sL6gXLwEgeIVTb XFWPQRVCta+PtXR8jTS6YSPNE2wPfL339hGmMPnIVfgrc/SRQ3ZmkfbZj19bySlB0LOk KBW38S4vfzzMuN5W651endpo0yThIIw6Kr4adRogj/TyQr/oeDpYZA2VG2Z6EAzxqBqr 7g+xYoz/CZ6Eo+T+w3d7Hw5h34cUTuB+oO5juCb+Yv/NGpnuczlWf9cH4D7mn3eo7hD/ R/5OvFi02WbC4iZVlkhQJ2X4N1G5gM3rqmCiCXNXZLOp0+GhxPfMraAPIuIu6G/82MOT llXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=VxzDHiK0+rolY+k286CzRqUyRlnpqBJ10GA9uRWnSf0=; b=ZoPYpMUQi6m1DKDbjkqa+GJeK8ve6bvN6GNVjk0l9ixBFKeolIHgjRnqMBwOObKgBR kfPKldPO9TBAUrN9l9njv+G6vVQLC7qW0PXnGeLAHTDX37QQvX9bG1ubl+tovYRJoEei e0pA3TwT+fpyxwxW2XcsHmlD8m0GqsFWh3O1liOoCkXZcChCjARPgLNL8MviWwB6RF3R 9/LSuyHViEq/V5ZWb6wDCs07gcqRIj6r+2gGEp/ROZxnZq6aq5e+oTaND6aED8a+tcs0 kmCdoxaNWiZGdnGXOzJ6CvJQCIkvt64g3S/Io/gRVrmhEvy9oQSf/q3Do7f0c56TpIM8 4xwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=hJtKPpRU; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mj22-20020a17090b369600b0022c09c603bdsi595959pjb.118.2023.02.20.18.45.00; Mon, 20 Feb 2023 18:45:12 -0800 (PST) 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=@canonical.com header.s=20210705 header.b=hJtKPpRU; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233088AbjBUCkV (ORCPT + 99 others); Mon, 20 Feb 2023 21:40:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42820 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232289AbjBUCkM (ORCPT ); Mon, 20 Feb 2023 21:40:12 -0500 Received: from smtp-relay-canonical-0.canonical.com (smtp-relay-canonical-0.canonical.com [185.125.188.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6517240F4; Mon, 20 Feb 2023 18:40:00 -0800 (PST) Received: from localhost.localdomain (unknown [10.101.196.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id C67E7406AF; Tue, 21 Feb 2023 02:39:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1676947199; bh=VxzDHiK0+rolY+k286CzRqUyRlnpqBJ10GA9uRWnSf0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hJtKPpRUjQjpQL+im8FJ++7VhAxYbIXvhGnHYZfQ+s9G2wcbMnGxDXnNoUy+ysGV+ vYCiaUt0Gzy/IsOlFKOEOX61y3gA/A3JfMg8/imRJ6BUS1hY+jPr68RoueAdzOzd3/ psYEFmoMMp1uTKCn0fgCREn3zMIAQVowh60oAv7OPqvQSC64ocVTuCTLmALWyM6lv9 qaCJ/owyAftRbJhWyzGQ+3qsT7WgVate4fex7uQhsbDZY31xToZRXlctl5uBbAnf03 wsfR/CiMXtNBGesIFNfOAqBJndilIkVZUEip9yuqfmyvH51PtoTA7biyhOzW+a6RDT ACdC2rGw2QdPQ== From: Kai-Heng Feng To: hkallweit1@gmail.com, nic_swsd@realtek.com, bhelgaas@google.com Cc: koba.ko@canonical.com, acelan.kao@canonical.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, sathyanarayanan.kuppuswamy@linux.intel.com, vidyas@nvidia.com, rafael.j.wysocki@intel.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Kai-Heng Feng Subject: [PATCH v8 RESEND 3/6] PCI/ASPM: Add pcie_aspm_capable() helper Date: Tue, 21 Feb 2023 10:38:46 +0800 Message-Id: <20230221023849.1906728-4-kai.heng.feng@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221023849.1906728-1-kai.heng.feng@canonical.com> References: <20230221023849.1906728-1-kai.heng.feng@canonical.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758406914882185465?= X-GMAIL-MSGID: =?utf-8?q?1758406914882185465?= Introduce a new helper, pcie_aspm_capable(), to report ASPM capability. The user will be introduced by next patch. Acked-by: Bjorn Helgaas Suggested-by: Bjorn Helgaas Signed-off-by: Kai-Heng Feng --- v8: - No change. v7: - Change subject. v6: - No change. v5: - No change. v4: - Report aspm_capable instead. v3: - This is a new patch drivers/pci/pcie/aspm.c | 11 +++++++++++ include/linux/pci.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c index 692d6953f0970..d96bf0a362aa2 100644 --- a/drivers/pci/pcie/aspm.c +++ b/drivers/pci/pcie/aspm.c @@ -1199,6 +1199,17 @@ bool pcie_aspm_enabled(struct pci_dev *pdev) } EXPORT_SYMBOL_GPL(pcie_aspm_enabled); +bool pcie_aspm_capable(struct pci_dev *pdev) +{ + struct pcie_link_state *link = pcie_aspm_get_link(pdev); + + if (!link) + return false; + + return link->aspm_capable; +} +EXPORT_SYMBOL_GPL(pcie_aspm_capable); + static ssize_t aspm_attr_show_common(struct device *dev, struct device_attribute *attr, char *buf, u8 state) diff --git a/include/linux/pci.h b/include/linux/pci.h index adffd65e84b4e..fd56872883e14 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -1692,6 +1692,7 @@ int pci_disable_link_state_locked(struct pci_dev *pdev, int state); void pcie_no_aspm(void); bool pcie_aspm_support_enabled(void); bool pcie_aspm_enabled(struct pci_dev *pdev); +bool pcie_aspm_capable(struct pci_dev *pdev); #else static inline int pci_disable_link_state(struct pci_dev *pdev, int state) { return 0; } @@ -1700,6 +1701,7 @@ static inline int pci_disable_link_state_locked(struct pci_dev *pdev, int state) static inline void pcie_no_aspm(void) { } static inline bool pcie_aspm_support_enabled(void) { return false; } static inline bool pcie_aspm_enabled(struct pci_dev *pdev) { return false; } +static inline bool pcie_aspm_capable(struct pci_dev *pdev) { return false; } #endif #ifdef CONFIG_PCIEAER From patchwork Tue Feb 21 02:38:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kai-Heng Feng X-Patchwork-Id: 59709 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1635987wrn; Mon, 20 Feb 2023 18:46:03 -0800 (PST) X-Google-Smtp-Source: AK7set87wmwpJ+IKxYW5/dkZjY/ljTBKT0u0DpERqUDtRv3fpwiCJiSVEtvflWGUfzXlmHL9URsa X-Received: by 2002:a17:902:f547:b0:19a:c65d:f93 with SMTP id h7-20020a170902f54700b0019ac65d0f93mr1983907plf.53.1676947563163; Mon, 20 Feb 2023 18:46:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676947563; cv=none; d=google.com; s=arc-20160816; b=IA2MF2L9wt8iYZ5AflTYDPky1cKy0Nv3ygXvQTiy1yOlbz7BZAo3mv+ph24O5YH7qv KcIW7zomnvpOHpH5v5+JBykgnHC71IFbE+ExlKOlr/DgZohpG7ARLiPsLoVukoTSRRuF XHLXjkmWAMjYor/bWP91trQNCoBn5d5ie9nAdiDcxAd5YTzFE6W9/AtYiD6VJ+79F3CQ PqJauz27vGHIw3ykP+/ymlQaVeqW+KY4whwinMkw5GY7nAJHuIn6zIHlCt92R73iHNoy mv1UnjfeC98FS8cJHUL8m1Z46WgI2vEMwn9ZeL3dDSRcJns8jHjYvPyoqzmYuDC/DO3g 5Nvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=pNqvuelCqk4rJCSN7tzVgxEDAb98YmVWBtwNCRfo4Z4=; b=mXCcNtDLQ8PDHmJkIfrn2E8pbGNk1PJbvCmSZG/nx3CcZyP1YLnCq19vxvLVWjTyrn Lkl6E07SXLatP+NYqfoMyPpikI6jCgk1b4ednsbgbeQf5AACkAm6h6F8s8gQhG5fh2Ys QH8Mkr6FuJSs2Fm7EoG1o3Wh7Cke1pX4pPNsNheEwHTu2TjRZ0gAAL4VxBwtTu7MzPV0 ZHoEWxegInnu2ZZagxdEIV+ZO71+RAb1lckIFAw1WYpaJLZoiTKLOA43gv7TMdOJGzOm FnzIp9VnHgbn5NkFgVeSkXjc+/JkHmzx8CvVu2u0zEFSRaQVJ3ZJDHX/jOB8UN+9cAi4 SKxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=MwBE1XbJ; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p15-20020a170902e74f00b00188fead2329si13050859plf.135.2023.02.20.18.45.50; Mon, 20 Feb 2023 18:46:03 -0800 (PST) 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=@canonical.com header.s=20210705 header.b=MwBE1XbJ; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233061AbjBUCkX (ORCPT + 99 others); Mon, 20 Feb 2023 21:40:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43042 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233132AbjBUCkT (ORCPT ); Mon, 20 Feb 2023 21:40:19 -0500 Received: from smtp-relay-canonical-0.canonical.com (smtp-relay-canonical-0.canonical.com [185.125.188.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 45E1E2366F; Mon, 20 Feb 2023 18:40:06 -0800 (PST) Received: from localhost.localdomain (unknown [10.101.196.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id E0B313F158; Tue, 21 Feb 2023 02:39:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1676947204; bh=pNqvuelCqk4rJCSN7tzVgxEDAb98YmVWBtwNCRfo4Z4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MwBE1XbJiP9QiFG4cII20s/diEPXbwaB7gsgsu+UAmZvNnvs91uPrPygCCwNxU0bL ZPix4E3Shilh7Har52hC6wziquvj2bgg7Gg31P5Vxi6O/XputkUIPujcnZZN+pUqGy 4Pi+uNKUdRUf0ACaziyc4RcHBGtefCBh2ifWCFoSnbnVSys1UJUtVudQKYExPBi4nU N3PvQe93TZAVWjPfkJfygfad/vB4SoX0IWG/YWBF96pvfZHGkUMMXnUiMX1NVTRTfQ TP1VGq/1IzBYWQR7uQRbMwS42IyiEEBdFDDv/zK2s7J8V2TGfYQJjbV+NvgvTgAzHy a8Uk9iUKnVPBg== From: Kai-Heng Feng To: hkallweit1@gmail.com, nic_swsd@realtek.com, bhelgaas@google.com Cc: koba.ko@canonical.com, acelan.kao@canonical.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, sathyanarayanan.kuppuswamy@linux.intel.com, vidyas@nvidia.com, rafael.j.wysocki@intel.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Kai-Heng Feng Subject: [PATCH v8 RESEND 4/6] r8169: Consider chip-specific ASPM can be enabled on more cases Date: Tue, 21 Feb 2023 10:38:47 +0800 Message-Id: <20230221023849.1906728-5-kai.heng.feng@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221023849.1906728-1-kai.heng.feng@canonical.com> References: <20230221023849.1906728-1-kai.heng.feng@canonical.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758406968074023443?= X-GMAIL-MSGID: =?utf-8?q?1758406968074023443?= To really enable ASPM on r8169 NICs, both standard PCIe ASPM and chip-specific ASPM have to be enabled at the same time. Before enabling ASPM at chip side, make sure the following conditions are met: 1) Use pcie_aspm_support_enabled() to check if ASPM is disabled by kernel parameter. 2) Use pcie_aspm_capable() to see if the device is capable to perform PCIe ASPM. 3) Check the return value of pci_disable_link_state(). If it's -EPERM, it means BIOS doesn't grant ASPM control to OS, and device should use the ASPM setting as is Consider ASPM is manageable when those conditions are met. While at it, disable ASPM at chip-side for TX timeout reset, since pci_disable_link_state() doesn't have any effect when OS isn't granted with ASPM control. Signed-off-by: Kai-Heng Feng --- v8: - Enable chip-side ASPM only when PCIe ASPM is already available. - Wording. v7: - No change. v6: - Unconditionally enable chip-specific ASPM. v5: - New patch. drivers/net/ethernet/realtek/r8169_main.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index 1c949822661ae..e40498dd08d17 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -2675,8 +2675,11 @@ static void rtl_disable_exit_l1(struct rtl8169_private *tp) static void rtl_hw_aspm_clkreq_enable(struct rtl8169_private *tp, bool enable) { - /* Don't enable ASPM in the chip if OS can't control ASPM */ - if (enable && tp->aspm_manageable) { + /* Skip if PCIe ASPM isn't possible */ + if (!tp->aspm_manageable) + return; + + if (enable) { RTL_W8(tp, Config5, RTL_R8(tp, Config5) | ASPM_en); RTL_W8(tp, Config2, RTL_R8(tp, Config2) | ClkReqEn); @@ -4545,8 +4548,13 @@ static void rtl_task(struct work_struct *work) /* ASPM compatibility issues are a typical reason for tx timeouts */ ret = pci_disable_link_state(tp->pci_dev, PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_L0S); + + /* OS may not be granted to control PCIe ASPM, prevent the driver from using it */ + tp->aspm_manageable = 0; + if (!ret) netdev_warn_once(tp->dev, "ASPM disabled on Tx timeout\n"); + goto reset; } @@ -5227,13 +5235,19 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) * Chips from RTL8168h partially have issues with L1.1 and L1.2, but * seem to work fine with L1. */ - if (rtl_aspm_is_safe(tp)) + if (!pcie_aspm_support_enabled() || !pcie_aspm_capable(pdev)) + rc = -EINVAL; + else if (rtl_aspm_is_safe(tp)) rc = 0; else if (tp->mac_version >= RTL_GIGA_MAC_VER_46) rc = pci_disable_link_state(pdev, PCIE_LINK_STATE_L1_1 | PCIE_LINK_STATE_L1_2); else rc = pci_disable_link_state(pdev, PCIE_LINK_STATE_L1); - tp->aspm_manageable = !rc; + + /* -EPERM means BIOS doesn't grant OS ASPM control, ASPM should be use + * as is. Honor it. + */ + tp->aspm_manageable = (rc == -EPERM) ? 1 : !rc; tp->dash_type = rtl_check_dash(tp); From patchwork Tue Feb 21 02:38:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kai-Heng Feng X-Patchwork-Id: 59710 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1636017wrn; Mon, 20 Feb 2023 18:46:09 -0800 (PST) X-Google-Smtp-Source: AK7set+nBAc0NxvLiHbusK27fUWyIQu1XDwOpyL4Xk1aE7h++QzLIt3j3ibWEyh2geQ1eWc6mG6/ X-Received: by 2002:a05:6a20:914d:b0:b8:78dd:5fa2 with SMTP id x13-20020a056a20914d00b000b878dd5fa2mr14707683pzc.52.1676947568844; Mon, 20 Feb 2023 18:46:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676947568; cv=none; d=google.com; s=arc-20160816; b=c7/5KrEsMsCWExOvzEk6hEaE2zupDWkYZabtF86pxUUi7NbOcm4gqvOMw4wNHGSdvw 5sPHUJWvnAfqiLwgVg0iJN4KmqpFwhLiBqkBqrXy6K1MG5H3tEHnFdrMY84d5/6yBGFb ELxXlxszrOwICtT4wcsWeQoK1yy52mVPRomV9+pK4gopQoSks/PGL3yBr7bF8t12BxfD gZOmLFFoGIwTYsZAH1Z6ouf4ntm4w4OPlhbmUStifklcY+51Oxsw6MZ/kgzCVRiVA4+W hpradLuA2EWSUtjT/Vd8xNBRP+CC9fWCTF2wynG31VM/pSpfz59D9oHXNmB6HR17bO3V w7Yg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ezbPlxDXhaV/sDJAItoixMIy3dMW2xrI6AAH/J1Y45I=; b=A3VQ3tR9JcbvZurowDLdCRe1d46nfF/fMl1oK2Ia9xHCj3Pe0/XkoGC4IJ9zLUkS+1 Cad8OEhuQbeQrJJeK3M7DxWkCgQK8SjlRcdh+Dq9Hzsde7qmc9wTYHPCsKnpwVYijgHd gQx2HI9n16E8YVJmjhNclaf5hpWwGf+Nvwf4Z0E6FkZbLQJBjQz07T93MFIthsgI0kON cMymSIYso8yDxucWVnpJyRBuashoBMOSd9Ud/4qHv/HqmBZwIAiyYTULeBbXt8pnhgod qouMsu8hOIKChUDgrXyacoCocF+KJpCexOGHonmkfBw7U6OedMLAKiGeGVGZ41bV6vzO 3V1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=ETctbcQN; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i8-20020a632208000000b00502d6f5fb2dsi1401005pgi.805.2023.02.20.18.45.56; Mon, 20 Feb 2023 18:46:08 -0800 (PST) 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=@canonical.com header.s=20210705 header.b=ETctbcQN; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233144AbjBUCkm (ORCPT + 99 others); Mon, 20 Feb 2023 21:40:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233134AbjBUCk3 (ORCPT ); Mon, 20 Feb 2023 21:40:29 -0500 Received: from smtp-relay-canonical-0.canonical.com (smtp-relay-canonical-0.canonical.com [185.125.188.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D3A323671; Mon, 20 Feb 2023 18:40:12 -0800 (PST) Received: from localhost.localdomain (unknown [10.101.196.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id 9232F3F2FE; Tue, 21 Feb 2023 02:40:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1676947210; bh=ezbPlxDXhaV/sDJAItoixMIy3dMW2xrI6AAH/J1Y45I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ETctbcQNZLeQqgunhUqAiRSQAKR3iGoZpdxkpmEZjAHKoOakaT7ya1hEzA2o0NASo dYyNakLLya0F3VYLRyHMoJeuijhEdN1oxOlgwP3WZcRYU2lMK7M6pt6sAMoVvh6B+k uGbVNCPJ0LW9DwUtNFSszrq4/x23ZbY6QP+rD9Ri8nVGLrOuYj+dxnc/ubk3Yfi0av ACphm8gvbwhrEt6Xpc7VdLj6u8SLkKrO2a1Wv5s0YejhzmLg5C1WuaueFPtpoHnMk2 SpVszJOfpjtbMDukuMMcUiAloOXTmS2RM3RnqIVuEWnlUPjdCzhtNTb+LIA6imIxwW t5L8kQJCAztVQ== From: Kai-Heng Feng To: hkallweit1@gmail.com, nic_swsd@realtek.com, bhelgaas@google.com Cc: koba.ko@canonical.com, acelan.kao@canonical.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, sathyanarayanan.kuppuswamy@linux.intel.com, vidyas@nvidia.com, rafael.j.wysocki@intel.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Kai-Heng Feng Subject: [PATCH v8 RESEND 5/6] r8169: Use mutex to guard config register locking Date: Tue, 21 Feb 2023 10:38:48 +0800 Message-Id: <20230221023849.1906728-6-kai.heng.feng@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221023849.1906728-1-kai.heng.feng@canonical.com> References: <20230221023849.1906728-1-kai.heng.feng@canonical.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758406974141659018?= X-GMAIL-MSGID: =?utf-8?q?1758406974141659018?= Right now r8169 doesn't have parallel access to its config register, but the next patch makes the driver access config register at anytime. So add a mutex to protect the config register from any potential race. Signed-off-by: Kai-Heng Feng --- v8: - Swap the place when using the mutex. Protect when config register is unlocked. v7: - This is a new patch. drivers/net/ethernet/realtek/r8169_main.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index e40498dd08d17..897f90b48bba6 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -613,6 +613,8 @@ struct rtl8169_private { struct work_struct work; } wk; + struct mutex config_lock; + unsigned supports_gmii:1; unsigned aspm_manageable:1; dma_addr_t counters_phys_addr; @@ -662,10 +664,12 @@ static inline struct device *tp_to_dev(struct rtl8169_private *tp) static void rtl_lock_config_regs(struct rtl8169_private *tp) { RTL_W8(tp, Cfg9346, Cfg9346_Lock); + mutex_unlock(&tp->config_lock); } static void rtl_unlock_config_regs(struct rtl8169_private *tp) { + mutex_lock(&tp->config_lock); RTL_W8(tp, Cfg9346, Cfg9346_Unlock); } @@ -5217,6 +5221,8 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) return rc; } + mutex_init(&tp->config_lock); + tp->mmio_addr = pcim_iomap_table(pdev)[region]; xid = (RTL_R32(tp, TxConfig) >> 20) & 0xfcf; From patchwork Tue Feb 21 02:38:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kai-Heng Feng X-Patchwork-Id: 59713 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1636474wrn; Mon, 20 Feb 2023 18:47:41 -0800 (PST) X-Google-Smtp-Source: AK7set/mR/tDiIT+n1t4RPEi65XJFLLSD9MYKHUEf+5y2LWu3+EXo23guduKsfj3bJdhk9X/m7fX X-Received: by 2002:a05:6a20:3948:b0:b8:90aa:1956 with SMTP id r8-20020a056a20394800b000b890aa1956mr13534512pzg.20.1676947660941; Mon, 20 Feb 2023 18:47:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676947660; cv=none; d=google.com; s=arc-20160816; b=PFJlNPKHnT88IbI0UQ6MGCI+wdHx5dS4z0rY1CEZfANPh3YMHAK7FNbq4iwhXKm+K8 VHntsM0gJ7qn5/H1k/d6V+nHMMa6cTMgV88phk8OIDSL76FLE3pRVR8oWU/hFQ5TN+NQ 7dV1m41t8vUw2/g9hy8OP0+HmXYBr9Lr8hGF3xcL6Um2uUr/WcACPfh8Qa3XwWzFfSj8 auVCLq3W/IrH7lxpYjFN2FqVGae7OqR0xuETyqJ8jUv0+mj2zOt/qmqtemiLt5+S/A/3 ZcM1p1Gv2GqNYrDH787FCBc/d+IQXosxMrKKuOc/B+/MVMlqb5aYsVD77JSHnsIosJQi sNyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Y882fDTAJIgU0c6v4mvBEAwTf+dckq3a6RQpDpIIC1Y=; b=Tu/Au0yKkR/cG9fBqpETwA0RkLVPN3jIK6F1ypZ7qW/2kfLzpKdaw4u6q3B/Fbv9ti ApOeGgCwkJ7WucLC7vwHMwDRohQ5oyvp6nDiDnt4eLMyOBBb50Mdh+1PmzUjOP6cfCsc 7VAqJInXn+dvkgclrgidb9KBFO3VCWJerAWOLoe3UwKNuL67iyPX4+dc88ftTNk8wEtu fVYNQ9qD1UWRaxyh9TOGWkGZ10o/Nd0Cn3lVcyjVH76V40ZGpqqnmsR++nq1g59Lt+F+ Fs40nUhW8iwS4uwqDnghCzL1e9VvMzVDnla1mdpY4nijyO9ab3Nn+sRKKTWF8dCQPzVC 6YTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canonical.com header.s=20210705 header.b=F7csYykf; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l190-20020a6388c7000000b004fc238851cfsi15622507pgd.208.2023.02.20.18.47.28; Mon, 20 Feb 2023 18:47:40 -0800 (PST) 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=@canonical.com header.s=20210705 header.b=F7csYykf; 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=pass (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233096AbjBUCkz (ORCPT + 99 others); Mon, 20 Feb 2023 21:40:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43726 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233127AbjBUCkr (ORCPT ); Mon, 20 Feb 2023 21:40:47 -0500 Received: from smtp-relay-canonical-0.canonical.com (smtp-relay-canonical-0.canonical.com [185.125.188.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CCEAE23669; Mon, 20 Feb 2023 18:40:17 -0800 (PST) Received: from localhost.localdomain (unknown [10.101.196.174]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPSA id 3B5F2400DA; Tue, 21 Feb 2023 02:40:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1676947215; bh=Y882fDTAJIgU0c6v4mvBEAwTf+dckq3a6RQpDpIIC1Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=F7csYykfZy3BthhUwy2nS9QY4r8gF3p54jqSejU0psKN7oL0FF86NA4/9YDxPGnXm UzhznvkOoRHjx7zCuNGpzEh14Th+cKXvP0t7ZqsEwHDAvtjBdUtG4vZrLmbW6jwuSf 1UYQkGFLh2s/q3jnzztcGdYl8NHUTl57GjmRmoB9KHg7Q0ZlXRXjNnqxtV0ffJiTPQ i+4Yzw1Y3f4B0E5c0Yntk+80AAEngFYnW12VcGSgvn2ffnwqh/E7vMLp6RleXKUx4s g+EUQ8IkC6DUigxYMRH1ZdTRiX8SZTdg+zwxDObE32P1LTOz6GiRV66TbmzUjuc0fg WA6/e7c7zPGFA== From: Kai-Heng Feng To: hkallweit1@gmail.com, nic_swsd@realtek.com, bhelgaas@google.com Cc: koba.ko@canonical.com, acelan.kao@canonical.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, sathyanarayanan.kuppuswamy@linux.intel.com, vidyas@nvidia.com, rafael.j.wysocki@intel.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Kai-Heng Feng Subject: [PATCH v8 RESEND 6/6] r8169: Disable ASPM while doing NAPI poll Date: Tue, 21 Feb 2023 10:38:49 +0800 Message-Id: <20230221023849.1906728-7-kai.heng.feng@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221023849.1906728-1-kai.heng.feng@canonical.com> References: <20230221023849.1906728-1-kai.heng.feng@canonical.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758407070673760877?= X-GMAIL-MSGID: =?utf-8?q?1758407070673760877?= NAPI poll of Realtek NICs don't seem to perform well ASPM is enabled. The vendor driver uses a mechanism called "dynamic ASPM" to toggle ASPM based on the packet number in given time period. Instead of implementing "dynamic ASPM", use a more straightforward way by disabling ASPM during NAPI poll, as a similar approach was implemented to solve slow performance on Realtek wireless NIC, see commit 24f5e38a13b5 ("rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE"). Since NAPI poll should be handled as fast as possible, also remove the delay in rtl_hw_aspm_clkreq_enable() which was added by commit 94235460f9ea ("r8169: Align ASPM/CLKREQ setting function with vendor driver"). Signed-off-by: Kai-Heng Feng --- v8: - New patch. drivers/net/ethernet/realtek/r8169_main.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index 897f90b48bba6..4d4a802346ae3 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -2711,8 +2711,6 @@ static void rtl_hw_aspm_clkreq_enable(struct rtl8169_private *tp, bool enable) RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~ClkReqEn); RTL_W8(tp, Config5, RTL_R8(tp, Config5) & ~ASPM_en); } - - udelay(10); } static void rtl_set_fifo_size(struct rtl8169_private *tp, u16 rx_stat, @@ -4577,6 +4575,12 @@ static int rtl8169_poll(struct napi_struct *napi, int budget) struct net_device *dev = tp->dev; int work_done; + if (tp->aspm_manageable) { + rtl_unlock_config_regs(tp); + rtl_hw_aspm_clkreq_enable(tp, false); + rtl_lock_config_regs(tp); + } + rtl_tx(dev, tp, budget); work_done = rtl_rx(dev, tp, budget); @@ -4584,6 +4588,12 @@ static int rtl8169_poll(struct napi_struct *napi, int budget) if (work_done < budget && napi_complete_done(napi, work_done)) rtl_irq_enable(tp); + if (tp->aspm_manageable) { + rtl_unlock_config_regs(tp); + rtl_hw_aspm_clkreq_enable(tp, true); + rtl_lock_config_regs(tp); + } + return work_done; }