Re: dtrace ustack kernel panic

2011-08-03 Thread Andriy Gapon
on 03/08/2011 01:39 maestro something said the following:
> hm userland and CTF not that I know. I only recompiled the kernel with CTF. 
> Do I
> have to recompile userland (and would that be make world?) If so can i just 
> pass
> the same WITH_CTF=1 option to make?

I _think_ (as in: not sure) that for ustack() to work correctly it needs CTF
information for userland bits.

I've never done this myself, so be warned, but I guess that, yes, you need to
recompile/reinstall world with WITH_CTF=1.
Also, I seem to recall that there were some reports that some things were
getting broken because of WITH_CTF=1, so be cautious, plan a way to recover your
system from non-working world.
-- 
Andriy Gapon
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: dtrace ustack kernel panic

2011-08-03 Thread Andriy Gapon
on 03/08/2011 01:46 maestro something said the following:
> What do I have to recompile for the patch to be picked up?
> make libproc in /usr/src/lib

Correct way is:
$ cd /usr/src/lib/libproc
$ make obj
$ make depend
$ make
$ make install

-- 
Andriy Gapon
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: dtrace ustack kernel panic

2011-08-03 Thread Andriy Gapon
on 03/08/2011 03:47 maestro something said the following:
> now it seems that the ustack() action on i386 and FreeBSD-9.0BETA1 almost 
> works.
> 
> Almost because dtrace still exits (this time without an error message) The
> process for which the ustack should be genereated is terminated
> Here are the specifics:
> 
> fb90i386# dtrace -n 'syscall::accept:return / execname == "nc" / { ustack();}'
> dtrace: description 'syscall::accept:return ' matched 1 probe
> CPU IDFUNCTION:NAME
>   0  46457accept:return
>   libc.so.7`__sys_accept+0x7
>   0x3
>   0xed96e824
> 
> 
> This alsmost looks like a stack trace I'd say
> However, dtrace quits once I connect to nc
> 
> nc quits with the following error message
> 
> fb90i386# nc -vl 
> nc: Polling Error: Interrupted system call

This could be a combination of several factors.
First, for some reason nc gets EINTR in one of its system calls (poll(2)).
Second, nc treats EINTR as a serious error and exits.
Third, this is what happens on the dtrace side:
 30495 100974 dtrace   CALL  write(0x1,0x8035c2000,0x1a)
 30495 100974 dtrace   GIO   fd 1 wrote 26 bytes
   "libc.so.7`__sys_accept+0xc"
 30495 100974 dtrace   RET   write 26/0x1a
 30495 100974 dtrace   CALL  write(0x1,0x8035c2000,0x1)
 30495 100974 dtrace   GIO   fd 1 wrote 1 byte
   "
   "
 30495 100974 dtrace   RET   write 1
 30495 100974 dtrace   CALL  thr_kill(0x1c129,SIGUSR1)
 30495 100974 dtrace   RET   thr_kill 0
 30495 100974 dtrace   CALL  ptrace(PT_IO,0x771e,0x7fffbb10,0)
 30495 100974 dtrace   RET   ptrace 0
 30495 100974 dtrace   CALL  ptrace(PT_IO,0x771e,0x7fffbb10,0)
 30495 114985 dtrace   RET   _umtx_op -1 errno 4 Interrupted system call
 30495 100974 dtrace   RET   ptrace 0
 30495 114985 dtrace   PSIG  SIGUSR1 caught handler=0x80085d610 mask=0x5ffefedf
