NetBSD Problem Report #57694

From wiz@exadelic.gatalith.at  Sun Nov 12 19:43:35 2023
Return-Path: <wiz@exadelic.gatalith.at>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 12BB41A9238
	for <gnats-bugs@gnats.NetBSD.org>; Sun, 12 Nov 2023 19:43:35 +0000 (UTC)
Message-Id: <20231112194328.DE6C92EBBAD3@exadelic.gatalith.at>
Date: Sun, 12 Nov 2023 20:43:28 +0100 (CET)
From: Thomas Klausner <wiz@NetBSD.org>
Reply-To: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@NetBSD.org
Subject: rge(4) hang
X-Send-Pr-Version: 3.95

>Number:         57694
>Category:       kern
>Synopsis:       rge(4) hang
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Nov 12 19:45:00 +0000 2023
>Closed-Date:    
>Last-Modified:  Tue Nov 19 05:35:01 +0000 2024
>Originator:     Thomas Klausner
>Release:        NetBSD 10.99.10
>Organization:

>Environment:


Architecture: x86_64
Machine: amd64
>Description:
After the latest fixes, rge(4) is better, but it's completely hung up
the network interface twice so far - no network traffic possible on it
- both times so hard, that the BIOS had some kind of issue on the next
boot and needed 15 minutes to sort itself out (before even showing
anything on the screen).

I'm running a kernel from Oct 22.

That's in 1Gb mode.

dmesg:
rge0 at pci7 dev 0 function 0: Realtek Semiconductor 8125 10/100/1G/2.5G Ethernet (rev. 0x05)
rge0: interrupting at msix1 vec 0
rge0: Ethernet address xx.xx.xx.xx.xx.xx


In /var/log/messages I see:
Nov  1 18:59:43 exadelic dhcpcd[2191]: rge0: xxxx::1 is unreachable
Nov  1 18:59:43 exadelic dhcpcd[2191]: rge0: soliciting an IPv6 router
Nov  1 18:59:45 exadelic dhcpcd[2191]: rge0: Router Advertisement from xxxx::1  1 18:59:46 exadelic dhcpcd[2191]: rge0: xxxx::1 is unreachable
Nov  1 18:59:46 exadelic dhcpcd[2191]: rge0: soliciting an IPv6 router
Nov  1 18:59:58 exadelic dhcpcd[2191]: rge0: no IPv6 Routers available
Nov  1 19:01:11 exadelic dhcpcd[2191]: rge0: xxxx::1 is reachable again
Nov  1 19:01:19 exadelic dhcpcd[2191]: rge0: xxxx::1 is unreachable
Nov  1 19:01:19 exadelic dhcpcd[2191]: rge0: soliciting an IPv6 router
Nov  1 19:01:31 exadelic dhcpcd[2191]: rge0: no IPv6 Routers available
Nov  1 19:01:57 exadelic dhcpcd[2191]: rge0: xxxx::1 is reachable again
Nov  1 19:02:05 exadelic dhcpcd[2191]: rge0: xxxx::1 is unreachable
Nov  1 19:02:05 exadelic dhcpcd[2191]: rge0: soliciting an IPv6 router
Nov  1 19:02:17 exadelic dhcpcd[2191]: rge0: no IPv6 Routers available
Nov  1 19:04:27 exadelic dhcpcd[2191]: rge0: xxxx::1 is reachable again
Nov  1 19:04:35 exadelic dhcpcd[2191]: rge0: xxxx::1 is unreachable
Nov  1 19:04:35 exadelic dhcpcd[2191]: rge0: soliciting an IPv6 router
Nov  1 19:04:47 exadelic dhcpcd[2191]: rge0: no IPv6 Routers available
Nov  1 19:06:12 exadelic dhcpcd[2191]: rge0: xxxx::1 is reachable again
Nov  1 19:06:20 exadelic dhcpcd[2191]: rge0: xxxx::1 is unreachable
Nov  1 19:06:21 exadelic dhcpcd[2191]: rge0: soliciting an IPv6 router
Nov  1 19:06:33 exadelic dhcpcd[2191]: rge0: no IPv6 Routers available
Nov  1 19:09:27 exadelic /netbsd: [ 91537.5847758] nfs server 192.168.178.19:/path: not responding
Nov  1 19:15:16 exadelic dhcpcd[2191]: rge0: xxxx::1 is reachable again
Nov  1 19:15:24 exadelic dhcpcd[2191]: rge0: xxxx::1 is unreachable
Nov  1 19:15:24 exadelic dhcpcd[2191]: rge0: soliciting an IPv6 router
Nov  1 19:15:36 exadelic dhcpcd[2191]: rge0: no IPv6 Routers available
Nov  1 19:16:51 exadelic dhcpcd[2191]: rge0: xxxx::1 is reachable again
Nov  1 19:16:52 exadelic dhcpcd[2191]: ps_root_recvmsg: No buffer space available
Nov  1 19:16:52 exadelic dhcpcd[2191]: ps_root_recvmsg: No buffer space available
Nov  1 19:16:59 exadelic dhcpcd[2191]: rge0: xxxx::1 is unreachable
Nov  1 19:16:59 exadelic dhcpcd[2191]: rge0: soliciting an IPv6 router
Nov  1 19:16:59 exadelic dhcpcd[2191]: ps_root_recvmsg: No buffer space available
Nov  1 19:17:11 exadelic syslogd[2290]: last message repeated 3 times
Nov  1 19:17:11 exadelic dhcpcd[2191]: rge0: no IPv6 Routers available
Nov  1 19:17:44 exadelic dhcpcd[2191]: ps_root_recvmsg: No buffer space available

