NetBSD Problem Report #48044
From gson@gson.org Wed Jul 10 16:01:58 2013
Return-Path: <gson@gson.org>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
(Client CN "mail.NetBSD.org", Issuer "Postmaster NetBSD.org" (verified OK))
by mollari.NetBSD.org (Postfix) with ESMTPS id C7CF470BA6
for <gnats-bugs@gnats.NetBSD.org>; Wed, 10 Jul 2013 16:01:57 +0000 (UTC)
Message-Id: <20130710155855.5E68775E33@guava.gson.org>
Date: Wed, 10 Jul 2013 18:58:55 +0300 (EEST)
From: gson@gson.org (Andreas Gustafsson)
Reply-To: gson@gson.org (Andreas Gustafsson)
To: gnats-bugs@gnats.NetBSD.org
Subject: panic: kernel diagnostic assertion "uvmexp.swpgonly + npages <= uvmexp.swpginuse" failed
X-Send-Pr-Version: 3.95
>Number: 48044
>Category: kern
>Synopsis: panic: kernel diagnostic assertion "uvmexp.swpgonly + npages <= uvmexp.swpginuse" failed
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: ad
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jul 10 16:05:00 +0000 2013
>Closed-Date: Fri Dec 27 00:54:01 +0000 2019
>Last-Modified: Fri Dec 27 07:00:02 +0000 2019
>Originator: Andreas Gustafsson
>Release: NetBSD-current source date 2013.07.08.08.21.12
>Organization:
>Environment:
System: NetBSD
Architecture: amd64
Machine: amd64
>Description:
Saw this in http://releng.netbsd.org/b5reports/amd64/build/2013.07.08.08.21.12/test.log :
lib/libtre/t_exhaust (320/569): 1 test cases
regcomp_too_big: panic: kernel diagnostic assertion "uvmexp.swpgonly + npages <= uvmexp.swpginuse" failed: file "/tmp/bracket/build/2013.07.08.08.21.12-amd64/src/sys/uvm/uvm_pager.c", line 471
cpu0: Begin traceback...
vpanic() at netbsd:vpanic+0x136
kern_assert() at netbsd:kern_assert+0x48
uvm_aio_aiodone_pages() at netbsd:uvm_aio_aiodone_pages+0x538
uvm_aio_aiodone() at netbsd:uvm_aio_aiodone+0xa6
workqueue_worker() at netbsd:workqueue_worker+0x7f
cpu0: End traceback...
>How-To-Repeat:
A second occurrence is at
http://releng.netbsd.org/b5reports/amd64/build/2013.07.08.05.36.23/test.log
Apart from that, I don't know.
>Fix:
>Release-Note:
>Audit-Trail:
From: Andreas Gustafsson <gson@gson.org>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: kern/48044: panic: kernel diagnostic assertion "uvmexp.swpgonly + npages <= uvmexp.swpginuse" failed
Date: Wed, 21 Aug 2013 17:22:05 +0300
The panic has now occurred three more times since I filed the original PR:
http://releng.netbsd.org/b5reports/amd64/build/2013.08.06.12.19.34/test.log
http://releng.netbsd.org/b5reports/amd64/build/2013.08.15.21.28.23/test.log
http://releng.netbsd.org/b5reports/amd64/build/2013.08.20.00.20.55/test.log
--
Andreas Gustafsson, gson@gson.org
From: christos@zoulas.com (Christos Zoulas)
To: gnats-bugs@NetBSD.org, kern-bug-people@netbsd.org,
gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,
gson@gson.org (Andreas Gustafsson)
Cc:
Subject: Re: kern/48044: panic: kernel diagnostic assertion "uvmexp.swpgonly + npages <= uvmexp.swpginuse" failed
Date: Wed, 21 Aug 2013 10:36:12 -0400
On Aug 21, 2:25pm, gson@gson.org (Andreas Gustafsson) wrote:
-- Subject: Re: kern/48044: panic: kernel diagnostic assertion "uvmexp.swpgon
| The following reply was made to PR kern/48044; it has been noted by GNATS.
|
| From: Andreas Gustafsson <gson@gson.org>
| To: gnats-bugs@NetBSD.org
| Cc:
| Subject: Re: kern/48044: panic: kernel diagnostic assertion "uvmexp.swpgonly + npages <= uvmexp.swpginuse" failed
| Date: Wed, 21 Aug 2013 17:22:05 +0300
|
| The panic has now occurred three more times since I filed the original PR:
|
| http://releng.netbsd.org/b5reports/amd64/build/2013.08.06.12.19.34/test.log
| http://releng.netbsd.org/b5reports/amd64/build/2013.08.15.21.28.23/test.log
| http://releng.netbsd.org/b5reports/amd64/build/2013.08.20.00.20.55/test.log
The code reads:
KASSERT(uvmexp.swpgonly + npages <= uvmexp.swpginuse);
if (error != ENOMEM)
uvmexp.swpgonly += npages;
And probably should read:
if (error != ENOMEM) {
KASSERT(uvmexp.swpgonly + npages <= uvmexp.swpginuse);
uvmexp.swpgonly += npages;
}
(I am not a VM expert)
christos
From: Andreas Gustafsson <gson@gson.org>
To: gnats-bugs@NetBSD.org
Cc: kern-bug-people@netbsd.org,
gnats-admin@netbsd.org,
netbsd-bugs@netbsd.org
Subject: Re: kern/48044: panic: kernel diagnostic assertion "uvmexp.swpgonly + npages <= uvmexp.swpginuse" failed
Date: Sat, 1 Mar 2014 19:56:56 +0200
It just happened again:
http://releng.netbsd.org/b5reports/amd64/build/2014.02.15.09.43.02/test.log
Earlier, Christos Zoulas wrote:
> The code reads:
> KASSERT(uvmexp.swpgonly + npages <= uvmexp.swpginuse);
> if (error != ENOMEM)
> uvmexp.swpgonly += npages;
>
> And probably should read:
> if (error != ENOMEM) {
> KASSERT(uvmexp.swpgonly + npages <= uvmexp.swpginuse);
> uvmexp.swpgonly += npages;
> }
>
> (I am not a VM expert)
Could someone who does consider him/herself a VM expert please have a
look at this?
--
Andreas Gustafsson, gson@gson.org
State-Changed-From-To: open->closed
State-Changed-By: gson@NetBSD.org
State-Changed-When: Sun, 02 Mar 2014 15:14:32 +0000
State-Changed-Why:
Presumably this was fixed by christos' commit of uvm_pager.c 1.110.
From: Andreas Gustafsson <gson@gson.org>
To: gnats-bugs@NetBSD.org
Cc: christos@NetBSD.org
Subject: Re: kern/48044: panic: kernel diagnostic assertion "uvmexp.swpgonly + npages <= uvmexp.swpginuse" failed
Date: Tue, 19 Nov 2019 10:26:36 +0200
In March 2014, I wrote:
> Presumably this was fixed by christos' commit of uvm_pager.c 1.110.
I was wrong - it wasn't fixed after all. Last night, my main testing
host running a 9_0BETA/amd64 from early September crashed with another
"uvmexp.swpgonly + npages <= uvmexp.swpginuse" panic, and inspecting
the logs from the TNF testbed shows several such panics more recent
than uvm_pager.c 1.110:
http://releng.netbsd.org/b5reports/amd64/2014/2014.04.17.23.15.27/test.log
http://releng.netbsd.org/b5reports/amd64/2014/2014.04.22.14.20.03/test.log
http://releng.netbsd.org/b5reports/amd64/2017/2017.09.02.21.27.08/test.log
http://releng.netbsd.org/b5reports/amd64/2018/2018.07.28.20.26.13/test.log
--
Andreas Gustafsson, gson@gson.org
State-Changed-From-To: closed->open
State-Changed-By: gson@NetBSD.org
State-Changed-When: Tue, 19 Nov 2019 08:33:57 +0000
State-Changed-Why:
It's still happening.
Responsible-Changed-From-To: kern-bug-people->ad
Responsible-Changed-By: ad@NetBSD.org
Responsible-Changed-When: Sun, 22 Dec 2019 22:21:55 +0000
Responsible-Changed-Why:
Working in the vicinity so I'll take a look.
From: "Andrew Doran" <ad@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/48044 CVS commit: src/sys/uvm
Date: Fri, 27 Dec 2019 00:46:38 +0000
Module Name: src
Committed By: ad
Date: Fri Dec 27 00:46:38 UTC 2019
Modified Files:
src/sys/uvm: uvm_pager.c
Log Message:
PR kern/48044: panic: kernel diagnostic assertion "uvmexp.swpgonly + npages <= uvmexp.swpginuse" failed
swpgonly is updated asynchronously with regard to swap use. We can't assert
this condition with confidence in the post-5.0 world, at least not without
broader changes. swpgonly's ultimate use is of a heuristic nature so this
is no problem at all.
To generate a diff of this commit:
cvs rdiff -u -r1.117 -r1.118 src/sys/uvm/uvm_pager.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: ad@NetBSD.org
State-Changed-When: Fri, 27 Dec 2019 00:54:01 +0000
State-Changed-Why:
Fixed & pullup for 9.0 requested.
From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/48044 CVS commit: [netbsd-9] src/sys/uvm
Date: Fri, 27 Dec 2019 06:58:56 +0000
Module Name: src
Committed By: martin
Date: Fri Dec 27 06:58:56 UTC 2019
Modified Files:
src/sys/uvm [netbsd-9]: uvm_pager.c
Log Message:
Pull up following revision(s) (requested by ad in ticket #584):
sys/uvm/uvm_pager.c: revision 1.118
PR kern/48044: panic: kernel diagnostic assertion "uvmexp.swpgonly + npages <= uvmexp.swpginuse" failed
swpgonly is updated asynchronously with regard to swap use. We can't assert
this condition with confidence in the post-5.0 world, at least not without
broader changes. swpgonly's ultimate use is of a heuristic nature so this
is no problem at all.
To generate a diff of this commit:
cvs rdiff -u -r1.111 -r1.111.8.1 src/sys/uvm/uvm_pager.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.45 2018/12/21 14:23:33 maya Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2017
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.