Date: Thu, 14 Dec 2006 00:55:51 +0000 From: MQ <antinvidia@gmail.com> To: "Oleg Bulyzhin" <oleg@freebsd.org> Cc: net@freebsd.org Subject: Re: [antinvidia@gmail.com: some questions about bge(4)] Message-ID: <be0088ce0612131655j5829ca7cg3066b8855904c2e7@mail.gmail.com> In-Reply-To: <20061212224351.GE91560@lath.rinet.ru> References: <20061206085401.GH32700@cell.sick.ru> <20061212224351.GE91560@lath.rinet.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
2006/12/12, Oleg Bulyzhin <oleg@freebsd.org>: > > On Wed, Dec 06, 2006 at 11:54:01AM +0300, Gleb Smirnoff wrote: > > Forwarding to net@ list and to Oleg, who has made polling > > support for bge(4). > > > > ----- Forwarded message from MQ < antinvidia@gmail.com> ----- > > > > From: MQ <antinvidia@gmail.com> > > To: glebius@freebsd.org, davidch@broadcom.com > > Subject: some questions about bge(4) > > Date: Sat, 2 Dec 2006 09:32:27 +0000 > > Delivered-To: glebius@freebsd.org > > DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; > > s=beta; d=gmail.com; > > > h=received:message-id:date:from:to:subject:mime-version:content-type; > > > b=ZL3ZZ1zR0mt4LaUN2Rr+jXTPSzQgJYRwLiwKnv95r2UCEids5Wl7oA2BNgicJ2QRG8OalJ7DqY7lM1HBgv0OVTlXOhGQ9aFmKQAuTNi6ueZA817XUacXyViEepnj0oNyYgAnkbaaBO1+nl2Fpb3IxV+MIe575WRlqbglF8kdOek= > > > > > Hi David and Gleb, > > I'm using several chips whose driver is bge(4). And now I have some > > questions about the driver, would you please an answer for me? > > My confusion is related with some codes in /sys/dev/mii/brgphy.c. The > > > bge(4) uses the callout to drive the watchdog. And the brgphy_service() > is > > called once per second. It calls brgphy_mii_phy_auto() every 5 seconds > to > > autonegotiate the media. Normally, it costs about 0.5ms in the first > > function brgphy_service(), and about 5ms when autonegotiation is > proceeded. > > brgphy_mii_phy_auto() is called only if there is no link. > > > I haven't done streestest on it, consequently I don't know if this > delay > > will cause packets to be dropped. But I've enabled device polling with > the > > bge(4) on FreeBSD 6.1-RELEASE. If HZ is set to a high value(e.g. 4000), > this > > delay will cause the kern.polling.lost_polls to increase by one or two > every > > second. And for about five seconds, the lost poll will increase by at > least > > 16 regularly. So I think this behavior has some impact on the systems > that > > enables device polling. Could we get something to make the bge(4) a bit > more > > friendly to the device polling? I don't know if autonegotiation is > really > > needed to be called so frequently when we are connected to a good > network > > environment. Can I modify the interval between two autonegotiations to > have > > less lost_polls? However, I have no idea about the long time spent in > the > > brgphy_service(), please take a look at the problem when you have enough > > time. > > If you have lost poll it does not guarantee packet loss. > Packets can be retrieved by next poll or even by idle_poll thread. > bge_tick() is doing couple of pci register reads (it's polling phy status > and > updates some statistic counters), this why it takes some time. > > Anyway, you are right about too short autonegotiation timer, i'll fix it > soon. > > > > > Regards > > MQ > > > > ----- End forwarded message ----- > > > > -- > > Totus tuus, Glebius. > > GLEBIUS-RIPN GLEB-RIPE > > -- > Oleg. > > ================================================================ > === Oleg Bulyzhin -- OBUL-RIPN -- OBUL-RIPE -- oleg@rinet.ru === > ================================================================ > > Oh, I didn't connect to switch in my previous testings, so I didn't notice that the brgphy_mii_phy_auto() is called only there is no link. It's my fault. Therefore there won't be a problem with this. By the way, bge_tick() takes about 0.5ms to finish its work, this results the lost poll every second when HZ is higher. Lower HZ will limit the performance under heavy traffic, and may result packet loss in that situation. And higher HZ will make a confusing situation that whether we have encountered a packet loss? It's really hard to make a decision between these two kinds of situation.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?be0088ce0612131655j5829ca7cg3066b8855904c2e7>