From owner-freebsd-bugs Sat Mar 13 4: 9:44 1999 Delivered-To: freebsd-bugs@freebsd.org Received: from iclub.nsu.ru (iclub.nsu.ru [193.124.222.66]) by hub.freebsd.org (Postfix) with ESMTP id C85C014C9D for ; Sat, 13 Mar 1999 04:09:33 -0800 (PST) (envelope-from semen@iclub.nsu.ru) Received: from localhost (semen@localhost) by iclub.nsu.ru (8.9.2/8.8.5) with ESMTP id SAA67734; Sat, 13 Mar 1999 18:07:11 +0600 (NS) Date: Sat, 13 Mar 1999 18:07:11 +0600 (NS) From: Ustimenko Semen To: David Greenman Cc: Peter Jeremy , freebsd-bugs@FreeBSD.ORG Subject: Re: kern/10535: Very poor ethernet performance with tx driver In-Reply-To: <199903112135.NAA09579@implode.root.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Hi! I was out here for some time, but returned! On Thu, 11 Mar 1999, David Greenman wrote: > >David Greenman 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