Re: mv643xx(2/20): use MII library for PHY management
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2005-08-24 00:33:26
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2005-08-24 00:33:26
On Tue, 2005-08-23 at 17:34 -0700, Mark Huth wrote:
It's good to use the abstractions and common code, but in this case there is a significant performance difference. The MDIO read/write on this family does a cpu spin wait for the mdio operation to complete. Last time I measured this (back when fixing up a 2.4.20 implementation) I got around 100 us for the mii_ioctl path, of which a good bit was in the spin loop waiting for the MDIO operation to complete. A quick look seems to indicate the spin loop is still in this version of the driver. Given that the NIC chip gives cheap access to the link status and a couple of other interesting bits, the change to use the mii library has a performance impact.
Is it possible to implement the mdio functions without a spin loop ? Also, it might be a good idea to use the PHY driver model (a-la sungem) rather than miilib... Ben.