From mboxrd@z Thu Jan 1 00:00:00 1970 From: Frederic Weisbecker Subject: Re: Mount -o sync regression in 2.6.31 Date: Sat, 14 Nov 2009 14:18:09 +0100 Message-ID: <20091114131804.GA5245@nowhere> References: <20091111123340.703f5c86@nehalam> <200911112234.24180.elendil@planet.nl> <20091113144727.575cf038@nehalam> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Frans Pop , Nick Piggin , jens.axboe@oracle.com, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Andrew Morton To: Stephen Hemminger Return-path: Content-Disposition: inline In-Reply-To: <20091113144727.575cf038@nehalam> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Fri, Nov 13, 2009 at 02:47:27PM -0800, Stephen Hemminger wrote: > Bisecting between 2.6.30 and 2.6.31-rc1 reduced it down to: > > 8f184f27300f66f6dcc8296c2dae7a1fbe8429c9 is first bad commit > commit 8f184f27300f66f6dcc8296c2dae7a1fbe8429c9 > Author: Frederic Weisbecker > Date: Sat May 16 06:24:36 2009 +0200 > > tracing/stat: replace linked list by an rbtree for sorting > > When the stat tracing framework prepares the entries from a tracer > to output them to the user, it starts by computing a linear sort > through a linked list to give the entries ordered by relevance > to the user. > > This is quite ugly and causes a small latency when we begin to > read the file. > > This patch changes that by turning the linked list into a red-black > tree. Athough the whole iteration using the start and next tracer > callbacks while opening the file remain the same, it is now much > more fast and scalable. > > The rbtree guarantees O(log(n)) insertions whereas a linked > list with linear sorting brought us a O(n) despair. Now the > (visible) latency has disapeared. > > [ Impact: kill the latency while starting to read a stat tracer file ] > > Signed-off-by: Frederic Weisbecker > > Which seems totally out of the path related to this, and no tracing is being done! The trace stat thing is only used for workqueue profiling, functions profiling, branch profiling: CONFIG_WORKQUEUE_TRACER CONFIG_FUNCTION_PROFILER CONFIG_PROFILE_ANNOTATED_BRANCHES CONFIG_PROFILE_ALL_BRANCHES And none of them seem enabled in your config.