code=0x10007
 30495 100974 dtrace   CALL  _umtx_op(0x802007668,0x15,0x1,0,0)
 30495 114985 dtrace   CALL  sigprocmask(SIG_SETMASK,0x7fbfd9fc,0)
 30495 100974 dtrace   RET   _umtx_op 0
 30495 114985 dtrace   RET   sigprocmask 0
 30495 100974 dtrace   CALL  _umtx_op(0x800a71778,0xf,0,0,0)
 30495 114985 dtrace   CALL  sigreturn(0x7fbfd630)
 30495 114985 dtrace   RET   sigreturn JUSTRETURN
 30495 114985 dtrace   CALL  ptrace(PT_CONTINUE,0x771e,0x1,0)
 30495 114985 dtrace   RET   ptrace 0
 30495 114985 dtrace   CALL  ptrace(PT_IO,0x771e,0x7fbfdee0,0)
 30495 114985 dtrace   RET   ptrace -1 errno 16 Device busy
 30495 114985 dtrace   CALL  _umtx_op(0x80200d668,0x15,0x1,0,0)
 30495 114985 dtrace   RET   _umtx_op 0
 30495 114985 dtrace   CALL  madvise(0x803c52000,0x11000,MADV_FREE)
 30495 114985 dtrace   RET   madvise 0
 30495 114985 dtrace   CALL  madvise(0x803c1d000,0x14000,MADV_FREE)
 30495 114985 dtrace   RET   madvise 0
 30495 114985 dtrace   CALL  madvise(0x803c07000,0x1000,MADV_FREE)
 30495 114985 dtrace   RET   madvise 0
 30495 114985 dtrace   CALL  madvise(0x8037fc000,0x2000,MADV_FREE)
 30495 114985 dtrace   RET   madvise 0
 30495 114985 dtrace   CALL  madvise(0x8037f2000,0x8000,MADV_FREE)
 30495 114985 dtrace   RET   madvise 0
 30495 114985 dtrace   CALL  madvise(0x8037f,0x1000,MADV_FREE)
 30495 100974 dtrace   RET   _umtx_op 0
 30495 114985 dtrace   RET   madvise 0
 30495 100974 dtrace   CALL  ptrace(PT_DETACH,0x771e,0,0)
 30495 114985 dtrace   CALL  madvise(0x8037e,0x9000,MADV_FREE)
 30495 100974 dtrace   RET   ptrace -1 errno 3 No such process

Looks like something fishy happens when that SIGUSR1 is generated.
I wish a dtrace-for-userland expert and/or a ptrace(2) expert could help us 
here.

-- 
Andriy Gapon
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: dtrace ustack kernel panic

