From nobody@FreeBSD.org  Thu Oct 13 17:56:48 2011
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3F609106566B
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 Oct 2011 17:56:48 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22])
	by mx1.freebsd.org (Postfix) with ESMTP id 15B3B8FC0C
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 Oct 2011 17:56:48 +0000 (UTC)
Received: from red.freebsd.org (localhost [127.0.0.1])
	by red.freebsd.org (8.14.4/8.14.4) with ESMTP id p9DHulal081387
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 13 Oct 2011 17:56:47 GMT
	(envelope-from nobody@red.freebsd.org)
Received: (from nobody@localhost)
	by red.freebsd.org (8.14.4/8.14.4/Submit) id p9DHulFU081386;
	Thu, 13 Oct 2011 17:56:47 GMT
	(envelope-from nobody)
Message-Id: <201110131756.p9DHulFU081386@red.freebsd.org>
Date: Thu, 13 Oct 2011 17:56:47 GMT
From: Nikos Vassiliadis <nvass@gmx.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: kernel panic with RCTL option: racct_alloc_resource: usage < 0
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         161552
>Category:       kern
>Synopsis:       [rctl] [panic] kernel panic with RCTL option: racct_alloc_resource: usage < 0
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    jh
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Oct 13 18:00:21 UTC 2011
>Closed-Date:    Tue Mar 27 14:20:15 UTC 2012
>Last-Modified:  Tue Mar 27 14:20:15 UTC 2012
>Originator:     Nikos Vassiliadis
>Release:        FreeBSD 10.0-CURRENT
>Organization:
>Environment:
FreeBSD lab.local 10.0-CURRENT FreeBSD 10.0-CURRENT #6 r226271M: Thu Oct 13 19:29:17 EEST 2011     root@lab.local:/usr/obj/usr/src/sys/RCTLLAB  i386
>Description:
A kernel with option RCTL panics after some time.
amount in frame #11 seems very big, should it be signed?

Backtrace:
Unread portion of the kernel message buffer:
panic: racct_alloc_resource: usage < 0
cpuid = 0
KDB: enter: panic
Physical memory: 1003 MB
Dumping 65 MB: 50 34 18 2

#0  doadump (textdump=-995676160) at pcpu.h:244
244     pcpu.h: No such file or directory.
        in pcpu.h
(kgdb) #0  doadump (textdump=-995676160) at pcpu.h:244
#1  0xc04f1b79 in db_fncall (dummy1=1, dummy2=0, dummy3=-1054062208,
    dummy4=0xd90caa40 "") at /usr/src/sys/ddb/db_command.c:572
#2  0xc04f1f71 in db_command (last_cmdp=0xc10e24bc, cmd_table=0x0, dopager=1)
    at /usr/src/sys/ddb/db_command.c:448
#3  0xc04f20ca in db_command_loop () at /usr/src/sys/ddb/db_command.c:501
#4  0xc04f40bd in db_trap (type=3, code=0) at /usr/src/sys/ddb/db_main.c:229
#5  0xc0a56743 in kdb_trap (type=3, code=0, tf=0xd90cabf0)
    at /usr/src/sys/kern/subr_kdb.c:625
#6  0xc0da70eb in trap (frame=0xd90cabf0) at /usr/src/sys/i386/i386/trap.c:719
#7  0xc0d8fa8c in calltrap () at /usr/src/sys/i386/i386/exception.s:168
#8  0xc0a5654a in kdb_enter (why=0xc0f68ea8 "panic", msg=0xc0f68ea8 "panic")
    at cpufunc.h:71
#9  0xc0a21634 in panic (fmt=0xc0f67d32 "racct_alloc_resource: usage < 0")
    at /usr/src/sys/kern/kern_shutdown.c:599
#10 0xc0a184f2 in racct_alloc_resource (racct=0xc49a947c, resource=19,
    amount=18446744069415584193) at /usr/src/sys/kern/kern_racct.c:258
#11 0xc0a1899f in racct_set_locked (p=0xc4dd02c4, resource=19,
    amount=18446744071563033602) at /usr/src/sys/kern/kern_racct.c:398
#12 0xc0a18bf3 in racctd () at /usr/src/sys/kern/kern_racct.c:739
#13 0xc09f04c8 in fork_exit (callout=0xc0a18a10 <racctd>, arg=0x0,
    frame=0xd90cad28) at /usr/src/sys/kern/kern_fork.c:995
#14 0xc0d8fb04 in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:275
(kgdb)



>How-To-Repeat:
I have not find what triggers the panic, but it always panics after an
hour of uptime or so. The machine is a virtualbox VM with 2 CPUs. My
kernel's cf:

include   GENERIC
ident     RCTLLAB

options   VIMAGE
options   VNET_DEBUG
options   IPSEC
device    crypto

options   IPFIREWALL
options   IPFIREWALL_DEFAULT_TO_ACCEPT
options   IPFIREWALL_FORWARD

options RACCT
options RCTL

>Fix:


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->feedback 
State-Changed-By: jh 
State-Changed-When: Thu Mar 1 15:48:47 UTC 2012 
State-Changed-Why:  
Can you still reproduce after r225940? 

http://www.freebsd.org/cgi/query-pr.cgi?pr=161552 

From: Mark Linimon <linimon@lonesome.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/161552: [rctl] [panic] kernel panic with RCTL option:
 racct_alloc_resource: usage < 0
