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 7BA11CD5BC7 for ; Thu, 5 Sep 2024 14:03:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=6yg3+jwU4jsvMwPvd27IzjCRFri5P2daDxYa2vfW+fU=; b=1/flvUVRwIc9ZL090z28fvmV/V dk8N9+a9sF0MRwWq6aX8bStT2WUtblEkHYcC/YQ5yE7XVX9d5dll8cO5ENIXf24X6ROl/trx0JhCI MWDJZGk0us4Qd90Q23dGQJRLOOr4lUap4y6xPlwbY4LdSx921DNl/P05a8wFuv2IBpOW/jThlGad1 oBzPYwCHd5bzKJdj1AqkHx3Hft1BVp9IYavGnZCe1/q3Cw8F5wbOZBYoBkggUXo2S7NEne7JUDSS8 lvUQZ9GvSqZTjaNQvy63Yr4Vc03xDb/ku33+DloqVa6ojANE3a9I5q019z03duq0jh/lLletIaNdx JDRmKVKg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1smD5F-00000008czt-2b41; Thu, 05 Sep 2024 14:03:37 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1smD4G-00000008cmx-47E9 for linux-arm-kernel@lists.infradead.org; Thu, 05 Sep 2024 14:02:38 +0000 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-5c243ef5237so122019a12.3 for ; Thu, 05 Sep 2024 07:02:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725544955; x=1726149755; darn=lists.infradead.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=6yg3+jwU4jsvMwPvd27IzjCRFri5P2daDxYa2vfW+fU=; b=kOzZLneHylARLD6w3KuGgdBeMFp+t8A9yiAyI37PNABDUhSWJw0D4etAWpIe7oObFA 3ghiPwuMbTpjuaL8y1glSoFGT+a3JD08HU/2xhnYAJGmpF/QeguxuvXJFK+bvERIhWlI 4MANnk4p8t0MyeAIWrKOV+40crlAiKx6XgtZh8taQVkCILQWiFMjb06G+HKK9NACFfem uAaZvh67GlGdKTLGcx6agI4NPk780Dv06nlcwukv2n7kKfKTrnNVA+F1rOt/72oN9Hrj oDTCHEhwB/d8Bvr/o0bjAXyov3bdd1/PD/ErxWAT6xd7DFpzXwZoTrB6QAeWfn4EtwtS zyyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725544955; x=1726149755; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=6yg3+jwU4jsvMwPvd27IzjCRFri5P2daDxYa2vfW+fU=; b=Thj988Mhew2tm4AsKFySAJlgJXFP5i7sVzg6s7RP6GU9Ht71Xi8MWU2+d3xfvAQMJh 7L9QbT4qLVXt0Mc5ScrBSvLDV4iRoI2snqMmilYIArH/Q2b6gDpUJL3mMOqvFW1vHbX4 gnnMzVBnP6mP0jMzh2im7f4NwtsGaPdZe6NREMRctDCVZhyr6E7pdwFOU1Xs/xyQK8Y7 AzmKTkHrY0v0f412/HQDSlT5SBNpod1v1MKvu2K9HhnJcbrQml+ZRxH5HGkcx6aZFBF2 KrZFg+ENZFp3g7pmtEsiDFV67W6A/v8MCs1LFdhWjWGADhYDj3KOeVE/iI+MLVV6rog6 T/Ag== X-Forwarded-Encrypted: i=1; AJvYcCU2OtE+MufsngVVLFwPl6goU703INL2K5AGIT9RSK+/7qvo9Ubx9jlvfFod0ZGG3iNnyu9u7VZt4UwiZMLzYdTY@lists.infradead.org X-Gm-Message-State: AOJu0YzTt4UqYyU1qPHVUQ7YMKB+ZrxdzOO6WaFlqn2gTnreZNnAeBaZ cDiIy9CY5JSvN52fgkLtdTHAInFExp8RHzJijZKJPTtNegDgu0Nf X-Google-Smtp-Source: AGHT+IFTHXZF/Kygyg2GeFlEexjRun07g46Rg8fnTdbK4URXrkrQG0hN6dN+YvbeF08Vd52ORQadgQ== X-Received: by 2002:a05:6402:2687:b0:5c3:c42e:d5f2 with SMTP id 4fb4d7f45d1cf-5c3c42edc9cmr2009136a12.1.1725544953626; Thu, 05 Sep 2024 07:02:33 -0700 (PDT) Received: from skbuf ([188.25.134.29]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5c3cc6a51d1sm1270730a12.89.2024.09.05.07.02.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Sep 2024 07:02:32 -0700 (PDT) Date: Thu, 5 Sep 2024 17:02:30 +0300 From: Vladimir Oltean To: Furong Xu <0x1207@gmail.com> Cc: Alexander Lobakin , Serge Semin , "David S. Miller" , Alexandre Torgue , Jose Abreu , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Maxime Coquelin , Joao Pinto , netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, rmk+kernel@armlinux.org.uk, linux@armlinux.org.uk, xfr@outlook.com Subject: Re: [PATCH net-next v8 5/7] net: stmmac: support fp parameter of tc-mqprio Message-ID: <20240905140230.42bdnndi5fn5ifmi@skbuf> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240905_070237_064779_F0802F54 X-CRM114-Status: GOOD ( 18.36 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, Sep 05, 2024 at 03:02:26PM +0800, Furong Xu wrote: > tc-mqprio can select whether traffic classes are express or preemptible. > > After some traffic tests, MAC merge layer statistics are all good. > > Local device: > ethtool --include-statistics --json --show-mm eth1 > [ { > "ifname": "eth1", > "pmac-enabled": true, > "tx-enabled": true, > "tx-active": true, > "tx-min-frag-size": 60, > "rx-min-frag-size": 60, > "verify-enabled": true, > "verify-time": 100, > "max-verify-time": 128, > "verify-status": "SUCCEEDED", > "statistics": { > "MACMergeFrameAssErrorCount": 0, > "MACMergeFrameSmdErrorCount": 0, > "MACMergeFrameAssOkCount": 0, > "MACMergeFragCountRx": 0, > "MACMergeFragCountTx": 35105, > "MACMergeHoldCount": 0 > } > } ] > > Remote device: > ethtool --include-statistics --json --show-mm end1 > [ { > "ifname": "end1", > "pmac-enabled": true, > "tx-enabled": true, > "tx-active": true, > "tx-min-frag-size": 60, > "rx-min-frag-size": 60, > "verify-enabled": true, > "verify-time": 100, > "max-verify-time": 128, > "verify-status": "SUCCEEDED", > "statistics": { > "MACMergeFrameAssErrorCount": 0, > "MACMergeFrameSmdErrorCount": 0, > "MACMergeFrameAssOkCount": 35105, > "MACMergeFragCountRx": 35105, > "MACMergeFragCountTx": 0, > "MACMergeHoldCount": 0 > } > } ] > > Tested on DWMAC CORE 5.10a > > Signed-off-by: Furong Xu <0x1207@gmail.com> > --- > +int dwmac5_fpe_map_preemption_class(struct net_device *ndev, > + struct netlink_ext_ack *extack, u32 pclass) > +{ > + u32 offset, count, val, preemptible_txqs = 0; > + struct stmmac_priv *priv = netdev_priv(ndev); > + u32 num_tc = ndev->num_tc; > + > + if (!pclass) > + goto update_mapping; > + > + /* DWMAC CORE4+ can not program TC:TXQ mapping to hardware. > + * > + * Synopsys Databook: > + * "The number of Tx DMA channels is equal to the number of Tx queues, > + * and is direct one-to-one mapping." > + */ > + for (u32 tc = 0; tc < num_tc; tc++) { > + count = ndev->tc_to_txq[tc].count; > + offset = ndev->tc_to_txq[tc].offset; > + > + if (pclass & BIT(tc)) > + preemptible_txqs |= GENMASK(offset + count - 1, offset); > + > + /* This is 1:1 mapping, go to next TC */ > + if (count == 1) > + continue; > + > + if (priv->plat->tx_sched_algorithm == MTL_TX_ALGORITHM_SP) { > + NL_SET_ERR_MSG_MOD(extack, ALG_ERR_MSG); > + return -EINVAL; > + } > + > + u32 queue_weight = priv->plat->tx_queues_cfg[offset].weight; Please do not put variable declarations in the middle of the scope. Declare "u32 queue_weight" separately and just keep the assignment here. > + > + for (u32 i = 1; i < count; i++) { > + if (priv->plat->tx_queues_cfg[offset + i].weight != > + queue_weight) { > + NL_SET_ERR_MSG_FMT_MOD(extack, WEIGHT_ERR_MSG, > + queue_weight, tc); > + return -EINVAL; > + } > + } > + } > + > +update_mapping: > + val = readl(priv->ioaddr + MTL_FPE_CTRL_STS); > + writel(u32_replace_bits(val, preemptible_txqs, DWMAC5_PREEMPTION_CLASS), > + priv->ioaddr + MTL_FPE_CTRL_STS); > + > + return 0; > +} Otherwise: Reviewed-by: Vladimir Oltean