On Wed, Dec 13, 2006 at 10:42:03PM +0000, Dieter wrote:
> > Mutex profiling would show if there is a mutex somehow getting in the
> > way of your I/O (e.g. if Giant is somehow being forced).  I dont think
> > it would show anything though.  You can try to study interrupt issues
> > (e.g. look for an interrupt storm during I/O) with vmstat -i.  Other
> > than that you'd probably have to get your hands dirtier in the code.
> 
>    max        total       count   avg     cnt_hold     cnt_lock name
> 1158725      1185330        1596   742            0            0 
> /usr/src/sys/amd64/amd64/pmap.c:1563 (pmap)
> 1158721      1166593        1596   730            1           17 
> /usr/src/sys/amd64/amd64/pmap.c:1562 (vm page queue mutex)
>  90598       578551      199304     2            3            4 
> /usr/src/sys/kern/kern_sx.c:157 (lockbuilder mtxpool)
>  83234       967612      124000     7            0            0 
> /usr/src/sys/vm/vm_fault.c:906 (vm object)
>  83102      2515439      450378     5            0            0 
> /usr/src/sys/kern/subr_sleepqueue.c:369 (process lock)
>  82878      2049540        3215   637          196            2 
> /usr/src/sys/kern/kern_synch.c:236 (Giant)
>  82632       947545      124000     7            0            4 
> /usr/src/sys/vm/vm_fault.c:295 (vm object)
>  82550       285981      124000     2            4            0 
> /usr/src/sys/vm/vm_fault.c:929 (process lock)
>  46745        46789          11  4253            0            0 
> /usr/src/sys/kern/vfs_subr.c:1041 (vm object)
>  46741        52927         646    81            1            0 
> /usr/src/sys/vm/vm_object.c:1775 (vm page queue mutex)
>  30068       105046        1230    85            2            0 
> /usr/src/sys/vm/vm_map.c:1380 (vm object)
>  24083       300793      136380     2            1            1 
> /usr/src/sys/vm/vm_object.c:454 (vm object)
>  24076        32222        2960    10            2            0 
> /usr/src/sys/vm/vm_object.c:625 (vm page queue mutex)
>  19419        70113        7295     9            0            0 
> /usr/src/sys/vm/vm_fault.c:787 (vm object)
>  16024        65388        5494    11            1            2 
> /usr/src/sys/vm/vnode_pager.c:1181 (vnode interlock)
>  16018        51608        8791     5            7            9 
> /usr/src/sys/vm/vnode_pager.c:1169 (vm object)
>  14398      1084811       25198    43          108            3 
> /usr/src/sys/kern/kern_sysctl.c:1280 (Giant)
>  11940       274443       37582     7            0            1 
> /usr/src/sys/kern/vfs_bio.c:3082 (vm object)
>  11567       625811      312742     2            0            2 
> /usr/src/sys/kern/kern_lock.c:168 (lockbuilder mtxpool)
>  11096        45666        5241     8            1            4 
> /usr/src/sys/vm/vm_map.c:2404 (vm object)
> 
> 
> If I'm reading the man page right, pmap holds a lock for over 1 second?

In total, over 1600 operations.  It's not an issue.

The rest looks fine at a quick glance too.

Kris

Attachment: pgpTmYq3vfOjT.pgp
Description: PGP signature

Reply via email to