On Fri, May 11, 2018 at 12:29:30AM -0700, Matthew Macy wrote: > Yes. Can you give me the line number for epoch_call_task+0x7b >
(kgdb) l *epoch_call_task+0x7b 0xffffffff80bb68db is in epoch_call_task (/usr/src/sys/kern/subr_epoch.c:560). 555 td = curthread; 556 thread_lock(td); 557 CPU_FOREACH(cpu) { 558 sched_bind(td, cpu); 559 eps = epoch->e_pcpu[cpu]; 560 if (!STAILQ_EMPTY(&eps->eps_cblist)) 561 STAILQ_CONCAT(&tmp_head, &eps->eps_cblist); 562 } 563 sched_unbind(td); 564 thread_unlock(td); (kgdb) - Peter > > On Fri, May 11, 2018 at 12:18 AM, Peter Holm <pe...@holm.cc> wrote: > > 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 p...@t2.osted.lan:/usr/obj/usr/src/amd64.amd64/sys/PHO\012 > > db> > > > > - Peter _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"