Just in case it matters, I'm not running with default sysctl's, I have

kern.sbmax: 262144 -> 16777216
net.inet.tcp.recvbuf_max: 262144 -> 16777216
net.inet.tcp.sendbuf_max: 262144 -> 16777216
net.inet.tcp.recvspace: 32768 -> 262144
net.inet.tcp.sendspace: 32768 -> 262144

because of

https://mail-index.netbsd.org/current-users/2017/09/21/msg032369.html
>How-To-Repeat:
Make heavy use of an rge(4) device with NFS + SFTP.
>Fix:
Yes, please.

>Release-Note:

>Audit-Trail:
From: Michael van Elst <mlelstv@serpens.de>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/57694: rge(4) hang
Date: Sat, 16 Dec 2023 13:38:25 +0100

 The following patch helped here:

 --- sys/dev/pci/if_rge.c        19 Oct 2023 23:43:40 -0000      1.28
 +++ sys/dev/pci/if_rge.c        16 Dec 2023 12:33:04 -0000
 @@ -1404,24 +1404,14 @@ rge_txeof(struct rge_softc *sc)

         sc->rge_ldata.rge_txq_considx = cons;

 -#if 0
 -       if (ifq_is_oactive(&ifp->if_snd))
 -               ifq_restart(&ifp->if_snd);
 -       else if (free == 2)
 -               ifq_serialize(&ifp->if_snd, &sc->sc_task);
 -       else
 -               ifp->if_timer = 0;
 -#else
 -#if 0
 +       if (free == 2)
 +               rge_txstart(&sc->sc_task, sc);
 +
 +       CLR(ifp->if_flags, IFF_OACTIVE);
         if (!IF_IS_EMPTY(&ifp->if_snd))
                 rge_start(ifp);
         else
 -       if (free == 2)
 -               if (0) { rge_txstart(&sc->sc_task, sc); }
 -       else
 -#endif
                 ifp->if_timer = 0;
 -#endif

         return (1);
  }


 -- 
                                 Michael van Elst
 Internet: mlelstv@serpens.de
                                 "A potential Snark may lurk in every tree."

From: "Michael van Elst" <mlelstv@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57694 CVS commit: src/sys/dev/pci
Date: Sat, 16 Dec 2023 16:35:49 +0000

 Module Name:	src
 Committed By:	mlelstv
 Date:		Sat Dec 16 16:35:49 UTC 2023

 Modified Files:
 	src/sys/dev/pci: if_rge.c

 Log Message:
 - handle stuck transmitter (descriptor still owned)
 - restart send queue after transmit
 - count output packets
 - use deferred start

 Should fix PR 57694


 To generate a diff of this commit:
 cvs rdiff -u -r1.28 -r1.29 src/sys/dev/pci/if_rge.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: wiz@NetBSD.org
State-Changed-When: Sun, 31 Dec 2023 10:03:34 +0000
State-Changed-Why:
mlelstv's commit improved the situation a lot - I saw no more hangs
running the new kernel for over a week.


