i386/70832: Serious problems with RealTek NIC using re0 driver on Evo N1015v

Marian Cerny jojo at matfyz.cz
Sun Aug 22 13:30:26 PDT 2004


>Number:         70832
>Category:       i386
>Synopsis:       Serious problems with RealTek NIC using re0 driver on Evo N1015v
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-i386
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 22 20:30:25 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Marian Cerny
>Release:        FreeBSD 5.2.1R
>Organization:
>Environment:
FreeBSD potvorka 5.2.1-RELEASE FreeBSD 5.2.1-RELEASE #0: Wed Aug 18 10:10:26 CEST 2004
majo at potvorka:/usr/src/sys/i386/compile/POTVORKA  i386
>Description:
I have got serious problems with my 're0: <RealTek 8139C+ 10/100BaseTX>'
network card. I have got two exactly the same laptops: Compaq Evo N1015v. I
have got a few problems with this NIC on both laptops.

I would like to notice that there was none of this problem on FreeBSD 5.1R when
the NICs were using the rl driver.

*Rarely* the machine hangs on boot (the kernel panics). It happens
approximately once a month. Keyboard is not working, so I can not debug this
more. Here are the messages, that are writen to the screen:

--------------------------------------------------------------------------

pcm0: <Analog Devices AD1886A AC97 Codec>
pci0: <bridge, PCI-CardBus> at device 10.0 (no driver attached)
re0: <RealTek 8139C+ 10/100BaseTX> port 0x8800-0x88ff mem 0xf0013000-0xf00130ff
irg 11 at device 11.0 on pci0
re0: Ethernet address: 00:0b:cd:84:25:06
miibus0: <MII bus> on re0
rlphy0: <RealTek internal media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
re0: diagnostic failed, failed to receive packet in loopback mode
re0: attach aborted due to hardware diag failure


Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x7c
fault code              = supervisor read, page net present
instruction pointer     = 0x8:0xc04fb503
stack pointer           = 0x10:0xc08219e4
frame pointer           = 0x10:0xc0821a00
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 0 (swapper)
kernel: type 12 trap, code=0
Stopped at      _mtx_lock_flags+0x43:   cmpl    $0xc06ab05c,0(%ebx)
db>

--------------------------------------------------------------------------

The other problem is, when I am turning off the laptop using 'halt -p' with
ACPI. *Often* the kernel panics here. It's like with 40% probability on one
laptop and around 80% probability on the other one. The laptops are exactly the
same, only one has got 512M + 128M memory and the other one has got 256M + 128M
memory. I have tried this with usb support compiled in, and also without it
(because there is ohci0+ in current process). The result is the same. Here are
the messages:

--------------------------------------------------------------------------

