From owner-freebsd-current@FreeBSD.ORG Wed Dec 10 18:58:42 2008 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 88554106567C for ; Wed, 10 Dec 2008 18:58:42 +0000 (UTC) (envelope-from citrin@citrin.ru) Received: from mail-chaos.rambler.ru (mail-chaos.rambler.ru [81.19.68.130]) by mx1.freebsd.org (Postfix) with ESMTP id 344F98FC1B for ; Wed, 10 Dec 2008 18:58:42 +0000 (UTC) (envelope-from citrin@citrin.ru) Received: from [192.168.1.15] (unknown [81.19.90.156]) (Authenticated sender: citrin@citrin.ru) by mail-chaos.rambler.ru (Postfix) with ESMTPSA id 39F981703C; Wed, 10 Dec 2008 21:58:40 +0300 (MSK) Message-ID: <4940115F.7080004@citrin.ru> Date: Wed, 10 Dec 2008 21:58:39 +0300 From: Anton Yuzhaninov User-Agent: Thunderbird 2.0.0.18 (X11/20081129) MIME-Version: 1.0 To: Pyun YongHyeon References: <200812080248.mB82mfV9043154@svn.freebsd.org> In-Reply-To: <200812080248.mB82mfV9043154@svn.freebsd.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: current@freebsd.org Subject: Re: svn commit: r185756 - head/sys/dev/re X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Dec 2008 18:58:42 -0000 Pyun YongHyeon wrote: > Author: yongari > Date: Mon Dec 8 02:48:41 2008 > New Revision: 185756 > URL: http://svn.freebsd.org/changeset/base/185756 > > Log: > Reduce spin wait time consumed in GMII register access routines. > Waiting for 1ms for each GMII register access looks overkill and it > may also decrease overall performance of driver because re(4) > invokes mii_tick for every hz. > > Tested by: rpaulo > > Modified: > head/sys/dev/re/if_re.c > > Modified: head/sys/dev/re/if_re.c > ============================================================================== > --- head/sys/dev/re/if_re.c Mon Dec 8 02:38:13 2008 (r185755) > +++ head/sys/dev/re/if_re.c Mon Dec 8 02:48:41 2008 (r185756) > @@ -417,13 +417,12 @@ re_gmii_readreg(device_t dev, int phy, i > } > > CSR_WRITE_4(sc, RL_PHYAR, reg << 16); > - DELAY(1000); > > for (i = 0; i < RL_TIMEOUT; i++) { > + DELAY(30); > rval = CSR_READ_4(sc, RL_PHYAR); > if (rval & RL_PHYAR_BUSY) > break; > - DELAY(100); > } > > if (i == RL_TIMEOUT) { > @@ -445,13 +444,12 @@ re_gmii_writereg(device_t dev, int phy, > > CSR_WRITE_4(sc, RL_PHYAR, (reg << 16) | > (data & RL_PHYAR_PHYDATA) | RL_PHYAR_BUSY); > - DELAY(1000); > > for (i = 0; i < RL_TIMEOUT; i++) { > + DELAY(30); > rval = CSR_READ_4(sc, RL_PHYAR); > if (!(rval & RL_PHYAR_BUSY)) > break; > - DELAY(100); > } > > if (i == RL_TIMEOUT) { After this commit I see in logs errors: Dec 10 21:37:42 citrin kernel: re0: PHY read failed Dec 10 21:38:05 citrin last message repeated 3 times Dec 10 21:38:44 citrin last message repeated 3 times Dec 10 21:38:44 citrin kernel: re0: link state changed to DOWN Dec 10 21:38:45 citrin kernel: re0: link state changed to UP Dec 10 21:38:55 citrin kernel: re0: PHY read failed Dec 10 21:39:38 citrin last message repeated 3 times Dec 10 21:39:38 citrin kernel: re0: link state changed to DOWN Dec 10 21:39:39 citrin kernel: re0: link state changed to UP Dec 10 21:40:09 citrin kernel: re0: PHY read failed Dec 10 21:40:21 citrin kernel: re0: PHY read failed Dec 10 21:41:03 citrin kernel: re0: PHY read failed I tried to revert this patch - errors disappeared. HW: re0@pci0:2:5:0: class=0x020000 card=0xe0001458 chip=0x816710ec rev=0x10 hdr=0x00 vendor = 'Realtek Semiconductor' device = 'RTL8169/8110 Family Gigabit Ethernet NIC' class = network subclass = ethernet cap 01[dc] = powerspec 2 supports D0 D1 D2 D3 current D0 from dmesg: re0: port 0xa000-0xa0ff mem 0xe1000000-0xe10000ff irq 21 at device 5.0 on pci2 re0: Chip rev. 0x18000000 re0: MAC rev. 0x00000000 -- Anton Yuzhaninov