From: "Bc-bocun Chen (陳柏村)" <bc-bocun.chen@mediatek.com>
To: "daniel@makrotopia.org" <daniel@makrotopia.org>,
"sgoutham@marvell.com" <sgoutham@marvell.com>
Cc: "Mark-MC Lee (李明昌)" <Mark-MC.Lee@mediatek.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"SkyLake Huang (黃啟澤)" <SkyLake.Huang@mediatek.com>,
"Sam Shih (史碩三)" <Sam.Shih@mediatek.com>,
"linux@fw-web.de" <linux@fw-web.de>,
"nbd@nbd.name" <nbd@nbd.name>,
"john@phrozen.org" <john@phrozen.org>,
"lorenzo@kernel.org" <lorenzo@kernel.org>,
"frank-w@public-files.de" <frank-w@public-files.de>,
"Sean Wang" <Sean.Wang@mediatek.com>,
"kuba@kernel.org" <kuba@kernel.org>,
"edumazet@google.com" <edumazet@google.com>,
"pabeni@redhat.com" <pabeni@redhat.com>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"Steven Liu (劉人豪)" <steven.liu@mediatek.com>,
"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
"davem@davemloft.net" <davem@davemloft.net>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"angelogioacchino.delregno@collabora.com"
<angelogioacchino.delregno@collabora.com>
Subject: Re: [net v2] net: ethernet: mtk_eth_soc: handle dma buffer size soc specific
Date: Wed, 29 May 2024 04:11:46 +0000 [thread overview]
Message-ID: <395096cbf03b25122b710ba684fb305e32700bba.camel@mediatek.com> (raw)
In-Reply-To: <kbzsne4rm4232w44ph3a3hbpgr3th4xvnxazdq3fblnbamrloo@uvs3jyftecma>
On Mon, 2024-05-27 at 17:13 +0100, Daniel Golle wrote:
> > On Mon, May 27, 2024 at 03:55:55PM GMT, Sunil Kovvuri Goutham
> wrote:
> > > >
> > > >
> > > > > > -----Original Message-----
> > > > > > From: Frank Wunderlich <linux@fw-web.de>
> > > > > > Sent: Monday, May 27, 2024 7:52 PM
> > > > > > To: Felix Fietkau <nbd@nbd.name>; Sean Wang <
> > > > > > sean.wang@mediatek.com>;
> > > > > > Mark Lee <Mark-MC.Lee@mediatek.com>; Lorenzo Bianconi
> > > > > > <lorenzo@kernel.org>; David S. Miller <davem@davemloft.net>
> > > ; Eric
> > > > > > Dumazet
> > > > > > <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>;
> > > Paolo
> > > > > > Abeni
> > > > > > <pabeni@redhat.com>; Matthias Brugger <
> > > matthias.bgg@gmail.com>;
> > > > > > AngeloGioacchino Del Regno <
> > > > > > angelogioacchino.delregno@collabora.com>
> > > > > > Cc: Frank Wunderlich <frank-w@public-files.de>; John
> > > Crispin
> > > > > > <john@phrozen.org>; netdev@vger.kernel.org;
> > > > > > linux-kernel@vger.kernel.org;
> > > > > > linux-arm-kernel@lists.infradead.org;
> > > > > > linux-mediatek@lists.infradead.org;
> > > > > > Daniel Golle <daniel@makrotopia.org>
> > > > > > Subject: [net v2] net: ethernet: mtk_eth_soc: handle dma
> > > buffer
> > > > > > size soc specific
> > > > > >
> > > > > > From: Frank Wunderlich <frank-w@public-files.de>
> > > > > >
> > > > > > The mainline MTK ethernet driver suffers long time from
> > > rarly but
> > > > > > annoying tx
> > > > > > queue timeouts. We think that this is caused by fixed dma
> > > sizes
> > > > > > hardcoded for
> > > > > > all SoCs.
> > > > > >
> > > > > > Use the dma-size implementation from SDK in a per SoC
> > > manner.
> > > > > >
> > > > > > Fixes: 656e705243fd ("net-next: mediatek: add support for
> > > MT7623
> > > > > > ethernet")
> > > > > > Suggested-by: Daniel Golle <daniel@makrotopia.org>
> > > > > > Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
> >
> > > >
> > > > ..............
> > > > > >
> > > > > > diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> > > > > > b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> > > > > > index cae46290a7ae..f1ff1be73926 100644
> > > > > > --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> > > > > > +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> >
> > > >
> > > > .............
> > > > > > @@ -1142,40 +1142,46 @@ static int mtk_init_fq_dma(struct
> > > mtk_eth
> > > > > > *eth)
> > > > > > cnt * soc-
> > > > > > >tx.desc_size,
> > > > > > ð-
> > > > > > >phy_scratch_ring,
> > > > > > GFP_KERNEL);
> >
> > > >
> > > > ..............
> > > > > > - for (i = 0; i < cnt; i++) {
> > > > > > - dma_addr_t addr = dma_addr + i * MTK_QDMA_PAGE_SIZE;
> > > > > > - struct mtk_tx_dma_v2 *txd;
> > > > > > + dma_addr = dma_map_single(eth->dma_dev,
> > > > > > + eth->scratch_head[j], len *
> > > > > > MTK_QDMA_PAGE_SIZE,
> > > > > > + DMA_FROM_DEVICE);
> > > > > >
> >
> > > >
> > > > As per commit msg, the fix is for transmit queue timeouts.
> > > > But the DMA buffer changes seems for receive pkts.
> > > > Can you please elaborate the connection here.
>
> >
> > *I guess* the memory window used for both, TX and RX DMA
> descriptors
> > needs to be wisely split to not risk TX queue overruns, depending
> on
> > the
> > SoC speed and without hurting RX performance...
> >
> > Maybe someone inside MediaTek (I've added to Cc now) and more
> > familiar
> > with the design can elaborate in more detail.
We've encountered a transmit queue timeout issue on the MT79888 and
have identified it as being related to the RSS feature.
We suspect this problem arises from a low level of free TX DMADs, the
TX Ring alomost full.
Since RSS is enabled, there are 4 Rx Rings, with each containing 2048
DMADs, totaling 8192 for Rx. In contrast, the Tx Ring has only 2048
DMADs. Tx DMADs will be consumed rapidly during a 10G LAN to 10G WAN
forwarding test, subsequently causing the transmit queue to stop.
Therefore, we reduced the number of Rx DMADs for each ring to balance
both Tx and Rx DMADs, which resolves this issue.
> >
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2024-05-29 4:12 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-27 14:21 [net v2] net: ethernet: mtk_eth_soc: handle dma buffer size soc specific Frank Wunderlich
2024-05-27 15:55 ` Sunil Kovvuri Goutham
2024-05-27 16:13 ` Daniel Golle
2024-05-29 4:11 ` Bc-bocun Chen (陳柏村) [this message]
2024-05-29 17:50 ` Sunil Kovvuri Goutham
2024-05-30 1:46 ` Bc-bocun Chen (陳柏村)
2024-05-30 4:21 ` Florian Fainelli
2024-05-30 4:39 ` Sunil Kovvuri Goutham
2024-05-29 5:36 ` Bc-bocun Chen (陳柏村)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=395096cbf03b25122b710ba684fb305e32700bba.camel@mediatek.com \
--to=bc-bocun.chen@mediatek.com \
--cc=Mark-MC.Lee@mediatek.com \
--cc=Sam.Shih@mediatek.com \
--cc=Sean.Wang@mediatek.com \
--cc=SkyLake.Huang@mediatek.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=daniel@makrotopia.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=frank-w@public-files.de \
--cc=john@phrozen.org \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux@fw-web.de \
--cc=lorenzo@kernel.org \
--cc=matthias.bgg@gmail.com \
--cc=nbd@nbd.name \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sgoutham@marvell.com \
--cc=steven.liu@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox