From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751471AbcCKSPV (ORCPT ); Fri, 11 Mar 2016 13:15:21 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52178 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750888AbcCKSPQ (ORCPT ); Fri, 11 Mar 2016 13:15:16 -0500 Date: Fri, 11 Mar 2016 19:15:06 +0100 From: Jiri Olsa To: Namhyung Kim Cc: Jiri Olsa , Steven Rostedt , lkml , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo Subject: Re: [PATCH 4/5] ftrace: Make ftrace_hash_rec_enable return update bool Message-ID: <20160311181506.GB1060@krava.redhat.com> References: <1457556405-27717-1-git-send-email-jolsa@kernel.org> <1457556405-27717-5-git-send-email-jolsa@kernel.org> <20160311142800.GC25533@danjae.kornet> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160311142800.GC25533@danjae.kornet> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 11, 2016 at 11:28:00PM +0900, Namhyung Kim wrote: SNIP > > @@ -1694,7 +1695,7 @@ static void __ftrace_hash_rec_update(struct ftrace_ops *ops, > > if (inc) { > > rec->flags++; > > if (FTRACE_WARN_ON(ftrace_rec_count(rec) == FTRACE_REF_MAX)) > > - return; > > + return false; > > > > /* > > * If there's only a single callback registered to a > > @@ -1720,7 +1721,7 @@ static void __ftrace_hash_rec_update(struct ftrace_ops *ops, > > rec->flags |= FTRACE_FL_REGS; > > } else { > > if (FTRACE_WARN_ON(ftrace_rec_count(rec) == 0)) > > - return; > > + return false; > > rec->flags--; > > > > /* > > @@ -1753,22 +1754,27 @@ static void __ftrace_hash_rec_update(struct ftrace_ops *ops, > > */ > > } > > count++; > > + > > + update |= ftrace_test_record(rec, 1) != FTRACE_UPDATE_IGNORE; > > Shouldn't it use 'inc' instead of 1 for the second argument of > the ftrace_test_record()? I dont think so, 1 is to update calls (FTRACE_UPDATE_CALLS) check ftrace_modify_all_code: if (command & FTRACE_UPDATE_CALLS) ftrace_replace_code(1); else if (command & FTRACE_DISABLE_CALLS) ftrace_replace_code(0); both ftrace_startup, ftrace_shutdown use FTRACE_UPDATE_CALLS you'd use 0 only to disable all, check ftrace_check_record comments: /* * If we are updating calls: * * If the record has a ref count, then we need to enable it * because someone is using it. * * Otherwise we make sure its disabled. * * If we are disabling calls, then disable all records that * are enabled. */ if (enable && ftrace_rec_count(rec)) flag = FTRACE_FL_ENABLED; used by ftrace_shutdown_sysctl thanks, jirka