From: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/57694: rge(4) hang
Date: Sun, 31 Dec 2023 11:02:24 +0100

 After running with rge(4) with mlelstv's change for more than a week,
 there were no problems. So this has improved stability a lot.

 Thank you, Michael!
  Thomas

State-Changed-From-To: closed->open
State-Changed-By: wiz@NetBSD.org
State-Changed-When: Tue, 02 Jan 2024 16:03:24 +0000
State-Changed-Why:
Not solved yet.


From: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@netbsd.org
Cc: Michael van Elst <mlelstv@serpens.de>
Subject: Re: kern/57694 (rge(4) hang)
Date: Tue, 2 Jan 2024 17:08:45 +0100

 Today the machine's network hung again, after about 10 days of uptime.

 In syslog I saw:

 Jan  2 16:34:27 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:34:27 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:34:31 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:34:39 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:34:39 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:34:42 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:34:47 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:34:50 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:34:51 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:34:51 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:34:53 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:34:55 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:34:55 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:01 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:35:02 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:35:02 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:05 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:35:06 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:06 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:13 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:35:14 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:35:14 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:17 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:35:18 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:18 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:25 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:35:26 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:35:26 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:29 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:35:30 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:30 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:37 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:35:37 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:35:37 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:41 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:35:41 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:41 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:49 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:35:49 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:35:49 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:49 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:53 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:35:57 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:35:57 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:01 exadelic dhcpcd[1790]: rge0: no IPv6 Routers available
 Jan  2 16:36:01 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:36:02 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:36:02 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:04 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:36:06 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:06 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:12 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:36:13 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:36:13 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:16 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:36:17 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:17 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:24 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:36:24 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:36:24 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:24 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:30 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:36:32 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:32 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:36 exadelic dhcpcd[1790]: rge0: no IPv6 Routers available
 Jan  2 16:36:38 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:36:39 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:36:39 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:36:51 exadelic syslogd[2503]: last message repeated 3 times
 Jan  2 16:36:51 exadelic dhcpcd[1790]: rge0: no IPv6 Routers available
 Jan  2 16:36:54 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:37:02 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:37:03 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:37:03 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:05 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:37:07 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:07 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:13 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:37:13 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:37:13 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:16 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:37:17 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:17 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:24 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:37:25 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:37:25 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:25 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:30 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:37:33 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:33 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:37 exadelic dhcpcd[1790]: rge0: no IPv6 Routers available
 Jan  2 16:37:38 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:37:39 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:37:39 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:42 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:37:43 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:43 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:37:50 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:37:50 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:37:50 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:38:02 exadelic syslogd[2503]: last message repeated 3 times
 Jan  2 16:38:02 exadelic dhcpcd[1790]: rge0: no IPv6 Routers available
 Jan  2 16:38:15 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:38:15 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:38:23 exadelic syslogd[2503]: last message repeated 2 times
 Jan  2 16:38:23 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:38:23 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:38:23 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:38:35 exadelic syslogd[2503]: last message repeated 3 times
 Jan  2 16:38:35 exadelic dhcpcd[1790]: rge0: no IPv6 Routers available
 Jan  2 16:38:45 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:38:53 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:38:53 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:38:53 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:39:05 exadelic syslogd[2503]: last message repeated 3 times
 Jan  2 16:39:05 exadelic dhcpcd[1790]: rge0: no IPv6 Routers available
 Jan  2 16:39:39 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:39:47 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:39:47 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:39:47 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:39:50 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:39:51 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:39:51 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:39:58 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:39:58 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:39:58 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:39:58 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:40:03 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:40:06 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:40:06 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:40:10 exadelic dhcpcd[1790]: rge0: no IPv6 Routers available
 Jan  2 16:40:11 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:40:12 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:40:12 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:40:12 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:40:19 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is reachable again
 Jan  2 16:40:20 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:40:20 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available
 Jan  2 16:40:24 exadelic dhcpcd[1790]: rge0: no IPv6 Routers available
 Jan  2 16:40:27 exadelic dhcpcd[1790]: rge0: fe80::de15:c8ff:fe36:2e98 is unreachable
 Jan  2 16:40:28 exadelic dhcpcd[1790]: rge0: soliciting an IPv6 router
 Jan  2 16:40:28 exadelic dhcpcd[1790]: ps_root_recvmsg: No buffer space available

 This was during a high load situation (bulk build). The machine
 stopped being accessible from the network.
  Thomas

