Re: [PATCH net-next v2 1/2] net: ethernet: mtk_eth_soc: use prefetch methods

Joe Damato
2024-08-01T13:14:09Z

On Thu, Aug 01, 2024 at 09:09:27AM +0200, Stefan Roese wrote:
> On 7/30/24 20:35, Elad Yifee wrote:
> > On Tue, Jul 30, 2024 at 11:59 AM Joe Damato <jdamato@fastly.com> wrote:
> > >
> > > Based on the code in mtk_probe, I am guessing that only
> > > MTK_SOC_MT7628 can DMA to unaligned addresses, because for
> > > everything else eth->ip_align would be 0.
> > >
> > > Is that right?
> > >
> > > I am asking because the documentation in
> > > Documentation/core-api/unaligned-memory-access.rst refers to the
> > > case you mention, NET_IP_ALIGN = 0, suggesting that this is
> > > intentional for performance reasons on powerpc:
> > >
> > > One notable exception here is powerpc which defines NET_IP_ALIGN to
> > > 0 because DMA to unaligned addresses can be very expensive and dwarf
> > > the cost of unaligned loads.
> > >
> > > It goes on to explain that some devices cannot DMA to unaligned
> > > addresses and I assume that for your driver that is everything which
> > > is not MTK_SOC_MT7628 ?
> >
> > I have no explanation for this partial use of 'eth->ip_align', it
> > could be a mistake
> > or maybe I'm missing something.
> > Perhaps Stefan Roese, who wrote this part, has an explanation.
> > (adding Stefan to CC)
>
> Sorry, I can't answer this w/o digging deeper into this driver and
> SoC again. And I didn't use it for a few years now. It might be a
> mistake.

I asked about it because it was added in v2 of the patch, see the
changelog from the patch:

- use eth->ip_align instead of NET_IP_ALIGN as it could be 0,
depending on the platform

It seemed like from the changelog some one decided adding that made
sense and I was just confirming the reasoning above.