Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Sep 2004 10:21:15 +0200
From:      Ulrich Spoerlein <q@uni.de>
To:        Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
Cc:        current@freebsd.org
Subject:   Re: fwe(4) and polling(4)
Message-ID:  <20040927082115.GA1092@galgenberg.net>
In-Reply-To: <87d609m7cs.wl@tora.nunu.org>
References:  <20040925163148.GA9626@galgenberg.net> <87d609m7cs.wl@tora.nunu.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--9amGYk9869ThD9tj
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, 26.09.2004 at 23:29:23 +0900, Hidetoshi Shimokawa wrote:
> Interrput rate should be dropped in polling mode.
>=20
> 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)

Aha! Thanks for the tip, polling is now working on roadrunner and the
load dropped. However the performance dropped too (9MB/s). I think this
is due to NFS and the increased latency. But I have to get polling
working on coyote first, before I investigate further. Read on...

This is the output from 5.3
fwe0: flags=3D118943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,POLLING=
> mtu 1500
        options=3D8<VLAN_MTU>
        inet 192.168.2.148 netmask 0xffffff00 broadcast 192.168.2.255
        inet6 fe80::344f:c0ff:fe67:9830%fwe0 prefixlen 64 scopeid 0x2=20
        ether 36:4f:c0:67:98:30
        ch 1 dma 0
and this from 5.2.1
fwe0: flags=3D18943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        inet6 fe80::2000:ff:fe00:52cf%fwe0 prefixlen 64 scopeid 0x3=20
        inet 192.168.2.151 netmask 0xffffff00 broadcast 192.168.2.255
        ether 22:00:00:00:52:cf
        ch 1 dma 0

Note that POLLING is absent. I up/downed the interface several times and
toggled kern.polling.enable several times too. Is there a bug with
respect to 5.2.1R?

> > 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
>=20
> 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.

if_fwe.c:186
#define LOCAL (0x02)
#define GROUP (0x01)
        eaddr[0] =3D (FW_EUI64_BYTE(eui, 0) | LOCAL) & ~GROUP;

I'm not good at C but this code seems to always zero the least
significant bit, making the first byte of the address even. Is that an
ethernet requirement? (I checked all NICs I have access to, but they all
have 0x00 as the first byte)

Ulrich Spoerlein
--=20
PGP Key ID: F0DB9F44				Get it while it's hot!
PGP Fingerprint: F1CE D062 0CA9 ADE3 349B  2FE8 980A C6B5 F0DB 9F44
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety."	-- Benjamin Franklin

--9amGYk9869ThD9tj
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (FreeBSD)

iD8DBQFBV817mArGtfDbn0QRApWNAKC10x7C/Zm5aVAAi4yA/S4JzQ7EMwCgpKpE
E9W4ZfhnkD69xRDONHOKr8A=
=G1j9
-----END PGP SIGNATURE-----

--9amGYk9869ThD9tj--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040927082115.GA1092>