Date: Thu, 1 Mar 2012 18:02:11 -0600

 ----- Forwarded message from Nikos Vassiliadis <nvass@gmx.com> -----
 
 Date: Thu, 01 Mar 2012 19:26:26 +0100
 From: Nikos Vassiliadis <nvass@gmx.com>
 To: jh@FreeBSD.org
 
 Yes, the panic is still there. But it may be somehow related to
 Virtualbox as I have used a similar kernel with no panics on real
 hardware.
 
 ----- End forwarded message -----
State-Changed-From-To: feedback->open 
State-Changed-By: jh 
State-Changed-When: Sat Mar 3 07:45:40 UTC 2012 
State-Changed-Why:  
Feedback received. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=161552 
Responsible-Changed-From-To: freebsd-bugs->jh 
Responsible-Changed-By: jh 
Responsible-Changed-When: Fri Mar 16 19:01:58 UTC 2012 
Responsible-Changed-Why:  
I am working on this. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=161552 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/161552: commit references a PR
Date: Sun, 18 Mar 2012 19:13:41 +0000 (UTC)

 Author: jh
 Date: Sun Mar 18 19:13:32 2012
 New Revision: 233126
 URL: http://svn.freebsd.org/changeset/base/233126
 
 Log:
   Cast wallclock.tv_sec to uint64_t to avoid overflow in the calculation.
   
   PR:		kern/161552
   Reviewed by:	trasz
   Tested by:	Nikos Vassiliadis
   MFC after:	1 week
 
 Modified:
   head/sys/kern/kern_racct.c
 
 Modified: head/sys/kern/kern_racct.c
 ==============================================================================
 --- head/sys/kern/kern_racct.c	Sun Mar 18 19:12:11 2012	(r233125)
 +++ head/sys/kern/kern_racct.c	Sun Mar 18 19:13:32 2012	(r233126)
 @@ -745,7 +745,8 @@ racctd(void)
  			mtx_lock(&racct_lock);
  			racct_set_locked(p, RACCT_CPU, runtime);
  			racct_set_locked(p, RACCT_WALLCLOCK,
 -			    wallclock.tv_sec * 1000000 + wallclock.tv_usec);
 +			    (uint64_t)wallclock.tv_sec * 1000000 +
 +			    wallclock.tv_usec);
  			mtx_unlock(&racct_lock);
  			PROC_UNLOCK(p);
  		}
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->patched 
State-Changed-By: jh 
State-Changed-When: Sun Mar 18 19:26:31 UTC 2012 
State-Changed-Why:  
Patched in head (r233126). Thanks for testing! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=161552 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/161552: commit references a PR
Date: Tue, 27 Mar 2012 14:01:39 +0000 (UTC)

 Author: jh
 Date: Tue Mar 27 14:01:09 2012
 New Revision: 233543
 URL: http://svn.freebsd.org/changeset/base/233543
 
 Log:
   MFC r233126:
   
   Cast wallclock.tv_sec to uint64_t to avoid overflow in the calculation.
   
   PR:		kern/161552
 
 Modified:
   stable/9/sys/kern/kern_racct.c
 Directory Properties:
   stable/9/sys/   (props changed)
   stable/9/sys/amd64/include/xen/   (props changed)
   stable/9/sys/boot/   (props changed)
   stable/9/sys/boot/i386/efi/   (props changed)
   stable/9/sys/boot/ia64/efi/   (props changed)
   stable/9/sys/boot/ia64/ski/   (props changed)
   stable/9/sys/boot/powerpc/boot1.chrp/   (props changed)
   stable/9/sys/boot/powerpc/ofw/   (props changed)
   stable/9/sys/cddl/contrib/opensolaris/   (props changed)
   stable/9/sys/conf/   (props changed)
   stable/9/sys/contrib/dev/acpica/   (props changed)
   stable/9/sys/contrib/octeon-sdk/   (props changed)
   stable/9/sys/contrib/pf/   (props changed)
   stable/9/sys/contrib/x86emu/   (props changed)
   stable/9/sys/fs/   (props changed)
   stable/9/sys/fs/ntfs/   (props changed)
   stable/9/sys/i386/conf/XENHVM   (props changed)
 
 Modified: stable/9/sys/kern/kern_racct.c
 ==============================================================================
 --- stable/9/sys/kern/kern_racct.c	Tue Mar 27 12:25:47 2012	(r233542)
 +++ stable/9/sys/kern/kern_racct.c	Tue Mar 27 14:01:09 2012	(r233543)
 @@ -736,7 +736,8 @@ racctd(void)
  			mtx_lock(&racct_lock);
  			racct_set_locked(p, RACCT_CPU, runtime);
  			racct_set_locked(p, RACCT_WALLCLOCK,
 -			    wallclock.tv_sec * 1000000 + wallclock.tv_usec);
 +			    (uint64_t)wallclock.tv_sec * 1000000 +
 +			    wallclock.tv_usec);
  			mtx_unlock(&racct_lock);
  			PROC_UNLOCK(p);
  		}
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: patched->closed 
State-Changed-By: jh 
State-Changed-When: Tue Mar 27 14:20:13 UTC 2012 
State-Changed-Why:  
Fixed in head and stable/9. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=161552 
>Unformatted:
