fwe(4) and polling(4)

Hidetoshi Shimokawa simokawa at sat.t.u-tokyo.ac.jp
Sun Sep 26 07:29:25 PDT 2004


At Sat, 25 Sep 2004 18:31:48 +0200,
Ulrich Spoerlein wrote:
> Running an NFS-Transfer between these hosts via xl0<->bfe0 I get roughly
> 10MB/s and the load on coyote is around 0.3. The interrupt rate on
> coyote is around 5000 (xl0, irq 12) and on roadrunner I get up to 7000
> (bfe0, irq 11).
> Now switching to the Firewire-Connection I get "only" 13MB/s, the load
> on coyote is reaching 1.0, the interrupt rate reaches 6000. On
> roadrunner the interrupt rate is topping out at 10.500 (ain't that
> crazy?)

It's reasonable number because fwohci doesn't support interrupt pacing.
This is why I implemeted device polling while ago.

> I then switched on device_polling on roadrunner, because the man-page
> claimed it was supported with fwe(4). However I can't see a drop in
> interrupt requests and performance stays the same.

Interrput rate should be dropped in polling mode.

To enable polling mode, after you set sysctl variables, you have
to down the interface once and then up.
(ifconfig fwe0 down; ifconfig fwe0 up)

> So, is fwe(4) lying? Does polling only work, if the device does not
> share the interrupt? Should I be able to get more then 13MB/s from this
> not-so-old P3-500?


> PS: I'm somewhat puzzled by this:
> fwohci0: EUI64 20:00:00:00:04:00:52:cf
> if_fwe0: Fake Ethernet address: 22:00:00:00:52:cf
> and
> fwohci0: EUI64 35:4f:c0:00:35:67:98:30
> if_fwe0: Fake Ethernet address: 36:4f:c0:67:98:30

if_fwe is a non-standard ethernet emulation and need to
generate fake macaddress. As far as I remember, 0x02 is
added to the first byte to represent it is private address.

/\ Hidetoshi Shimokawa
\/  simokawa at sat.t.u-tokyo.ac.jp
PGP public key: http://www.sat.t.u-tokyo.ac.jp/~simokawa/pgp.html

More information about the freebsd-current mailing list