2011-08-03 Thread Andriy Gapon
on 03/08/2011 11:42 Andriy Gapon said the following:
> on 03/08/2011 03:47 maestro something said the following:
>> now it seems that the ustack() action on i386 and FreeBSD-9.0BETA1 almost 
>> works.
>>
>> Almost because dtrace still exits (this time without an error message) The
>> process for which the ustack should be genereated is terminated
>> Here are the specifics:
>>
>> fb90i386# dtrace -n 'syscall::accept:return / execname == "nc" / { 
>> ustack();}'
>> dtrace: description 'syscall::accept:return ' matched 1 probe
>> CPU IDFUNCTION:NAME
>>   0  46457accept:return
>>   libc.so.7`__sys_accept+0x7
>>   0x3
>>   0xed96e824
>>
>>
>> This alsmost looks like a stack trace I'd say
>> However, dtrace quits once I connect to nc
>>
>> nc quits with the following error message
>>
>> fb90i386# nc -vl 
>> nc: Polling Error: Interrupted system call
> 
> This could be a combination of several factors.
> First, for some reason nc gets EINTR in one of its system calls (poll(2)).
> Second, nc treats EINTR as a serious error and exits.

Looks like nc gets EINTR when dtrace does ptrace(PT_CONTINUE).
So this is the culprit for your test case.

> Third, this is what happens on the dtrace side:

Recorded dtrace behavior seems to be correct.

>  30495 100974 dtrace   CALL  write(0x1,0x8035c2000,0x1a)
>  30495 100974 dtrace   GIO   fd 1 wrote 26 bytes
>"libc.so.7`__sys_accept+0xc"
>  30495 100974 dtrace   RET   write 26/0x1a
>  30495 100974 dtrace   CALL  write(0x1,0x8035c2000,0x1)
>  30495 100974 dtrace   GIO   fd 1 wrote 1 byte
>"
>"
>  30495 100974 dtrace   RET   write 1
>  30495 100974 dtrace   CALL  thr_kill(0x1c129,SIGUSR1)
>  30495 100974 dtrace   RET   thr_kill 0
>  30495 100974 dtrace   CALL  ptrace(PT_IO,0x771e,0x7fffbb10,0)
>  30495 100974 dtrace   RET   ptrace 0
>  30495 100974 dtrace   CALL  ptrace(PT_IO,0x771e,0x7fffbb10,0)
>  30495 114985 dtrace   RET   _umtx_op -1 errno 4 Interrupted system call
>  30495 100974 dtrace   RET   ptrace 0
>  30495 114985 dtrace   PSIG  SIGUSR1 caught handler=0x80085d610 
> mask=0x5ffefedf
> code=0x10007
>  30495 100974 dtrace   CALL  _umtx_op(0x802007668,0x15,0x1,0,0)
>  30495 114985 dtrace   CALL  sigprocmask(SIG_SETMASK,0x7fbfd9fc,0)
>  30495 100974 dtrace   RET   _umtx_op 0
>  30495 114985 dtrace   RET   sigprocmask 0
>  30495 100974 dtrace   CALL  _umtx_op(0x800a71778,0xf,0,0,0)
>  30495 114985 dtrace   CALL  sigreturn(0x7fbfd630)
>  30495 114985 dtrace   RET   sigreturn JUSTRETURN
>  30495 114985 dtrace   CALL  ptrace(PT_CONTINUE,0x771e,0x1,0)
>  30495 114985 dtrace   RET   ptrace 0
>  30495 114985 dtrace   CALL  ptrace(PT_IO,0x771e,0x7fbfdee0,0)
>  30495 114985 dtrace   RET   ptrace -1 errno 16 Device busy
>  30495 114985 dtrace   CALL  _umtx_op(0x80200d668,0x15,0x1,0,0)
>  30495 114985 dtrace   RET   _umtx_op 0
>  30495 114985 dtrace   CALL  madvise(0x803c52000,0x11000,MADV_FREE)
>  30495 114985 dtrace   RET   madvise 0
>  30495 114985 dtrace   CALL  madvise(0x803c1d000,0x14000,MADV_FREE)
>  30495 114985 dtrace   RET   madvise 0
>  30495 114985 dtrace   CALL  madvise(0x803c07000,0x1000,MADV_FREE)
>  30495 114985 dtrace   RET   madvise 0
>  30495 114985 dtrace   CALL  madvise(0x8037fc000,0x2000,MADV_FREE)
>  30495 114985 dtrace   RET   madvise 0
>  30495 114985 dtrace   CALL  madvise(0x8037f2000,0x8000,MADV_FREE)
>  30495 114985 dtrace   RET   madvise 0
>  30495 114985 dtrace   CALL  madvise(0x8037f,0x1000,MADV_FREE)
>  30495 100974 dtrace   RET   _umtx_op 0
>  30495 114985 dtrace   RET   madvise 0
>  30495 100974 dtrace   CALL  ptrace(PT_DETACH,0x771e,0,0)
>  30495 114985 dtrace   CALL  madvise(0x8037e,0x9000,MADV_FREE)
>  30495 100974 dtrace   RET   ptrace -1 errno 3 No such process
> 
> Looks like something fishy happens when that SIGUSR1 is generated.
> I wish a dtrace-for-userland expert and/or a ptrace(2) expert could help us 
> here.
> 


-- 
Andriy Gapon
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: 9.0 B1 Panic

2011-08-03 Thread John Baldwin
On Tuesday, August 02, 2011 5:11:58 pm Martin Wilke wrote:
> 
> On Aug 3, 2011, at 12:56 AM, John Baldwin wrote:
> 
> > On Tuesday, August 02, 2011 8:58:10 am Martin Wilke wrote:
> >> 
> >> On Aug 2, 2011, at 6:58 PM, Lystopad Olexandr wrote:
> >> 
> >>> Hello, Martin Wilke!
> >>> 
> >>> On Tue, Aug 02, 2011 at 12:41:29PM +0800
> >>> m...@freebsd.org wrote about "9.0 B1 Panic":
>  9.0 Beta1 Panic
>  
>  Hi guys,
>  
>  I just downloaded and install  9.0 BETA1 but it panics on ACPI. Please 
> > view attached screenshot for the error. If you need more information, do 
let 
> > us know.
> >>> 
> >>> There no attachments in your mail.
> >> 
> >> 
> >> Erms Sorry forgot about that.
> >> 
> >> http://people.freebsd.org/~miwi/90b1.png
> > 
> > Can you get a stack trace?
> 
> Hi,
> unfortunately no, because the system freeze few sec after the panic.

Can you set the loader tunable to force an automatic trace on panic?

-- 
John Baldwin
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"