FreeBSD boots too fast on Dell PE850
Pyun YongHyeon
pyunyh at gmail.com
Fri Aug 18 09:20:40 UTC 2006
On Fri, Aug 18, 2006 at 10:51:07AM +0200, Martin Horcicka wrote:
> 2006/8/18, Dan Nelson <dnelson at allantgroup.com>:
> >In the last episode (Aug 17), Alan Amesbury said:
> >> OK, booting *too* quickly is a somewhat unusual problem..... I have
> >> FreeBSD 6.1-RELEASE-p3 running on a Dell PowerEdge 850. For some
> >> reason, in the PowerEdge 850 Dell chose to replace the perfectly
> >> adequate em(4) adapters found on the PE750 with bge(4) hardware.
> >> FreeBSD identifies these adapters as BCM5750A1, but Dell says they're
> >> actually Broadcom 5721J adapters instead. See
> >>
> >> http://www.dell.com/downloads/global/products/pedge/en/850_specs.pdf
> >>
> >> for details. The switch to which the host is connected is a Cisco
> >> Catalyst 3750. How this relates to FreeBSD, however.....
> >
> >Have you enabled portfast on the Cisco?
> >
> >http://www.cisco.com/warp/public/473/12.html#c2k
>
> We have similar problems on various hardware and we also believe it's
> caused by the Spanning Tree Protocol procedure done during the switch
> port initialization. I don't like the idea of using portfast as it
> makes the switch less robust so I tried to delay the boot using an rc
> script as well:
>
> /etc/rc.d/slow_interface_startup:
> ---
> #!/bin/sh
>
> # PROVIDE: slow_interface_startup
> # REQUIRE: netif
> # BEFORE: NETWORKING
>
> slow_interface_startup_enable=${slow_interface_startup_enable:-NO}
> slow_interface_startup_duration=${slow_interface_startup_duration:-50}
>
> . /etc/rc.subr
>
> name=slow_interface_startup
> rcvar=`set_rcvar`
> start_cmd=slow_interface_startup_start
> stop_cmd=:
>
> slow_interface_startup_start() {
> echo -n "Waiting for interfaces to get ready" \
> "($slow_interface_startup_duration seconds)"
> sleep "$slow_interface_startup_duration"
> echo
> }
>
> load_rc_config $name
> run_rc_command "$1"
> ---
>
> Then you can add to rc.conf:
>
> slow_interface_startup_enable="YES"
>
> And optionally also (in seconds):
>
> slow_interface_startup_duration="123"
>
> It's a little hack but it works as expected. Anyway, in some cases it
> does not help. The NIC is probably reset at some later point. I have
> not investigated it further yet.
>
> >Another thing to check is whether you have alias IPs. I believe the
> >bge driver has to reset the card every time you add or remove an IP.
> >I know the ti driver (whose chipset the broadcom chips are based on)
> >had that problem.
>
> Yes, but I believe that all such operations are done by the netif script.
>
I think it's job of device driver. If the driver find its link
negotiation is in progress it should not send frames.
Unfortunately not all drivers handle this correctly.
--
Regards,
Pyun YongHyeon
More information about the freebsd-stable
mailing list