From owner-svn-src-all@freebsd.org Fri May 11 07:24:30 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 41F76FC3FFE; Fri, 11 May 2018 07:24:30 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay01.pair.com (relay01.pair.com [209.68.5.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D2C266FAE7; Fri, 11 May 2018 07:24:29 +0000 (UTC) (envelope-from pho@holm.cc) Received: from x2.osted.lan (87-58-223-204-dynamic.dk.customer.tdc.net [87.58.223.204]) by relay01.pair.com (Postfix) with ESMTP id 9E778D010B3; Fri, 11 May 2018 03:18:56 -0400 (EDT) Received: from x2.osted.lan (localhost [127.0.0.1]) by x2.osted.lan (8.14.9/8.14.9) with ESMTP id w4B7IsxF035547 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 11 May 2018 09:18:54 +0200 (CEST) (envelope-from pho@x2.osted.lan) Received: (from pho@localhost) by x2.osted.lan (8.14.9/8.14.9/Submit) id w4B7IsKm035546; Fri, 11 May 2018 09:18:54 +0200 (CEST) (envelope-from pho) Date: Fri, 11 May 2018 09:18:54 +0200 From: Peter Holm To: Matt Macy Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r333480 - head/sys/kern Message-ID: <20180511071854.GA35451@x2.osted.lan> References: <201805110454.w4B4sDpx067946@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201805110454.w4B4sDpx067946@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 07:24:30 -0000 On Fri, May 11, 2018 at 04:54:13AM +0000, Matt Macy wrote: > Author: mmacy > Date: Fri May 11 04:54:12 2018 > New Revision: 333480 > URL: https://svnweb.freebsd.org/changeset/base/333480 > > Log: > epoch(9): fix priority handling, make callback lists pcpu, and other fixes > > - Lend priority to preempted threads in epoch_wait to handle the case > in which we've had priority lent to us. Previously we borrowed the > priority of the lowest priority preempted thread. (pointed out by mjg@) > > - Don't attempt allocate memory per-domain on powerpc, we don't currently > handle empty sockets (as is the case on jhibbits Talos' board). > > - Handle deferred callbacks as pcpu lists and poll the lists periodically. > Currently the interval is 1/hz. > > - Drop the thread lock when adaptive spinning. Holding the lock starves > other threads and can even lead to lockups. > > - Keep a generation count pcpu so that we don't keep spining if a thread > has left and re-entered an epoch section. > > - Actually removed the callback from the callback list so that we don't > double free. Sigh ... > > Approved by: sbruno@ > > Modified: > head/sys/kern/subr_epoch.c > > Modified: head/sys/kern/subr_epoch.c > ============================================================================== > --- head/sys/kern/subr_epoch.c Fri May 11 04:47:05 2018 (r333479) Could this be yours? cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed WARNING: WITNESS option enabled, expect reduced performance. WARNING: DIAGNOSTIC option enabled, expect reduced performance. Trying to mount root from ufs:/dev/da0p2 [rw]... Expensive timeout(9) function: 0xffffffff809f20d0(0xffffffff81af5140) 0.006730830 s uhub1: 4 ports with 4 removable, self powered kernel trap 12 with interrupts disabled Fatal trap 12: page fault while in kernel mode cpuid = 12; apic id = 20 fault virtual address = 0x100 fault code = supervisor read data, page not present instruction pointer = 0x20:0xffffffff80bb68db stack pointer = 0x0:0xfffffe00004e19b0 frame pointer = 0x0:0xfffffe00004e19f0 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = resume, IOPL = 0 current process = 0 (config_0) [ thread pid 0 tid 100081 ] Stopped at epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx db> show registers cs 0x20 ds 0x3b ll+0x1a es 0x3b ll+0x1a fs 0x13 gs 0x1b ss 0 rax 0 rcx 0x858 ll+0x837 rdx 0xffffffff812f6968 rbx 0xc rsp 0xfffffe00004e19b0 rbp 0xfffffe00004e19f0 rsi 0x14 rdi 0 r8 0xfffff800038f3000 r9 0xffffffff81ff1620 vmspace0+0x130 r10 0xfffff800038f3000 r11 0x40 ll+0x1f r12 0xfffffe00004e19b8 r13 0xc r14 0xfffff8001f0ed400 r15 0xfffff800038f3000 rip 0xffffffff80bb68db epoch_call_task+0x7b rflags 0x10086 epoch_call_task+0x7b: movq ll+0xdf(%rax),%rcx db> bt Tracing pid 0 tid 100081 td 0xfffff800038f3000 epoch_call_task() at epoch_call_task+0x7b/frame 0xfffffe00004e19f0 gtaskqueue_run_locked() at gtaskqueue_run_locked+0x139/frame 0xfffffe00004e1a40 gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0x88/frame 0xfffffe00004e1a70 fork_exit() at fork_exit+0x84/frame 0xfffffe00004e1ab0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00004e1ab0 --- trap 0, rip = 0, rsp = 0, rbp = 0 --- db> x/s version version: FreeBSD 12.0-CURRENT #0 r333481: Fri May 11 09:08:40 CEST 2018\012 pho@t2.osted.lan:/usr/obj/usr/src/amd64.amd64/sys/PHO\012 db> - Peter