Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 May 2011 22:55:55 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        arch@freebsd.org
Subject:   Re: [PATCH] Add ktrace records for user page faults
Message-ID:  <20110502195555.GC48734@deviant.kiev.zoral.com.ua>
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

--Qcz4xfO8nvR/PV7q
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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=
=20
> instead of in userland.  ktrace already provides records for syscall=20
> entry/exit.  The other major source of time spent in the kernel that I've=
 seen=20
> is page fault handling.  To that end, I have a patch that adds ktrace rec=
ords=20
> to the beginning and end of VM faults.  This gives a pair of records so a=
 user=20
> can see how long a fault took (similar to how one can see how long a sysc=
all=20
> takes now).  Sample output from kdump is below:
>=20
>  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
>=20
> The patch is available at www.freebsd.org/~jhb/patches/ktrace_fault.patch=
 and=20
> included below.

One immediate detail is that trap() truncates the fault address to the
page address, that arguably looses useful information.

--Qcz4xfO8nvR/PV7q
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (FreeBSD)

iEYEARECAAYFAk2/DEsACgkQC3+MBN1Mb4jLCQCeOFcMzhtRL8/aHutAqSaKl2wz
7XUAn3O73HqERdXiKwFLqqC+yHJLl2//
=Dcqf
-----END PGP SIGNATURE-----

--Qcz4xfO8nvR/PV7q--



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