[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-arch
Subject:    Re: [PATCH] Add ktrace records for user page faults
From:       Jilles Tjoelker <jilles () stack ! nl>
Date:       2011-05-04 21:26:04
Message-ID: 20110504212604.GA13717 () stack ! nl
[Download RAW message or body]

On Mon, May 02, 2011 at 03:37:19PM -0400, John Baldwin wrote:
> One thing I have found useful is knowing when processes are in the
> kernel instead of in userland.  ktrace already provides records for
> syscall entry/exit.  The other major source of time spent in the
> kernel that I've seen is page fault handling.  To that end, I have a
> patch that adds ktrace records to the beginning and end of VM faults.
> This gives a pair of records so a user can see how long a fault took
> (similar to how one can see how long a syscall takes now).  Sample
> output from kdump is below:

>  47565 echo     CALL  mmap(0x800a87000,0x179000,PROT_READ|
> PROT_WRITE,MAP_PRIVATE|MAP_ANON,0xffffffff,0)
>  47565 echo     RET   mmap 34370777088/0x800a87000
>  47565 echo     PFLT  0x800723000 VM_PROT_EXECUTE
>  47565 echo     RET   KERN_SUCCESS
>  47565 echo     CALL  munmap(0x800887000,0x179000)
>  47565 echo     RET   munmap 0
>  47565 echo     PFLT  0x800a00000 VM_PROT_WRITE
>  47565 echo     RET   KERN_SUCCESS

Just a small nitpick, I think the return from a page fault should not
use the same "RET" keyword; even though the next word unambiguously
distinguishes it from a return from a syscall, I think it is clearer in
the documentation and possibly useful for automated processing to use a
separate keyword such as "PRET".

-- 
Jilles Tjoelker
_______________________________________________
freebsd-arch@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arch
To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic