Netdev List
 help / color / mirror / Atom feed
From: "Markus Stockhausen" <markus.stockhausen@gmx.de>
To: "'Andrew Lunn'" <andrew@lunn.ch>
Cc: <hkallweit1@gmail.com>, <linux@armlinux.org.uk>,
	<davem@davemloft.net>, <edumazet@google.com>, <kuba@kernel.org>,
	<pabeni@redhat.com>, <netdev@vger.kernel.org>,
	<chris.packham@alliedtelesis.co.nz>, <daniel@makrotopia.org>,
	<mensi@mensi.ch>
Subject: AW: [PATCH net-next 8/8] net: mdio: realtek-rtl9300: Convert port lookup from O(n) to O(1)
Date: Tue, 2 Jun 2026 22:02:06 +0200	[thread overview]
Message-ID: <013001dcf2ca$b1b188f0$15149ad0$@gmx.de> (raw)
In-Reply-To: <6ae0d4c1-bc9a-4972-8d4d-b1580a4565e2@lunn.ch>

> Von: Andrew Lunn <andrew@lunn.ch> 
> Gesendet: Dienstag, 2. Juni 2026 14:30
> An: Markus Stockhausen <markus.stockhausen@gmx.de>
> Betreff: Re: [PATCH net-next 8/8] net: mdio: realtek-rtl9300: Convert port
lookup from O(n) to O(1)
>...
> > Create a reverse lookup table per channel during setup. This stores 
> > the
> > (overall) port number per PHY (on that channel). Take special care 
> > about absent ports that are missing from device tree because of hardware
design.
> > Save memory by using s8 type for the table (-1 = absent, 0..56 = port).
> > Convert the lookup in otto_emdio_phy_to_port() from loop-based to 
> > table-based.
>
> Generally, for performance patches, you would include some benchmark
numbers.
>
> What percentage of the time of an MDIO transaction is doing the lookup, vs
shifting bits out the hardware and polling for completion?
> A 2.5MHz bus is not very fast, compared to a 500MHz CPU.

IIRC I saved 100us per polling loop over all 52 ports of a RTL839x switch.
But this was too long ago and I will need to verify this once again.  It is
not critical for now so I will drop the patch for v2.

Markus


      reply	other threads:[~2026-06-02 20:02 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-02  5:26 [PATCH net-next 0/8] net: mdio: realtek-rtl9300: Refactor initialization and port lookup Markus Stockhausen
2026-06-02  5:26 ` [PATCH net-next 1/8] net: mdio: realtek-rtl9300: Convert to fwnode API Markus Stockhausen
2026-06-02 12:06   ` Andrew Lunn
2026-06-02 12:29     ` AW: " Markus Stockhausen
2026-06-02 12:50       ` Andrew Lunn
2026-06-02 18:05   ` Jakub Kicinski
2026-06-02 18:58     ` AW: " Markus Stockhausen
2026-06-02  5:26 ` [PATCH net-next 2/8] net: mdio: realtek-rtl9300: Correctly handle ethernet-phy-package Markus Stockhausen
2026-06-02  9:32   ` Jagielski, Jedrzej
2026-06-02 10:23     ` AW: " Markus Stockhausen
2026-06-02 11:22       ` Jagielski, Jedrzej
2026-06-02  5:26 ` [PATCH net-next 3/8] net: mdio: realtek-rtl9300: harden otto_emdio_map_ports() Markus Stockhausen
2026-06-02  9:38   ` Jagielski, Jedrzej
2026-06-02 10:42     ` AW: " Markus Stockhausen
2026-06-02 11:29       ` Jagielski, Jedrzej
2026-06-02 12:14   ` Andrew Lunn
2026-06-02  5:26 ` [PATCH net-next 4/8] net: mdio: realtek-rtl9300: harden otto_emdio_probe_one() Markus Stockhausen
2026-06-02  5:26 ` [PATCH net-next 5/8] net: mdio: realtek-rtl9300: adapt spaces for defines Markus Stockhausen
2026-06-02  9:42   ` Jagielski, Jedrzej
2026-06-02 10:18     ` AW: " Markus Stockhausen
2026-06-02 11:16       ` Jagielski, Jedrzej
2026-06-02 12:20   ` Andrew Lunn
2026-06-02  5:26 ` [PATCH net-next 6/8] net: mdio: realtek-rtl9300: relocate topology setup Markus Stockhausen
2026-06-02  9:50   ` Jagielski, Jedrzej
2026-06-02 10:50     ` AW: " Markus Stockhausen
2026-06-02 12:24   ` Andrew Lunn
2026-06-02 13:01     ` AW: " Markus Stockhausen
2026-06-02 15:17       ` Andrew Lunn
2026-06-02 18:48         ` AW: " Markus Stockhausen
2026-06-02 20:29           ` Andrew Lunn
2026-06-02  5:26 ` [PATCH net-next 7/8] net: mdio: realtek-rtl9300: reorder controller setup Markus Stockhausen
2026-06-02  5:26 ` [PATCH net-next 8/8] net: mdio: realtek-rtl9300: Convert port lookup from O(n) to O(1) Markus Stockhausen
2026-06-02 12:30   ` Andrew Lunn
2026-06-02 20:02     ` Markus Stockhausen [this message]

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='013001dcf2ca$b1b188f0$15149ad0$@gmx.de' \
    --to=markus.stockhausen@gmx.de \
    --cc=andrew@lunn.ch \
    --cc=chris.packham@alliedtelesis.co.nz \
    --cc=daniel@makrotopia.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hkallweit1@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mensi@mensi.ch \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.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