From patchwork Wed Nov 23 13:38:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rasmus Villemoes X-Patchwork-Id: 24986 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp2802840wrr; Wed, 23 Nov 2022 05:58:06 -0800 (PST) X-Google-Smtp-Source: AA0mqf5baUzaUZYsHvuiDbKVq16lL883eGDSKvAFm+g1OAjshJDgZhGiwUzSHi5YdnpJYuGX3uOB X-Received: by 2002:a17:906:707:b0:7ba:1ec1:ebfc with SMTP id y7-20020a170906070700b007ba1ec1ebfcmr1897594ejb.768.1669211886262; Wed, 23 Nov 2022 05:58:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669211886; cv=none; d=google.com; s=arc-20160816; b=uUbQqbLtKv7H69C2LW3DbshqdNn1f3UPPV7W4jKDv48SVtb0uUbxazK2n8UP6wID78 klSHv5MjoWyPxyFuP8gO7KAMst5OWYRACYE4gwU8rzGq41ddjvMDA7SH30UTtrqP8It/ KuDPtyNsob1n7qEMdk7MsDeEhDb193WDse18sQO8VeUd1T1Nrbzn09I4pPLPy4q5gjF3 m2U6KHPGMtekV/8fgQ/ozK8M6EUeh04UyJ3o7EtZq37TuOnygSNleu5Ydag3VxFkH/yg MSIROXiP+mzGry9gN+ZOi6iMLDbbRa9kC03g6lELPqGZbBjEc1bBjJ3YZDLITil3Aske YV3w== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=wS8FATQNxWPdriQp0BbXocQzCpC+MIR+DcVNfDAhwFk=; b=QaSwZgHxwlxaq713DTtE1uIkDDAMBM7oOiXkF8yOfurKo5cfnzuq4+QcJWtLJQQdU5 DLcbhNxSa5WrD+SR48M/NHNL0/oG+VB6vIlWE/U73SS8fvVOtxGNYtmNz4IhgZA4BcZX WqkIiKVNHe2CFMPXinvN/mh+4g3I71QNLYhX2yRqI95lOnLF+McJSZUne3iuN+xSBqdJ OQS2ZGWAQ8w/zteU/+7fjJz4JlQ2vE6PvmyqmKXI24mOKdeOvlOyNe9HKy2WdBEcwYLa jIYR0cxGP1gewdDqgJJaNXr6J8DM2SDCuksc3TBqaTTxapjh0GMXZxq2Fx9D0FuLx9Wk D9QA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rasmusvillemoes.dk header.s=google header.b=goY0xT6u; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sg34-20020a170907a42200b00791a7e441a3si15936920ejc.459.2022.11.23.05.57.42; Wed, 23 Nov 2022 05:58:06 -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=@rasmusvillemoes.dk header.s=google header.b=goY0xT6u; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237900AbiKWNtq (ORCPT + 99 others); Wed, 23 Nov 2022 08:49:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60498 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237814AbiKWNta (ORCPT ); Wed, 23 Nov 2022 08:49:30 -0500 Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7357F8CBB5 for ; Wed, 23 Nov 2022 05:38:59 -0800 (PST) Received: by mail-lf1-x134.google.com with SMTP id g7so28217795lfv.5 for ; Wed, 23 Nov 2022 05:38:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rasmusvillemoes.dk; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=wS8FATQNxWPdriQp0BbXocQzCpC+MIR+DcVNfDAhwFk=; b=goY0xT6u7EULHQx2MRhg/J+3Xshao0AkK0Kw/Yhep2ABZQKNds0sD0jO44XqILT85D GMpgwtt4t0RcnMdLfGn72E9O9T3qn7XUT2okgutwciPevDbju3FcMf/01ixtJfXX7Iiq fDbqCLjRKHOzrt5uEOMdWfHgwoVRnlv2IfOnw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=wS8FATQNxWPdriQp0BbXocQzCpC+MIR+DcVNfDAhwFk=; b=H16t2hNr4+29EsBEPBiLEhI8+2vdvsOKIarhLWcMxz72eDk+5sO3qRl4ieAE8BR78J paX/DKHw10aZZoQ2LFIJBnf3h5c7ApDTjRvPT8AN1NcASmYTarbHk2Um1qxJ8dqUMb4e /Sxnutbyjb7cfCYCg75voGNBCHo61HugGkzKiRKDrtFFSetRwI4KTSRJbJjp/FKqDkO6 TqD+9+ucVA3hpiOXvYVlZh/VaWN5abWJZYyunTdS0/4k9jnZw6wLHZDZwK0U0Wy9oaH4 XL6cEa2DCe++1/YkaiB/Mb3b98+838lsePjuMonx4ayfWEFhxCRqt8ydjeVoS1TTPDyk 2rBg== X-Gm-Message-State: ANoB5pnbthYKyV3FNLT7RmGFfKOl/CdA4ON/xQ6Q4aaWLulF10DW4Wge MgwRxu6YHeF3yHQGhXX24SMeBQ== X-Received: by 2002:ac2:4bc5:0:b0:4b4:c099:a994 with SMTP id o5-20020ac24bc5000000b004b4c099a994mr7840595lfq.193.1669210737739; Wed, 23 Nov 2022 05:38:57 -0800 (PST) Received: from prevas-ravi.prevas.se ([81.216.59.226]) by smtp.gmail.com with ESMTPSA id r9-20020a2e5749000000b002774e7267a7sm2224924ljd.25.2022.11.23.05.38.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Nov 2022 05:38:57 -0800 (PST) From: Rasmus Villemoes To: Joakim Zhang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Rasmus Villemoes , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] net: fec: don't reset irq coalesce settings to defaults on "ip link up" Date: Wed, 23 Nov 2022 14:38:52 +0100 Message-Id: <20221123133853.1822415-1-linux@rasmusvillemoes.dk> X-Mailer: git-send-email 2.37.2 MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, 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?1750295522916798098?= X-GMAIL-MSGID: =?utf-8?q?1750295522916798098?= Currently, when a FEC device is brought up, the irq coalesce settings are reset to their default values (1000us, 200 frames). That's unexpected, and breaks for example use of an appropriate .link file to make systemd-udev apply the desired settings (https://www.freedesktop.org/software/systemd/man/systemd.link.html), or any other method that would do a one-time setup during early boot. Refactor the code so that fec_restart() instead uses fec_enet_itr_coal_set(), which simply applies the settings that are stored in the private data, and initialize that private data with the default values. Signed-off-by: Rasmus Villemoes Reviewed-by: Andrew Lunn --- drivers/net/ethernet/freescale/fec_main.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index f623c12eaf95..2ca2b61b451f 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -74,7 +74,7 @@ #include "fec.h" static void set_multicast_list(struct net_device *ndev); -static void fec_enet_itr_coal_init(struct net_device *ndev); +static void fec_enet_itr_coal_set(struct net_device *ndev); #define DRIVER_NAME "fec" @@ -1220,8 +1220,7 @@ fec_restart(struct net_device *ndev) writel(0, fep->hwp + FEC_IMASK); /* Init the interrupt coalescing */ - fec_enet_itr_coal_init(ndev); - + fec_enet_itr_coal_set(ndev); } static int fec_enet_ipc_handle_init(struct fec_enet_private *fep) @@ -2856,19 +2855,6 @@ static int fec_enet_set_coalesce(struct net_device *ndev, return 0; } -static void fec_enet_itr_coal_init(struct net_device *ndev) -{ - struct ethtool_coalesce ec; - - ec.rx_coalesce_usecs = FEC_ITR_ICTT_DEFAULT; - ec.rx_max_coalesced_frames = FEC_ITR_ICFT_DEFAULT; - - ec.tx_coalesce_usecs = FEC_ITR_ICTT_DEFAULT; - ec.tx_max_coalesced_frames = FEC_ITR_ICFT_DEFAULT; - - fec_enet_set_coalesce(ndev, &ec, NULL, NULL); -} - static int fec_enet_get_tunable(struct net_device *netdev, const struct ethtool_tunable *tuna, void *data) @@ -3623,6 +3609,10 @@ static int fec_enet_init(struct net_device *ndev) fep->rx_align = 0x3; fep->tx_align = 0x3; #endif + fep->rx_pkts_itr = FEC_ITR_ICFT_DEFAULT; + fep->tx_pkts_itr = FEC_ITR_ICFT_DEFAULT; + fep->rx_time_itr = FEC_ITR_ICTT_DEFAULT; + fep->tx_time_itr = FEC_ITR_ICTT_DEFAULT; /* Check mask of the streaming and coherent API */ ret = dma_set_mask_and_coherent(&fep->pdev->dev, DMA_BIT_MASK(32));