-bash-2.05b# halt -p
Aug 18 10:51:52 potvorka halt: halted by root
Aug 18 10:51:53 potvorka syslogd: exiting on signal 15
Waiting (max 60 seconds) for system process `vnlru' to stop...stopped
Waiting (max 60 seconds) for system process `bufdaemon' to stop...stopped
Waiting (max 60 seconds) for system process `syncer' to stop...stopped

syncing disks, buffers remaining... 8 8 1 1
done
Uptime: 5m56s
Powering system off using ACPI

Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0xc
fault code              = supervisor read, page net present
instruction pointer     = 0x8:0xc0475087
stack pointer           = 0x10:0xd156ec9c
frame pointer           = 0x10:0xd156ecc8
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 22 (irq11: re0 ohci0+)
kernel: type 12 trap, code=0
Stopped at      re_rxeof+0x287: movl    %eax,0xc(%ebx)
db> trace
re_rxeof(c334a000,0,c0658482,71f,c336cd00) at re_rxeof+0x287
re_intr(c334a000,0,c06648ec,21f,c152ce20) at re_intr+0xc4
ithread_loop(c1522800,d156ed48,c0664766,311,c1522800) at ithread_loop+0x172
fork_exit(c04f1910,c1522800,d156ed48) at fork_exit+0xb4
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xd156ed7c, ebp = 0 ---
db> panic
panic: from debugger
Stack backtrace:
backtrace(c0666cfd,c06d07e0,c065486e,d156ea88,100) at backtrace+0x17
panic(c065486e,d156eb40,c043a56a,c0475087,0) at panic+0xb7
db_panic(c0475087,0,ffffffff,d156eab4,d156eab0) at db_panic+0x12
db_command(c06c6520,c0686320,c0680e34,c0680e38,10) at db_command+0x25a
db_command_loop(c0475087,c06f7d00,d156eb8c,c054d423,0) at db_command_loop+0x78
db_trap(c,0,0,246,1) at db_trap+0xb9
kbd_trap(c,0,d156ec5c,1,1) at kdb_trap+0x1b3
trap_fatal(d156ec5c,c,c067c786,2cd,c1527c80) at trap_fatal+0x2b8
trap_pfault(d156ec5c,0,c,12e800,c) at trap_pfault+0x1c1
trap(18,10,10,31022072,2) at trap+0x2f3
calltrap() at calltrap+0x5
--- trap 0xc, eip = 0xc0475087, esp = 0xd156ec9c, ebp = 0xd156ecc8 ---
re_rxeof(c334a000,0,c0658482,71f,c336cd00) at re_rxeof+0x287
re_intr(c334a000,0,c06648ec,21f,c152ce20) at re_intr+0xc4
ithread_loop(c1522800,d156ed48,c0664766,311,c1522800) at ithread_loop+0x172
fork_exit(c04f1910,c1522800,d156ed48) at fork_exit+0xb4
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xd156ed7c, ebp = 0 ---
Debugger("panic")

Fatal trap 3: breakpoint instruction fault while in kernel mode
instruction pointer     = 0x8:0xc061d70d
stack pointer           = 0x10:0xd156ea44
frame pointer           = 0x10:0xd156ea50
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = IOPL = 0
current process         = 22 (irg11: re0 ohci0+)
Stopped at      re_rxeof+0x287: movl    %eax,0xc(%ebx)
db> call boot(0)
Uptime: 6m1s
kernel trap 12 with interrupts disabled


Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0xdeadc0e2
fault code              = supervisor read, page net present
instruction pointer     = 0x8:0xc0520155
stack pointer           = 0x10:0xd156e990
frame pointer           = 0x10:0xd156e9a8
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = resume, IOPL = 0
current process         = 22 (irg11: re0 ohci0+)
kernel: type 12 trap, code=0
Stopped at      eventhandler_deregister+0x45:   movl    %eax,0x4(%edx)
db> panic
panic: from debugger
Uptime: 6m2s
Dumping 352 MB
 12 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 272 288 304 320 336
Dump complete
kernel trap 12 with interrupts disabled


Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0xdeadc0e2
fault code              = supervisor read, page net present
instruction pointer     = 0x8:0xc0520155
stack pointer           = 0x10:0xd156e6bc
frame pointer           = 0x10:0xd156e6b4
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = resume, IOPL = 0
current process         = 22 (irg11: re0 ohci0+)
kernel: type 12 trap, code=0
Stopped at      eventhandler_deregister+0x45:   movl    %eax,0x4(%edx)
db>

*** I turned the laptop off

--------------------------------------------------------------------------

The last problem I have, that *everytime* I try to use cvsup to upgrade ports
tree (or source tree), the networks goes completely down after some seconds
(sometimes minutes).

--------------------------------------------------------------------------

-bash-2.05b# cvsup ports-supfile
Connected to cvsup.FreeBSD.cz
Updating collection ports-all/cvs
 Edit ports/MOVED
 Edit ports/benchmarks/himenobench/Makefile
 Edit ports/benchmarks/himenobench/pkg-plist
 Edit ports/devel/distcc/Makefile
 Edit ports/devel/p5-ExtUtils-XSBuilder/Makefile
 Edit ports/devel/p5-ExtUtils-XSBuilder/distinfo
 Edit ports/devel/p5-ExtUtils-XSBuilder/pkg-plist
 Edit ports/devel/root/Makefile
 Delete ports/ftp/lukemftpd/Makefile
 Delete ports/ftp/lukemftpd/distinfo
 Delete ports/ftp/lukemftpd/files/patch-ftpd.c
 Delete ports/ftp/lukemftpd/files/patch-logutmp.c
 Delete ports/ftp/lukemftpd/files/patch-logwtmp.c
 Delete ports/ftp/lukemftpd/files/patch-src-Makefile.in
 Delete ports/ftp/lukemftpd/pkg-descr
 Delete ports/ftp/lukemftpd/pkg-plist
 Edit ports/java/jdk14/Makefile
re0: watchdog timeout
re0: watchdog timeout
^C^C^CInterrupted

--------------------------------------------------------------------------

This re0: watchdog timeout repeats here. The network goes down, it is not
possible to (for example) ping google - there is no responsee. When I do:

        $ killall dhclient
        $ ifconfig re0 down
        $ dhlcient re0

Then I can again 'ping www.google.com', I get 2 to 5 packets in response and
the network goes down again. I must reboot the machine.

All these problems seems to be connected to me. Might be not.
>How-To-Repeat:
Use Compaq Evo N1015v with ACPI enabled and try to power off the system with 'halt -p'. Or try to use cvsup to update ports tree.
>Fix:
Not known. It works fine on FreeBSD 5.1R
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-i386 mailing list