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:

NetBSD Home
NetBSD PR Database Search

(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.