On Thu, 2007-12-27 at 00:13 -0500, Robin Getz wrote: > On Wed 26 Dec 2007 22:51, Bryan Wu pondered: > > > > I remember this and am considering to add this stuff to the phy common > > framework. > > > > After greping in drivers/net/, they all use mdio poll (busy wait + wait > > timeout) for external phy register operation.So I think maybe mdio poll > > is pretty simple and provides timeout control. > > I also looked at the ones that depended on the PHYLIB: > > MIPS_AU1X00_ENET (au1000_eth.c) does mdelay(1) in busyloop > GIANFAR (gianfar_mii.c) does cpu_relax() in busyloop > UCC_GETH (ucc_geth_mii.c) does cpu_relax() in busyloop > > cpu_relax is going to be less waiting (find the exit condition faster), but > it > makes the timeout more difficult, since the amount of loops will depend on > CCLK. > > I guess the question is how often are we polling the phy? It is every second, > or every packet? >
A phy_timer will start to do some phy state machine control. Every second, timer handler will be called. And I did some test, every second the mdio_poll function will be called 8 times. PHY control is no related with packet transmission, IMO. > > It is good enough. > > In general - I agree - unless we see it consuming large portion of the > processor. > I will run Li Yi's profiling to make sure this patch can kill the performance issue. -Bryan _______________________________________________ Linux-kernel-commits mailing list [email protected] http://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits
