Re: ULE status, invalid load, buildkernel times.

From: Jeff Roberson <jroberson_at_chesapeake.net>
Date: Mon, 23 Jul 2007 15:24:01 -0700 (PDT)
On Mon, 23 Jul 2007, Matt wrote:

> On 7/21/07, Jeff Roberson <jroberson_at_chesapeake.net> wrote:
>> I have a patch available at:
>> 
>> http://people.freebsd.org/~jeff/ulehtt.diff
>> 
>> This resolves issues in the code that handles HTT enabled processors and
>> also adds some ULE information to bootverbose on SMP systems.  Peter Wemm
>> has a seperate patch that fixes a bug where some amd64 cpus were still
>> being misidentified as HTT.  Those of you with invalid loads either have
>> Hyper-threading CPUs or misidentified amd cores.  You should expect
>> slightly poorer performance as long as your cores are misidentified but
>> the bad loads should be fixed.
>> 
>> I also believe that the buildkernel/world times are now significantly
>> improved.  If this is not the case for you please send a mail.  Any other
>> performance data is appreciated.
>> 
>> Thanks,
>> Jeff
>> _______________________________________________
>> freebsd-current_at_freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>> 
>
> -current system with sources update July 22 at approx. 3PM central
> time with the ulehtt.diff patch applied experienced a panic this
> afternoon while restarting a local Apache Tomcat server.  Backtrace
> information is shown below.  Unclear to me whether or not the patch
> and the panic are related.

I suspect that this is unrelated to my patch but I can't say for certain. 
There have been some kse locking problems that Attilio has a patch for.  I 
believe it went in today.  Hopefully he will comment.

This does show that you are using libkse which is deprecated.  You should 
switch to libthr as it will perform significantly better for you.

Thanks,
Jeff

>
> Matt
>
> (kgdb) mtosto-bsd# kgdb kernel.debug /var/crash/vmcore.1
> [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".
>
> Unread portion of the kernel message buffer:
> panic: kse_wakeup: no owner
> cpuid = 1
> Uptime: 23h29m24s
> Physical memory: 2030 MB
> Dumping 288 MB: 273 257 241 225 209 193 177 161 145 129 113 97 81 65 49 33 17 
> 1
>
> #0  doadump () at pcpu.h:195
> 195             __asm __volatile("movl %%fs:0,%0" : "=r" (td));
> (kgdb) bt
> #0  doadump () at pcpu.h:195
> #1  0xc05d57c7 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
> #2  0xc05d5abb in panic (fmt=Variable "fmt" is not available.
> ) at /usr/src/sys/kern/kern_shutdown.c:563
> #3  0xc05bc398 in kse_wakeup (td=0xc5f99440, uap=0xe8787cfc)
>   at /usr/src/sys/kern/kern_kse.c:536
> #4  0xc0829355 in syscall (frame=0xe8787d38) at
> /usr/src/sys/i386/i386/trap.c:1006
> #5  0xc080f1b0 in Xint0x80_syscall () at 
> /usr/src/sys/i386/i386/exception.s:196
> #6  0x00000033 in ?? ()
> Previous frame inner to this frame (corrupt stack?)
> (kgdb) list *0xc05bc398
> 0xc05bc398 is in kse_wakeup (/usr/src/sys/kern/kern_kse.c:537).
> 532                     return (ESRCH);
> 533             }
> 534             if ((td2 = ku->ku_owner) == NULL) {
> 535                     PROC_SUNLOCK(p);
> 536                     panic("%s: no owner", __func__);
> 537             } else if (td2->td_kflags & (TDK_KSEREL | TDK_KSERELSIG)) {
> 538                     if (!(td2->td_kflags & TDK_WAKEUP)) {
> 539                             td2->td_kflags |= TDK_WAKEUP;
> 540                             if (td2->td_kflags & TDK_KSEREL)
> 541                                     sleepq_remove(td2, &p->p_completed);
> (kgdb) list *0xc0829355
> 0xc0829355 is in syscall (/usr/src/sys/i386/i386/trap.c:1006).
> 1001                    STOPEVENT(p, S_SCE, narg);
> 1002
> 1003                    PTRACESTOP_SC(p, td, S_PT_SCE);
> 1004
> 1005                    AUDIT_SYSCALL_ENTER(code, td);
> 1006                    error = (*callp->sy_call)(td, args);
> 1007                    AUDIT_SYSCALL_EXIT(error, td);
> 1008            }
> 1009
> 1010            switch (error) {
> (kgdb) list *0xc080f1b0
> 0xc080f1b0 is at /usr/src/sys/i386/i386/exception.s:197.
> 192             pushl   %fs
> 193             SET_KERNEL_SREGS
> 194             FAKE_MCOUNT(TF_EIP(%esp))
> 195             pushl   %esp
> 196             call    syscall
> 197             add     $4, %esp
> 198             MEXITCOUNT
> 199             jmp     doreti
> 200
> 201     ENTRY(fork_trampoline)
> (kgdb)
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>
Received on Mon Jul 23 2007 - 20:21:01 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:15 UTC