summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorAndrew Lunn <andrew@lunn.ch>2020-05-02 17:25:04 +0200
committerDavid S. Miller <davem@davemloft.net>2020-05-02 16:41:34 -0700
commitf166f890c8f026a931e1bb80f51561a1d2f41b27 (patch)
tree54f90ef565b1d345bfcb5dfc5d313d45af177879 /net
parent40b94224c339e44f689e713875c6c27c9c1270a7 (diff)
net: ethernet: fec: Replace interrupt driven MDIO with polled IO
Measurements of the MDIO bus have shown that driving the MDIO bus using interrupts is slow. Back to back MDIO transactions take about 90us, with 25us spent performing the transaction, and the remainder of the time the bus is idle. Replacing the completion interrupt with polled IO results in back to back transactions of 40us. The polling loop waiting for the hardware to complete the transaction takes around 28us. Which suggests interrupt handling has an overhead of 50us, and polled IO nearly halves this overhead, and doubles the MDIO performance. Care has to be taken when setting the MII_SPEED register, or it can trigger an MII event> That then upsets the polling, due to an unexpected pending event. Suggested-by: Chris Heally <cphealy@gmail.com> Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions