Message ID | 5606bb5f0b7566a20bb136b268dae89d22a48898.1706184304.git.esben@geanix.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-38585-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2553:b0:103:945f:af90 with SMTP id p19csp1606205dyi; Thu, 25 Jan 2024 04:35:38 -0800 (PST) X-Google-Smtp-Source: AGHT+IHE9gnLWRg1A7MvHU5/gJDX2fn4+NqzxOrC+JfE44GEei4E9e0uVM1Xq3Zi2pYsDdLu74kk X-Received: by 2002:a17:906:66c5:b0:a30:420f:447b with SMTP id k5-20020a17090666c500b00a30420f447bmr507769ejp.7.1706186137725; Thu, 25 Jan 2024 04:35:37 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706186137; cv=pass; d=google.com; s=arc-20160816; b=pauvX0IWUDkVYa2wVtDo8vbtj82f1pAqZGvkq4nalJC0BXMt7aFhdbCTy9KewdW2Qj hHqXGTjvxDlSaeX/gdQdItUkQNEPvKd6wzgsIDNH9kFlvMJ0su8deC/a8HRvkxU7fUB5 pXQwLexfxMoATuHlCXx0wWpeNdDUZY3fVPhlhmBpxXzkfzvXWCsx2lhos8Cn6JF1+OLo WXxt2Cc2LyZ9u4FV0zxi3Kfp9dXhH5ozoneUu6N+Gwii3xs1CLbPl/7Hs18DlKsxovHR s/tfPsM3xKaOvZY9iQJG9M/8B37sUvfZCPMW7ZQv9QhpTCNtM+UaTkb4ak62qv5GPZj4 1Opg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=RGm3cvG/FSHbu0unNfOng+T3r1yzerASsV1ePVGWH6w=; fh=xieqOkp8q2OgCm0F4rE7GOdaj0R3bkNbYnWAhDr3/Qs=; b=P2ssJlVaFrAuUIGpmQSr+hHStfBFQrcaA6CJxKSZHI7HbawEjUebhlgfBIB4IjkaTQ aUSyRzmW3CBUDhbmmPi8OguCZYxY108LjQfdVwEGkITSrAPVC3phsYGbiyBUt32lYDCK rEfzrUjfmrIsxUt1x4BBzQeypHApAV9tiV3zEseiQ9Pu+/dbN1lSB78AJR6iSKLaFaed 74PJ8N1eTF74kAZrbxf53IAhIdkB3sc/t5Ngoy59Iuo9W/OBr19kuMx6l74/NooNgTZW 9gfLL8PvlstI0/OkWfRAcxoMY95lxLd55TeWUKB8EPcdYCxB6xVa6xn6GqqkAGWMzTZX +elg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@geanix.com header.s=default2211 header.b=TJlznXiO; arc=pass (i=1 spf=pass spfdomain=geanix.com dkim=pass dkdomain=geanix.com dmarc=pass fromdomain=geanix.com); spf=pass (google.com: domain of linux-kernel+bounces-38585-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-38585-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=geanix.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id q25-20020a17090622d900b00a3192f55d64si259596eja.1032.2024.01.25.04.35.37 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jan 2024 04:35:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-38585-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@geanix.com header.s=default2211 header.b=TJlznXiO; arc=pass (i=1 spf=pass spfdomain=geanix.com dkim=pass dkdomain=geanix.com dmarc=pass fromdomain=geanix.com); spf=pass (google.com: domain of linux-kernel+bounces-38585-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-38585-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=geanix.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 5998F1F22BEC for <ouuuleilei@gmail.com>; Thu, 25 Jan 2024 12:35:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2750950273; Thu, 25 Jan 2024 12:34:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b="TJlznXiO" Received: from www530.your-server.de (www530.your-server.de [188.40.30.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0FA5F481BA; Thu, 25 Jan 2024 12:34:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=188.40.30.78 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706186082; cv=none; b=rXunSPnh6u+bpMpCdNNMcotQVOZams5BxYLJBn4PxDxs2n+1VU5b/qBgv2ABUVtcuBgNKOOvErfYQrCDpevP5q1D6kLBYHNAY1515myKdCZlQwvpgD1N24KIlQM6PLEyVdX7j5zaY27zXoQlCZWB/zVXTWf3QQTqeTNv2zi8cr8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706186082; c=relaxed/simple; bh=9hpKHMzKfhCYbcecGtWjsCp6NQXfEDCbwraey3X3VO0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=I6OCSWnoLAMXQRRktkv4ZG2hyCNvZfwhi7IXbJ+gSlmNRX1CD/AXPMXuqgaPNu2MuJaiK8cZzVHPkUThlS6G2YkK+lo1Smg+jpr3WW05GrRFVoNgHazp0HioAY28GMtbky2u1MQDCWGfLcqpSIf8lQ5obioYnsQ2bXadtPG9oGo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=geanix.com; spf=pass smtp.mailfrom=geanix.com; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b=TJlznXiO; arc=none smtp.client-ip=188.40.30.78 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=geanix.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=geanix.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=geanix.com; s=default2211; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID; bh=RGm3cvG/FSHbu0unNfOng+T3r1yzerASsV1ePVGWH6w=; b=TJlznXiO0cIAK+jP6jbhWJsSJH krsnIMdXoKbYVw14uv1Den1gJgJLs14y6VMBaxKujr0M0eaKtSRsrIcuf+0MsWDPxjlq8QUM3JcyE 18eNxt3LT/nftstmpvXEi7xKXHS3x/hkBZvRl3Q1hUfivyojoSwbKt5uw2Ra4+siT+xCmLrs06QYm nO3RTqfaH/VU5MkBZyCevNv4dXJwKpuQzXUyuqwujYVMYQj4QbY5Mj+kIaxZipDnny+ishJKGxdFO RHYryUL20/e/0gcHBDOQvq8IbnKTvMxf247BAnlBtrlNoF105KN8VajjacSzeIN2YIZxLJuGuB3d4 yg4Krd6g==; Received: from sslproxy02.your-server.de ([78.47.166.47]) by www530.your-server.de with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <esben@geanix.com>) id 1rSywI-0007QC-2M; Thu, 25 Jan 2024 13:34:38 +0100 Received: from [185.17.218.86] (helo=localhost) by sslproxy02.your-server.de with esmtpsa (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <esben@geanix.com>) id 1rSywH-0002CN-04; Thu, 25 Jan 2024 13:34:37 +0100 From: Esben Haabendal <esben@geanix.com> To: netdev@vger.kernel.org, Alexandre Torgue <alexandre.torgue@foss.st.com>, Jose Abreu <joabreu@synopsys.com>, "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, Maxime Coquelin <mcoquelin.stm32@gmail.com>, Shawn Guo <shawnguo@kernel.org>, Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix Kernel Team <kernel@pengutronix.de>, Fabio Estevam <festevam@gmail.com>, NXP Linux Team <linux-imx@nxp.com> Cc: linux-arm-kernel@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-kernel@vger.kernel.org Subject: [PATCH 2/2] net: stmmac: dwmac-imx: set TSO/TBS TX queues default settings Date: Thu, 25 Jan 2024 13:34:34 +0100 Message-ID: <5606bb5f0b7566a20bb136b268dae89d22a48898.1706184304.git.esben@geanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <cover.1706184304.git.esben@geanix.com> References: <cover.1706184304.git.esben@geanix.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Authenticated-Sender: esben@geanix.com X-Virus-Scanned: Clear (ClamAV 0.103.10/27165/Thu Jan 25 10:51:15 2024) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789065835616403006 X-GMAIL-MSGID: 1789065835616403006 |
Series |
net: stmmac: dwmac-imx: Time Based Scheduling support
|
|
Commit Message
Esben Haabendal
Jan. 25, 2024, 12:34 p.m. UTC
TSO and TBS cannot coexist. For now we set i.MX Ethernet QOS controller to use
TX queue with TSO and the rest for TBS.
TX queues with TBS can support etf qdisc hw offload.
Signed-off-by: Esben Haabendal <esben@geanix.com>
---
drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c | 6 ++++++
1 file changed, 6 insertions(+)
Comments
On 25/01/2024 12:34, Esben Haabendal wrote: > TSO and TBS cannot coexist. For now we set i.MX Ethernet QOS controller to use > TX queue with TSO and the rest for TBS. > > TX queues with TBS can support etf qdisc hw offload. > > Signed-off-by: Esben Haabendal <esben@geanix.com> > --- > drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c > index 8f730ada71f9..c42e8f972833 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c > @@ -353,6 +353,12 @@ static int imx_dwmac_probe(struct platform_device *pdev) > if (data->flags & STMMAC_FLAG_HWTSTAMP_CORRECT_LATENCY) > plat_dat->flags |= STMMAC_FLAG_HWTSTAMP_CORRECT_LATENCY; > > + for (int i = 0; i < plat_dat->tx_queues_to_use; i++) { > + /* Default TX Q0 to use TSO and rest TXQ for TBS */ > + if (i > 0) > + plat_dat->tx_queues_cfg[i].tbs_en = 1; > + } > + Just wonder why don't you start with i = 1 and remove 'if' completely? Keeping comment in place will make it understandable. > plat_dat->host_dma_width = dwmac->ops->addr_width; > plat_dat->init = imx_dwmac_init; > plat_dat->exit = imx_dwmac_exit;
Vadim Fedorenko <vadim.fedorenko@linux.dev> writes: > On 25/01/2024 12:34, Esben Haabendal wrote: >> TSO and TBS cannot coexist. For now we set i.MX Ethernet QOS controller to use >> TX queue with TSO and the rest for TBS. >> TX queues with TBS can support etf qdisc hw offload. >> Signed-off-by: Esben Haabendal <esben@geanix.com> >> --- >> drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c >> b/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c >> index 8f730ada71f9..c42e8f972833 100644 >> --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c >> +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c >> @@ -353,6 +353,12 @@ static int imx_dwmac_probe(struct platform_device *pdev) >> if (data->flags & STMMAC_FLAG_HWTSTAMP_CORRECT_LATENCY) >> plat_dat->flags |= STMMAC_FLAG_HWTSTAMP_CORRECT_LATENCY; >> + for (int i = 0; i < plat_dat->tx_queues_to_use; i++) { >> + /* Default TX Q0 to use TSO and rest TXQ for TBS */ >> + if (i > 0) >> + plat_dat->tx_queues_cfg[i].tbs_en = 1; >> + } >> + > > Just wonder why don't you start with i = 1 and remove 'if' completely? > Keeping comment in place will make it understandable. No good reason for now. Later on, we might have some setup in the same lop that also applies to Q0. But the init value can be changed at that point. > >> plat_dat->host_dma_width = dwmac->ops->addr_width; >> plat_dat->init = imx_dwmac_init; >> plat_dat->exit = imx_dwmac_exit;
On Thu, 25 Jan 2024 13:34:34 +0100 Esben Haabendal wrote: > + for (int i = 0; i < plat_dat->tx_queues_to_use; i++) { > + /* Default TX Q0 to use TSO and rest TXQ for TBS */ > + if (i > 0) > + plat_dat->tx_queues_cfg[i].tbs_en = 1; > + } checkpatch points out this code is indented with spaces. Please use tabs.
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c index 8f730ada71f9..c42e8f972833 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c @@ -353,6 +353,12 @@ static int imx_dwmac_probe(struct platform_device *pdev) if (data->flags & STMMAC_FLAG_HWTSTAMP_CORRECT_LATENCY) plat_dat->flags |= STMMAC_FLAG_HWTSTAMP_CORRECT_LATENCY; + for (int i = 0; i < plat_dat->tx_queues_to_use; i++) { + /* Default TX Q0 to use TSO and rest TXQ for TBS */ + if (i > 0) + plat_dat->tx_queues_cfg[i].tbs_en = 1; + } + plat_dat->host_dma_width = dwmac->ops->addr_width; plat_dat->init = imx_dwmac_init; plat_dat->exit = imx_dwmac_exit;