Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 May 2011 23:26:04 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        John Baldwin <jhb@freebsd.org>
Cc:        arch@freebsd.org
Subject:   Re: [PATCH] Add ktrace records for user page faults
Message-ID:  <20110504212604.GA13717@stack.nl>
In-Reply-To: <201105021537.19507.jhb@freebsd.org>
References:  <201105021537.19507.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110504212604.GA13717>