From: matthew green <mrg@eterna23.net>
To: gnats-bugs@netbsd.org
Cc: kern-bug-people@netbsd.org, gnats-admin@netbsd.org,
    netbsd-bugs@netbsd.org
Subject: re: kern/57694: rge(4) hang
Date: Sun, 11 Aug 2024 05:32:22 +1000

 i saw this problem last night, when doing fairly light NFS work (
 about 2MB/s reads.)

 i noticed i started trying to merge recent fixes from openbsd into
 if_rge.c late last year but didn't finish.  i'll look again.


 .mrg.

From: matthew green <mrg@eterna23.net>
To: kern-bug-people@netbsd.org, gnats-admin@netbsd.org, wiz@netbsd.org,
    netbsd-bugs@netbsd.org, gnats-bugs@netbsd.org
Cc: 
Subject: re: kern/57694: rge(4) hang
Date: Sun, 11 Aug 2024 08:13:46 +1000

 matthew green writes:
 > i saw this problem last night, when doing fairly light NFS work (
 > about 2MB/s reads.)

 FWIW, "ifconfig rge0 down up" made it come back, so this seems like
 a bug in the descriptor ring handling, as that will all be reset by
 the down/up sequence.

 i had a look at the latest openbsd changes and i didn't spot anything
 that seemed relevant for this problem.


 .mrg.

From: matthew green <mrg@eterna23.net>
To: kern-bug-people@netbsd.org, gnats-admin@netbsd.org,
    netbsd-bugs@netbsd.org, gnats-bugs@netbsd.org
Cc: 
Subject: re: kern/57694: rge(4) hang
Date: Sun, 11 Aug 2024 09:23:24 +1000

 ah - i just noticed that my system is has an older netbsd-10
 kernel, that does not have revision 1.24.4.3 included, but
 also that netbsd-10 itself is missing rev 1.29, which fixed
 some hangs for mlelstv and made this problem less bad for wiz.

 so that may be all i am seeing..


 .mrg.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/57694 CVS commit: [netbsd-10] src/sys/dev/pci
Date: Thu, 22 Aug 2024 19:22:35 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Thu Aug 22 19:22:35 UTC 2024

 Modified Files:
 	src/sys/dev/pci [netbsd-10]: if_rge.c

 Log Message:
 Pull up following revision(s) (requested by mrg in ticket #782):

 	sys/dev/pci/if_rge.c: revision 1.29

 - handle stuck transmitter (descriptor still owned)
 - restart send queue after transmit
 - count output packets
 - use deferred start

 Should fix PR 57694


 To generate a diff of this commit:
 cvs rdiff -u -r1.24.4.3 -r1.24.4.4 src/sys/dev/pci/if_rge.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: matthew green <mrg@eterna23.net>
To: kern-bug-people@netbsd.org, gnats-admin@netbsd.org,
    netbsd-bugs@netbsd.org, gnats-bugs@netbsd.org
Cc: 
Subject: re: kern/57694: rge(4) hang
Date: Fri, 23 Aug 2024 11:44:15 +1000

 matthew green writes:
 > ah - i just noticed that my system is has an older netbsd-10
 > kernel, that does not have revision 1.24.4.3 included, but
 > also that netbsd-10 itself is missing rev 1.29, which fixed
 > some hangs for mlelstv and made this problem less bad for wiz.
 >
 > so that may be all i am seeing..

 unfortunately, i did see one more soft-hang that was fixed
 with 'ifconfig rge0 down up', but haven't seen it for over
 12 more days, and my attempts to trigger failure with the
 same card in a zen2 testbox (the host i have seen hangs on
 is zen1+) have not gained any insight.

 netbsd-10 has the latest fixes now at least, thanks martin.


 .mrg.

From: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/57694 (rge(4) hang)
Date: Mon, 7 Oct 2024 23:40:24 +0200

 Ok, the plot thickens.
 Some months ago I switched to using an igc0 instead:
 igc0 at pci6 dev 0 function 0, 64-bit DMA: Intel(R) Ethernet Controller I225-LM (rev. 0x03)
 igc0: txrx interrupting at msix1 vec 0
 igc0: txrx interrupting at msix1 vec 1
 igc0: txrx interrupting at msix1 vec 2
 igc0: txrx interrupting at msix1 vec 3
 igc0: link interrupting at msix1 vec 4
 igc0: PHY: OUI 0x984fee model 0x0000, rev. 0, PHY FW version 0x8754
 igc0: NVM image version 1.57, EtrackID 80000180
 igc0: Ethernet address ...

 today the machine stopped being accessible from the network, and in the log I saw

 Oct  7 23:03:39 exadelic dhcpcd[2783]: ps_root_recvmsg: No buffer space available

 which looks like the symptoms I saw with rge0.

 Could there be a common underlying cause in the network code?
  Thomas

From: matthew green <mrg@eterna23.net>
To: gnats-bugs@netbsd.org
Cc: kern-bug-people@netbsd.org, gnats-admin@netbsd.org,
    netbsd-bugs@netbsd.org, Thomas Klausner <wiz@NetBSD.org>
Subject: re: kern/57694 (rge(4) hang)
Date: Tue, 08 Oct 2024 16:15:26 +1100

 "Thomas Klausner via gnats" writes:
 > Could there be a common underlying cause in the network code?

 i wonder.  is there something in your setup that is triggering
 it because i've spent weeks sending packets between rge(4) and
 cdce(4) in 2.5T mode (realtek ethernet), without seeing issues
 that aren't already fixed.

 most of my kernels don't have INET6 is perhaps the first thing
 i can think of...


 .mrg.

From: Thomas Klausner <wiz@NetBSD.org>
To: matthew green <mrg@eterna23.net>
Cc: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Subject: Re: kern/57694 (rge(4) hang)
Date: Tue, 8 Oct 2024 11:22:36 +0200

 On Tue, Oct 08, 2024 at 04:15:26PM +1100, Matthew Green wrote:
 > i wonder.  is there something in your setup that is triggering
 > it because i've spent weeks sending packets between rge(4) and
 > cdce(4) in 2.5T mode (realtek ethernet), without seeing issues
 > that aren't already fixed.
 > 
 > most of my kernels don't have INET6 is perhaps the first thing
 > i can think of...

 Yes, I'm using IPv6 - I don't have a public IPv4 so much of the
 Internet traffic goes that way.

 Internally, I'm using a lot of NFS but that's via IPv4.

 Not sure what else is special in my setup.
  Thomas

From: Rin Okuyama <rokuyama.rk@gmail.com>
To: gnats-bugs@netbsd.org, kern-bug-people@netbsd.org,
 gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,
 Thomas Klausner <wiz@NetBSD.org>, matthew green <mrg@NetBSD.org>
Cc: 
Subject: Re: kern/57694 (rge(4) hang)
Date: Wed, 9 Oct 2024 14:18:34 +0900

 On 2024/10/08 14:20, matthew green via gnats wrote:
  > i wonder.  is there something in your setup that is triggering
  > it because i've spent weeks sending packets between rge(4) and
  > cdce(4) in 2.5T mode (realtek ethernet), without seeing issues
  > that aren't already fixed.
  >
  > most of my kernels don't have INET6 is perhaps the first thing
  > i can think of...

 Similar for me. One of my main machines is running with igc(4) over
 a year without problems, but IPv6 is not used (mostly).

 For igc(4), some firmware versions are buggy, and update

 https://www.intel.com/content/www/us/en/download/15084/intel-ethernet-adapter-complete-driver-pack.html

 may help (as per suggestion by msaitoh@).

 Thanks,
 rin

From: matthew green <mrg@eterna23.net>
To: Rin Okuyama <rokuyama.rk@gmail.com>
Cc: gnats-bugs@netbsd.org, kern-bug-people@netbsd.org,
    gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,
    Thomas Klausner <wiz@NetBSD.org>, tech-net@netbsd.org
Subject: re: kern/57694 (rge(4) hang)
Date: Sat, 09 Nov 2024 06:16:08 +1100

 one of my rge(4)'s has soft-hung twice recently.  after a power
 outage, it lost connectivity soon after coming back online (on
 the order of 10s of minutes less than a hour), and ifconfig =

 down/up sequence restored connectivity.  then, about 2 days
 later, the same thing happened.

 i wrote a stupid script to notice and the down/up for me.

 i also started looking at rge_rxeof(), and i wonder if there's
 a bad case we get into and can't get out of without manually
 resetting the descriptors (eg, the down/up sequence):

    1249         for (i =3D sc->rge_ldata.rge_rxq_considx; ; i =3D RGE_NEXT=
 _RX_DESC(i)) {
 ...
    1255                 cur_rx =3D &sc->rge_ldata.rge_rx_list[i];
    1256
    1257                 if (RGE_OWN(cur_rx))
    1258                         break;
 ...
    1361         }
    1362
    1363         sc->rge_ldata.rge_rxq_considx =3D i;

 if for some reason rge_rxq_considx ends up pointing to a desc
 that is owned, then i is never changed from rge_rxq_considx and
 the assignment on L1363 is a no-op.  could it be being not
 filled in _ever_ for some other reason , this loop will never
 find other filled in descriptors.  can that happen?  i am not
 nearly familiar enough with ethernet drivers/hardware...

 i guess it might be useful to get a dump of all the descriptors
 at the hang-time, to see their status.

 i'll see about doing that, but this is the only machine i've
 seen this hang on and i'm loathe to reboot it ever as it does
 not reboot without power cycle, and recently, it took about 5
 power cycles for it to get past whatever problem it has.


 .mrg.

From: mlelstv@serpens.de (Michael van Elst)
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/57694 (rge(4) hang)
Date: Sat, 9 Nov 2024 22:14:28 -0000 (UTC)

 gnats-admin@NetBSD.org ("matthew green via gnats") writes:

 >    1249         for (i =3D sc->rge_ldata.rge_rxq_considx; ; i =3D RGE_NEXT=
 > _RX_DESC(i)) {
 > ...
 >    1255                 cur_rx =3D &sc->rge_ldata.rge_rx_list[i];
 >    1256
 >    1257                 if (RGE_OWN(cur_rx))
 >    1258                         break;
 > ...
 >    1361         }
 >    1362
 >    1363         sc->rge_ldata.rge_rxq_considx =3D i;
 > 
 > if for some reason rge_rxq_considx ends up pointing to a desc
 > that is owned, then i is never changed from rge_rxq_considx and
 > the assignment on L1363 is a no-op.

 This is a ring buffer and all descriptors are processed until
 the loop hits a descriptor that is still 'owned' by the device,
 because no data had been received.
 rge_rxq_considx is updated correctly to the descriptor that
 needs to be checked when the next interrupt arrives.

 Maybe an interrupt is dropped and when you don't fetch
 all data, there might be a condition that no further
 interrupt is raised.

 Or maybe the chip firmware 'forgets' to clear the OWN bit
 under rare conditions. I've seen similar bugs before.

From: matthew green <mrg@eterna23.net>
To: gnats-bugs@netbsd.org, kern-bug-people@netbsd.org,
    gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,
    Thomas Klausner <wiz@NetBSD.org>, tech-net@netbsd.org,
    Rin Okuyama <rokuyama.rk@gmail.com>
Cc: 
Subject: re: kern/57694 (rge(4) hang)
Date: Tue, 19 Nov 2024 16:31:19 +1100

 > i guess it might be useful to get a dump of all the descriptors
 > at the hang-time, to see their status.
 >
 > i'll see about doing that, but this is the only machine i've
 > seen this hang on and i'm loathe to reboot it ever as it does
 > not reboot without power cycle, and recently, it took about 5
 > power cycles for it to get past whatever problem it has.

 i recently patched this system's kernel and rebooted it, it only
 took 6 or 7 power cycles to work this time (i really really need
 to replace this system), and then another power outage lead it
 two dumps of the rx descriptors when it has hung.

 both times the rge(4) hung about 1h after booting.

 unfortunately, AFAICT, all 1024 are currently "owned by the
 hardware", and appear to be ready to go, both times.  ie, there
 is no indication what is wrong here at all.

 i don't know enough about how this sort of h/w works to really
 judge what is happening here.


 .mrg.

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.49 2026/05/14 01:52:41 riastradh Exp $
$NetBSD: gnats_config.sh,v 1.10 2026/05/13 22:00:09 riastradh Exp $
Copyright © 1994-2026 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.