Date: Fri, 7 May 2010 13:53:28 -0700 From: Pyun YongHyeon <pyunyh@gmail.com> To: McLone <mclone@gmail.com> Cc: network@freebsd.org, stable@freebsd.org, current@freebsd.org Subject: Re: if_re regression on RELENG_8 Message-ID: <20100507205328.GH14801@michelle.cdnetworks.com> In-Reply-To: <v2t451cb3011005070755hf0a64251s4a12751d2ee09eaf@mail.gmail.com> References: <v2t451cb3011005070755hf0a64251s4a12751d2ee09eaf@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--C+ts3FVlLX8+P6JN
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Fri, May 07, 2010 at 05:55:02PM +0300, McLone wrote:
> Hell Low.
>
> When Vista finally died on my girl's notebook,
> she asked me to install FreeBSD on it, so no more viruses.
> I installed RELENG_8_0/i386, to compile fresh RELENG_8/amd64
> in hopes SUJ will be availible (2gb RAM is kinda too small for ZFS).
>
> I've built custom kernel (GENERIC with unneeded things nodevice'd)
> and rebooted it, kldload if_re, ifcionfig, so ping started to work.
> I then attempted to mount_nfs, but it hung.
> "re0: watchdog timeout" appeared on console.
>
> So the thing is, re0 stops working after sending any packet
> longer than 536 bytes. I tested via ping, -S (536-8) works,
> but (537-8) leads to watchdog timeout. The host cannot be
> software rebooted in ~80% cases after it happened.
>
> Machine in question is Fujitsu-Siemens Amilo Pi 2540.
> The lines from RELENG_8 dmesg are:
>
> re0: <RealTek 8101E/8102E/8102EL/8103E PCIe 10/100baseTX> port
> 0x3000-0x30ff mem 0xf0300000-0xf0300fff irq 19 at device 0.0 on pci5
> re0: Reserved 0x1000 bytes for rid 0x18 type 3 at 0xf0300000
> re0: MSI count : 2
> re0: attempting to allocate 1 MSI vectors (2 supported)
> re0: using IRQ 256 for MSI
> re0: Using 1 MSI messages
> re0: Chip rev. 0x34000000
> re0: MAC rev. 0x00000000
> miibus0: <MII bus> on re0
> re0: bpf attached
> re0: Ethernet address: 00:03:0d:a1:a8:19
> re0: [MPSAFE]
> re0: [FILTER]
>
> Those lines in RELENG_8_0 are the same except IRQ 259
> (i kldload if_re after boot).
> RELENG_8 is from 2010.05.04 i believe;
> had tried with sources as of 2 or 3 weeks earlier - same bug.
> No CFLAGS except -mtune=native (i doubt it does the weather).
> It doesn't matter if i kldload or just use GENERIC.
>
> How can i test further, except building fresh RELENG_8/i386?
> How to use a magic "DDB key" and what to input in there?
>
Would you try attached patch?
--C+ts3FVlLX8+P6JN
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="re.mreq.patch"
Index: sys/dev/re/if_re.c
===================================================================
--- sys/dev/re/if_re.c (revision 207747)
+++ sys/dev/re/if_re.c (working copy)
@@ -1162,9 +1162,11 @@
msic = 0;
if (pci_find_extcap(dev, PCIY_EXPRESS, ®) == 0) {
sc->rl_flags |= RL_FLAG_PCIE;
- /* Set PCIe maximum read request size to 2048. */
- if (pci_get_max_read_req(dev) < 2048)
- pci_set_max_read_req(dev, 2048);
+ if (devid != RT_DEVICEID_8101E) {
+ /* Set PCIe maximum read request size to 2048. */
+ if (pci_get_max_read_req(dev) < 2048)
+ pci_set_max_read_req(dev, 2048);
+ }
msic = pci_msi_count(dev);
if (bootverbose)
device_printf(dev, "MSI count : %d\n", msic);
--C+ts3FVlLX8+P6JN--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100507205328.GH14801>
