Date: Sat, 13 Mar 1999 18:07:11 +0600 (NS) From: Ustimenko Semen <semen@iclub.nsu.ru> To: David Greenman <dg@root.com> Cc: Peter Jeremy <peter.jeremy@AUSS2.ALCATEL.COM.AU>, freebsd-bugs@FreeBSD.ORG Subject: Re: kern/10535: Very poor ethernet performance with tx driver Message-ID: <Pine.BSF.4.05.9903131732420.66832-100000@iclub.nsu.ru> In-Reply-To: <199903112135.NAA09579@implode.root.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi! I was out here for some time, but returned! On Thu, 11 Mar 1999, David Greenman wrote: > >David Greenman <dg@root.com> wrote: > >> The real question in my mind is why does the driver frob with the PHY > >>in a critical path? That's guaranteed to cause the performance to suck, no > >>matter what you do with the for-loops. > > It access PHY registers in two places: while processing GP2 interrupt to get results of autonegotiation, and while queuing packets. So this happens not often. > >At the beginning of epic_ifstart(), there is a check that the link is up, > >otherwise the mbufs are dropped in the bit bucket. I'm not sure why the > >link status has to be read twice. At least it is only once per packet. > > It shouldn't do that. > Basic Mode Status Register has link up bit, and it is latched. So i've put two read operation. Without this construction, card locks up on some systems. Don't know why. Possibly becouse of lack of volatile word in CSR_READ. Good luck. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9903131732420.66832-100000>