From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yong Zhang Subject: Re: [PATCH] lockdep: Add nr_save_trace_invocations counter Date: Fri, 23 Apr 2010 16:00:14 +0800 Message-ID: <20100423080014.GB21328@windriver.com> References: <20100423025850.GA21328@windriver.com> Reply-To: Yong Zhang Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Cc: Peter Zijlstra , LKML , linux-rt-users , Sven-Thorsten Dietrich , Clark Williams , "Luis Claudio R. Goncalves" , Ingo Molnar , Thomas Gleixner , Gregory Haskins To: John Kacur Return-path: Received: from mail.windriver.com ([147.11.1.11]:47645 "EHLO mail.windriver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756504Ab0DWIBQ (ORCPT ); Fri, 23 Apr 2010 04:01:16 -0400 Content-Disposition: inline In-Reply-To: Sender: linux-rt-users-owner@vger.kernel.org List-ID: On Fri, Apr 23, 2010 at 09:24:55AM +0200, John Kacur wrote: > Some context here - Peter asked me to see if we could get some more > detailed stats on why some configurations reach the > MAX_STACK_TRACE_ENTRIES limit - whether the limit was really too low for > some circumstances, or whether we were counting somethings unnecessarily. > > In any case, I stamped a big NOT FOR INCLUSION on my mail, because I > noticed that somethings were redundant - albeit, obtained in a slightly > different manner, however, not everything is redundant. > > In particular, nr_save_trace_invocations is NOT equal to nr_list_entries. > You will see that reported in /proc/lockdep_stats as > direct dependencies: 8752 [max: 16384] > I have > stack-trace invocations: 10888 > from the same run. I missed that nr_save_trace_invocations is also increased in inc_save_trace_invocations(). So nr_save_trace_invocations = nr_list_entries + sum of nr_save_trace_invocations_type[]. > > Still trying to figure out what the meaning is of that though to be > honest. > > Here is a portion of the lockdep_stats, with all of the new fields and the > redundant ones. > > stack-trace invocations: 10888 > LOCK_USED_IN_HARDIRQ: 15 > LOCK_USED_IN_HARDIRQ_READ: 0 > LOCK_ENABLED_HARDIRQ: 543 > LOCK_ENABLED_HARDIRQ_READ: 28 > LOCK_USED_IN_SOFTIRQ: 0 > LOCK_USED_IN_SOFTIRQ_READ: 0 > LOCK_ENABLED_SOFTIRQ: 543 > LOCK_ENABLED_SOFTIRQ_READ: 28 > LOCK_USED_IN_RECLAIM_FS: 5 > LOCK_USED_IN_RECLAIM_FS_READ: 0 > LOCK_ENABLED_RECLAIM_FS: 95 > LOCK_ENABLED_RECLAIM_FS_READ: 8 > LOCK_USED: 871 > combined max dependencies: 139841 > hardirq-safe locks: 15 > hardirq-unsafe locks: 543 > softirq-safe locks: 0 > softirq-unsafe locks: 543 > irq-safe locks: 15 > irq-unsafe locks: 543 > hardirq-read-safe locks: 0 > hardirq-read-unsafe locks: 28 > softirq-read-safe locks: 0 > softirq-read-unsafe locks: 28 > irq-read-safe locks: 0 > irq-read-unsafe locks: 28 > > So, you see that all of the reclaim fields are new, > LOCK_USED_IN_RECLAIM_FS: 5 > LOCK_USED_IN_RECLAIM_FS_READ: 0 > LOCK_ENABLED_RECLAIM_FS: 95 > LOCK_ENABLED_RECLAIM_FS_READ: 8 Yes, indeed, data in lockdep_stats_show() is out of time. So as Peter has said in another thread, we should add sample for RECLAIM_FS. > > I can create a patch for inclusion that adds the reclaim fields, the > question is, is the nr_save_trace_invocations a useful stat for us or not? Actually it's just a summation of the samples. I don't think it's necessary. Thanks, Yong