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

Reply via email to