Re: [B.A.T.M.A.N.] [RFC 18/23] batman-adv: ELP - use phydev to determine link characteristics

Antonio Quartulli
2014-02-14T17:46:10Z

[-- Attachment #1: Type: text/plain, Size: 2487 bytes --]

On 14/02/14 18:38, Andrew Lunn wrote:
>> Hi Andrew,
>>
>> This morning I've been trying to dig into the tg3 Ethernet driver to get
>> an idea of what happens before the NETDEV_UP event is fired.
>>
>> The network stack invokes the ndo_open() callback implemented by the
>> driver and, as far as I can see, this function does not return until
>> having set speed and half/full_duplex state.
>> Thus it looks like that when NETDEV_UP is fired the speed and the
>> full_duplex attribute have already a meaningful value.
>>
>> Of course this may vary depending on the driver, so this may not be the
>> case everywhere.
>
> Hi Antonio
>

Hi Andrew,

> I just looked at mv643xx_eth.c, the ethernet driver for my NAS box.
> Its ndo_open() function calls phy_start(), but does not wait around
> for the auto-negotiation to complete.

oh ok..then it seems we really need to get some kind of notification for
this..

>
> I hacked together a quick test.
>
> #!/bin/bash
> ifconfig eth0 down
> sleep 2
> ifconfig eth0 up
> cat /sys/class/net/eth0/duplex
> cat /sys/class/net/eth0/speed
> sleep 0.5
> cat /sys/class/net/eth0/duplex
> cat /sys/class/net/eth0/speed
> sleep 0.5
> cat /sys/class/net/eth0/duplex
> cat /sys/class/net/eth0/speed
> sleep 0.5
> cat /sys/class/net/eth0/duplex
> cat /sys/class/net/eth0/speed
> sleep 0.5
> cat /sys/class/net/eth0/duplex
> cat /sys/class/net/eth0/speed
> sleep 0.5
> cat /sys/class/net/eth0/duplex
> cat /sys/class/net/eth0/speed
> sleep 0.5
> cat /sys/class/net/eth0/duplex
> cat /sys/class/net/eth0/speed
>
> Which when run gives:
>
> half
> 1000
> half
> 1000
> half
> 1000
> half
> 1000
> half
> 1000
> half
> 1000
> full
> 1000
>
> So it is taking 3 seconds after ifconfig returns before it has the
> right duplex mode.

Are you 100% sure that the NETDEV_UP event was sent within those 3
seconds and not after?
If you use a serial console you should see the kernel output mixed with
your test. (just to be 100% sure..)

>
>> I think that your NAS might also be a good testing platform, assuming
>> that the owner is willing to insmod batman-adv on that machine :-)
>
> I've no problems with batman on this NAS box. It is a box dedicated to
> kernel hacking and experienced many an opps. I currently have 3.13-rc1
> on it, which happens to break the ethernet PHY on reboot :-(
>

you shoul dmove to 3.13.3 ;)

Cheers,

--
Antonio Quartulli

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]