Andrew Brampton wrote:
Hi,
Linux has a feature called NAPI, which amongst other things has this
Interrupt initiated polling mode. Whilst the network traffic is quiet
the network interfaces use interrupts, however as soon as the load
becomes higher polling kicks in and stays like that until the load
drops again.
I know that FreeBSD can do interrupts or polling, but not together. I
think that that NAPI pretty neat as it provides the benefits of both
interrupts and polling, namely low CPU load (when the network is not
busy), and high performance. I was wondering if anyone has considered
this approach in FreeBSD? If not why not? Is there some reason why the
binary FreeBSD approach is better? Or is it just that no one has
dedicated the time and effort to implement this feature?
NAPI is essentially interrupt moderation in s/w. As Luigi noted
elsewhere polling in freebsd is rather different with livelock avoidance
being just one of the goals. I've had several projects where people
coming from linux felt is was critical to implement NAPI or something
similar on a bsd system. In the end they found it was not a significant
win if the hardware is reasonably designed and the driver properly
tuned. Some of this relates to how the network stacks differ in
design. I think a NAPI-like facility would mostly be used for legacy
devices which is not to say it's a bad idea or that you shouldn't work
on it. Whether or not it's incorporated into the system would depend on
how much of a win it turns out to be and how intrusive it is as you'd
need to mod all the drivers.
Sam
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"