Date: Tue, 16 Oct 2001 09:29:45 -0700 (PDT) From: Matthew Dillon <dillon@apollo.backplane.com> To: Dag-Erling Smorgrav <des@ofug.org> Cc: Bruce Evans <bde@zeta.org.au>, <cvs-committers@FreeBSD.ORG>, <cvs-all@FreeBSD.ORG> Subject: Re: cvs commit: src/sys/vm vnode_pager.c Message-ID: <200110161629.f9GGTju31481@apollo.backplane.com>
next in thread | raw e-mail | index | archive | help
:I did 'kgmon -rb ; sync ; sync ; sync ; kgmon -hpr'. The results are :attached. : :BTW, it should be possible to make profiling a normal kernel option :(with a little help from 'makeoptions' like we do for debugging). :It'd take a few changes to conf/{files,options} and the Makefile :skeletons, but it would allow us to remove quite a bit of special- :case code from config(8). : :DES :-- :Dag-Erling Smorgrav - des@ofug.org Ugh. This is -current. All bets are off. In anycase, this profile output appears to indicate that your problem is not quota-related, but instead mutex related. ffs_sync() in -current is doing a lot of mutex operations in the loop. If you have various -current mutex debugging options turned on, even the default ones I think, this could be responsible for the latency you are experiencing. Each scan loop is doing four mutex ops. -Matt :[1] 89.5 32.81 0.05 1046526+4696024 <cycle 1 as a whole> [1] : 32.31 0.03 1168605 _mtx_unlock_spin_flags <cycle 1> [2] : :[2] 88.0 32.31 0.03 1168605 _mtx_unlock_spin_flags <cycle 1> [2] : 0.03 0.00 1168605/1720935 _mtx_assert [86] : 1168605 witness_unlock <cycle 1> [37] :[5] 79.3 0.00 29.14 3082 syscall [5] : 0.00 26.60 3/3 sync [7] : :----------------------------------------------- : : 0.38 25.49 15/16 sync [7] :[6] 75.1 0.41 27.19 16 ffs_sync [6] : 0.09 13.52 429901/465440 _mtx_unlock_flags [8] : 0.08 13.50 429904/465456 _mtx_lock_flags [9] : :----------------------------------------------- : : 0.00 26.60 3/3 syscall [5] :[7] 72.4 0.00 26.60 3 sync [7] : 0.38 25.49 15/16 ffs_sync [6] : :----------------------------------------------- :[15] 4.8 0.00 1.76 sched_sync [15] : 0.00 1.75 1/1 sync_fsync [16] :----------------------------------------------- : : 0.00 1.75 1/1 sched_sync [15] :[16] 4.8 0.00 1.75 1 sync_fsync [16] : 0.03 1.70 1/16 ffs_sync [6] : 0.01 0.02 1/25 vfs_msync [17] : :----------------------------------------------- : : 0.01 0.02 1/25 sync_fsync [16] : 0.17 0.55 24/25 sync [7] :[17] 2.0 0.18 0.57 25 vfs_msync [17] : 0.13 0.44 214914/219311 ufs_vnoperate <cycle 2> [39] : 0.00 0.00 25/465440 _mtx_unlock_flags [8] : 0.00 0.00 25/465456 _mtx_lock_flags [9] : 0.00 0.00 141/219311 spec_vnoperate <cycle 2> [49] : 0.00 0.00 18/219311 vop_defaultop <cycle 2> [68] : 0.00 0.00 6/219311 ufs_vnoperatefifo <cycle 2> [340] : 0.00 0.00 25/1720935 _mtx_assert [86] : 0.00 0.00 25/26 vop_eopnotsupp [677] : To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200110161629.f9GGTju31481>