From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755291AbbLAP5u (ORCPT ); Tue, 1 Dec 2015 10:57:50 -0500 Received: from mx1.redhat.com ([209.132.183.28]:51205 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752959AbbLAP5t (ORCPT ); Tue, 1 Dec 2015 10:57:49 -0500 Date: Tue, 1 Dec 2015 16:57:44 +0100 From: Jiri Olsa To: Steven Rostedt Cc: LKML , Ingo Molnar , Peter Zijlstra Subject: Re: [PATCH] ftrace: Remove use of control list and ops Message-ID: <20151201155744.GA24786@krava.local> References: <20151130173640.2c45b429@gandalf.local.home> <20151201134213.GA14155@krava.brq.redhat.com> <20151201095554.7b56bff7@gandalf.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151201095554.7b56bff7@gandalf.local.home> 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 Tue, Dec 01, 2015 at 09:55:54AM -0500, Steven Rostedt wrote: > On Tue, 1 Dec 2015 14:42:36 +0100 > Jiri Olsa wrote: > > > On Mon, Nov 30, 2015 at 05:36:40PM -0500, Steven Rostedt wrote: > > > > > > [ Jiri, can you take a look at this. You can also apply it on top of my > > > branch ftrace/core, and run any specific tests. I just need to nuke > > > that control structure for further updates with ftrace. ] > > > > > > > > > Currently perf has its own list function within the ftrace infrastructure > > > that seems to be used only to allow for it to have per-cpu disabling as well > > > as a check to make sure that it's not called while RCU is not watching. It > > > uses something called the "control_ops" which is used to iterate over ops > > > under it with the control_list_func(). > > > > > > The problem is that this control_ops and control_list_func unnecessarily > > > complicates the code. By replacing FTRACE_OPS_FL_CONTROL with two new flags > > > (FTRACE_OPS_FL_RCU and FTRACE_OPS_FL_PER_CPU) we can remove all the code > > > that is special with the control ops and add the needed checks within the > > > generic ftrace_list_func(). > > > > hum, > > do we need also change for the trampoline, something like below? > > > > I needed attached patch to get the perf ftrace:function > > event work properly.. > > Hmm, I thought that I forced the list function when RCU or PER_CPU > was set. Oh wait. I have CONFIG_PREEMPT set, which will change the > logic slightly. I'm guessing you have PREEMPT_VOLUNTARY set. I'll try > that out. yep, but the trampoline has separate code path to set the ops func jirka