Re: ULE Status.

From: Jeff Roberson <jroberson_at_chesapeake.net>
Date: Mon, 6 Jun 2005 15:12:59 -0400 (EDT)
On Mon, 6 Jun 2005, Norikatsu Shigemura wrote:

> On Sun, 5 Jun 2005 22:36:38 +0900 (JST)
> Norikatsu Shigemura <nork_at_freebsd.org> wrote:
> > > I just fixed what should be the last ULE+KSE+PREEMPTION bug.  Please let
> > > me know if you run into any problems with it, preferably with a seperate
> > > mail to me as I'm more likely to see this than one which is cc'd to
> > > current_at_.
> > 	Wow! that's cool!
> > 	I tried to 'nice -20 make -j1024 buildworld' with
> > 	SCHED_ULE and PREEMPTION kernel options.  I contacted a
> > 	panic like following, and sorry, I cannot get a crash dump.
>

Is this on CURRENT or 5.x?  What is your sched_ule.c version?  I'm doing
this on CURRENT while playing a movie with mplayer without issue.

> 	I got a crash dump!
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> [thread pid 31 tid 100026 ]
> Stopped at      sched_add+0xc:  movl    0x150(%eax),%ebx
> db> where
> Tracing pid 31 tid 100026 td 0xc2c58320
> sched_add(0,0,c0480b11,c3a3f4b0,10) at sched_add+0xc
> setrunqueue(c3a3f4b0,0,c3a3f604,c3a3f4b0,c3a3f4b0) at setrunqueue+0x178
> adjustrunqueue(c3a3f4b0,10,10,10c58320,c2c58320) at adjustrunqueue+0xd1
> sched_thread_priority(c3a3f4b0,10,e5db0c78,c04c7f9e,c3a3f4b0) at sched_thread_priority+0xb4
> sched_lend_prio(c3a3f4b0,10,c2c50008,28,c2c50028) at sched_lend_prio+0x1d
> propagate_priority(c2c58320,e5db0ca8,c04c849d,c2e14274,0) at propagate_priority+0x4e
> turnstile_wait(c06d0b60,c3a3f4b0,c2d022c0,4,c2c59c00) at turnstile_wait+0x34d
> _mtx_lock_sleep(c06d0b60,c2c58320,0,0,0) at _mtx_lock_sleep+0x111
> ithread_loop(c2c59c00,e5db0d38,fefffefe,fbffeffd,ffffefff) at ithread_loop+0x19c
> fork_exit(c0480c50,c2c59c00,e5db0d38) at fork_exit+0x80
> fork_trampoline() at fork_trampoline+0x8
> --- trap 0x1, eip = 0, esp = 0xe5db0d6c, ebp = 0 ---
> db> show pcpu 0
> cpuid        = 0
> curthread    = 0xc33a5000: pid 834 "Xorg"
> curpcb       = 0xf83cad90
> fpcurthread  = none
> idlethread   = 0xc2c097d0: pid 12 "idle: cpu0"
> APIC ID      = 0
> currentldt   = 0x50
> db> show pcpu 1
> cpuid        = 1
> curthread    = 0xc2c58320: pid 31 "irq19: fwohci0 fxp+"
> curpcb       = 0xe5db0d90
> fpcurthread  = none
> idlethread   = 0xc2c09640: pid 11 "idle: cpu1"
> APIC ID      = 1
> currentldt   = 0x50
> db> call doadump()
> Dumping 1535 MB
> [CTRL-C to abort]  16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 272 288 304 320 336 352 368 384 400 416 432 448 464 480 496 512 528 544 560 576 592 608 624 640 656 672 688 704 720 736 752 768 784 800 816 832 848 864 880 896 912 928 944 960 976 992 1008 1024 1040 1056 1072 1088 1104 1120 1136 1152 1168 1184 1200 1216 1232 1248 1264 1280 1296 1312 1328 1344 1360 1376 1392 1408 1424 1440 1456 1472 1488 1504 1520
> Dump complete
> 0xf
> db> reset
> cpu_reset: Restarting BSP
> cpu_reset_proxy: Stopped CPU 1
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> # kgdb -c /var/crash/vmcore.53 /boot/kernel/kernel.debug
> [GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
> GNU gdb 6.1.1 [FreeBSD]
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i386-marcel-freebsd".
> #0  doadump () at pcpu.h:165
> 165             __asm __volatile("movl %%fs:0,%0" : "=r" (td));
> (kgdb) where
> #0  doadump () at pcpu.h:165
> #1  0xc0430b45 in db_fncall (dummy1=-438629904, dummy2=0, dummy3=115200,
>     dummy4=0xe5db09d4 "_at_qnÀø\003") at /usr/src/sys/ddb/db_command.c:531
> #2  0xc04308d2 in db_command (last_cmdp=0xc068afc4, cmd_table=0x0,
>     aux_cmd_tablep=0xc0661264, aux_cmd_tablep_end=0xc0661268)
>     at /usr/src/sys/ddb/db_command.c:349
> #3  0xc04309e5 in db_command_loop () at /usr/src/sys/ddb/db_command.c:455
> #4  0xc0432b65 in db_trap (type=12, code=0) at /usr/src/sys/ddb/db_main.c:221
> #5  0xc04bdb5e in kdb_trap (type=0, code=0, tf=0xe5db0b70)
>     at /usr/src/sys/kern/subr_kdb.c:471
> #6  0xc0625296 in trap_fatal (frame=0xe5db0b70, eva=0)
>     at /usr/src/sys/i386/i386/trap.c:826
> #7  0xc0624894 in trap (frame=
>       {tf_fs = 8, tf_es = -438632408, tf_ds = -438632408, tf_edi = -1012665168, tf_esi = -1019570208, tf_ebp = -438629412, tf_isp = -438629476, tf_ebx = -1012665168, tf_edx = 0, tf_ecx = -1012225728, tf_eax = 0, tf_trapno = 12, tf_err = 0, tf_eip = -1068810564, tf_cs = 32, tf_eflags = 65666, tf_esp = -1027539100, tf_ss = 1}) at /usr/src/sys/i386/i386/trap.c:269
> #8  0xc06104da in calltrap () at /usr/src/sys/i386/i386/exception.s:139
> #9  0x00000008 in ?? ()
> #10 0xe5db0028 in ?? ()
> #11 0xe5db0028 in ?? ()
> #12 0xc3a3f4b0 in ?? ()
> #13 0xc33a97e0 in ?? ()
> #14 0xe5db0bdc in ?? ()
> #15 0xe5db0b9c in ?? ()
> #16 0xc3a3f4b0 in ?? ()
> #17 0x00000000 in ?? ()
> #18 0xc3aaa940 in ?? ()
> #19 0x00000000 in ?? ()
> #20 0x0000000c in ?? ()
> #21 0x00000000 in ?? ()
> #22 0xc04b3ebc in sched_add (td=0x0, flags=0)
>     at /usr/src/sys/kern/sched_ule.c:1745
> #23 0xc04b4988 in setrunqueue (td=0xc3a3f4b0, flags=0) at kern_switch.c:564
> #24 0xc04b46a1 in adjustrunqueue (td=0xc3a3f4b0, newpri=16)
>     at kern_switch.c:325
> #25 0xc04b3354 in sched_thread_priority (td=0xc3a3f4b0, prio=16 '\020')
>     at /usr/src/sys/kern/sched_ule.c:1235
> #26 0xc04b339d in sched_lend_prio (td=0x0, prio=16 '\020')
>     at /usr/src/sys/kern/sched_ule.c:1250
> #27 0xc04c7f9e in propagate_priority (td=0xc3a3f4b0)
>     at /usr/src/sys/kern/subr_turnstile.c:204
> #28 0xc04c8a7d in turnstile_wait (lock=0xc06d0b60, owner=0x0)
>     at /usr/src/sys/kern/subr_turnstile.c:629
> #29 0xc0490351 in _mtx_lock_sleep (m=0xc06d0b60, td=0xc2c58320, opts=0,
>     file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:550
> #30 0xc0480dec in ithread_loop (arg=0xc2c59c00)
>     at /usr/src/sys/kern/kern_intr.c:545
> #31 0xc047fa60 in fork_exit (callout=0xc0480c50 <ithread_loop>, arg=0x0,
>     frame=0x0) at /usr/src/sys/kern/kern_fork.c:789
> #32 0xc061053c in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:208
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
Received on Mon Jun 06 2005 - 17:13:01 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:35 UTC