From owner-freebsd-current@FreeBSD.ORG Mon Apr 6 23:13:09 2015 Return-Path: Delivered-To: current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6EC9062D for ; Mon, 6 Apr 2015 23:13:09 +0000 (UTC) Received: from gw.catspoiler.org (cl-1657.chi-02.us.sixxs.net [IPv6:2001:4978:f:678::2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1D83963D for ; Mon, 6 Apr 2015 23:13:08 +0000 (UTC) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.13.3/8.13.3) with ESMTP id t36ND1nT040557 for ; Mon, 6 Apr 2015 16:13:05 -0700 (PDT) (envelope-from truckman@FreeBSD.org) Message-Id: <201504062313.t36ND1nT040557@gw.catspoiler.org> Date: Mon, 6 Apr 2015 16:13:01 -0700 (PDT) From: Don Lewis Subject: Re: panic: object has cached pages on recent HEAD To: current@FreeBSD.org In-Reply-To: <201504062105.t36L54nr040291@gw.catspoiler.org> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Apr 2015 23:13:09 -0000 On 6 Apr, To: current@freebsd.org wrote: > I just got this panic on my port builder machine running a recent > version of HEAD (last updated in the last few days): > > panic: object has cached pages on recent HEAD > > As you can see, I was pushing it really hard: > > last pid: 76867; load averages: 62.92, 41.93, 41.40 up 7+10:24:04 13:45:01 > 448 processes: 97 running, 344 sleeping, 7 stopped > CPU: 79.1% user, 0.0% nice, 20.9% system, 0.0% interrupt, 0.0% idle > Mem: 5887M Active, 163M Inact, 6085M Wired, 17M Cache, 832K Buf, 3658M Free > ARC: 1482M Total, 163M MFU, 663M MRU, 7080K Anon, 70M Header, 579M Other > Swap: 40G Total, 9167M Used, 31G Free, 22% Inuse, 1152K In > > PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND > 73630 root 1 77 0 195M 181M CPU5 5 0:06 37.28% cc1plus > 75387 root 1 78 0 209M 193M RUN 2 0:06 36.60% cc1plus > 75615 root 1 74 0 150M 133M RUN 7 0:04 36.20% cc1plus > 74151 root 1 78 0 306M 290M RUN 0 0:12 31.77% cc1plus > 72986 root 1 78 0 282M 264M RUN 5 0:19 30.24% cc1plus > 72985 root 1 77 0 292M 272M RUN 1 0:18 28.00% cc1plus > 75912 root 1 75 0 106M 97604K RUN 3 0:03 27.73% cc1plus > 74501 root 1 80 0 293M 280M RUN 7 0:11 27.14% cc1plus > 73442 root 1 77 0 329M 299M RUN 2 0:13 26.54% cc1plus > 75715 root 1 75 0 96996K 81424K RUN 3 0:02 22.51% cc1plus > 74645 root 1 78 0 252M 236M RUN 6 0:09 21.73% cc1plus > 75630 root 1 77 0 208M 189M RUN 4 0:08 19.27% cc1plus > 74324 root 1 78 0 322M 308M RUN 4 0:11 19.17% cc1plus > 75494 root 1 74 0 138M 126M RUN 4 0:04 19.07% cc1plus > 74848 root 1 73 0 98180K 85192K RUN 2 0:02 16.12% cc1plus > 76292 root 1 73 0 63108K 46904K RUN 0 0:01 15.92% cc1plus > > A screenshot with a backtrace is here: > > > Is there anything I should check in DDB before I reboot? I can get the > svn revision after I do that. > > I've never crashed this machine before, so I don't know if crashdumps > work. I was able to call doadump() from ddb, but when I rebooted, savecore was not able to find the dump. I dumped to swap, which is mirrored ... FreeBSD zipper.catspoiler.org 11.0-CURRENT FreeBSD 11.0-CURRENT #13 r280327M: Sun Mar 29 22:26:50 PDT 2015 I am running with this custom patch so that pre-compiled headers work with gcc: Index: sys/vm/vm_mmap.c =================================================================== --- sys/vm/vm_mmap.c (revision 280837) +++ sys/vm/vm_mmap.c (working copy) @@ -325,6 +325,8 @@ * There should really be a pmap call to determine a reasonable * location. */ + if (addr != 0 && (flags & MAP_ANON) == 0) + flags |= MAP_RESERVED0100; PROC_LOCK(td->td_proc); if (addr == 0 || (addr >= round_page((vm_offset_t)vms->vm_taddr) && @@ -1665,6 +1667,8 @@ else if ((flags & MAP_ALIGNMENT_MASK) != 0) findspace = VMFS_ALIGNED_SPACE(flags >> MAP_ALIGNMENT_SHIFT); + else if ((flags & MAP_RESERVED0100) != 0) + findspace = VMFS_ANY_SPACE; else findspace = VMFS_OPTIMAL_SPACE; rv = vm_map_find(map, object, foff, addr, size,