tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: struct ifnet and ifaddr handling [was: Re: Making global variables of if.c MPSAFE]



On Thu, Nov 20, 2014 at 11:38 AM, Ryota Ozaki <ozaki-r%netbsd.org@localhost> wrote:
> Actually FreeBSD seems to have a callout for each interface. Even more
> they killed the common if_watchdog facility and each driver has its own.

What happens if many (e.g. 1,000) virtual ifs are present?

> Anyway here is a patch:
> http://www.netbsd.org/~ozaki-r/watchdog-callout-per-if.diff
> (it's on top of -current HEAD).

        if (ifp->if_timer != 0 && --ifp->if_timer != 0)
                (*ifp->if_watchdog)(ifp);

If I read correctly, if_watchdog needs to be called only when if_timer
becomes 1 -> 0.  So this should be:

        if (ifp->if_timer != 0 && --ifp->if_timer == 0)
                (*ifp->if_watchdog)(ifp);


Home | Main Index | Thread Index | Old Index