Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755106AbdLOHjU (ORCPT ); Fri, 15 Dec 2017 02:39:20 -0500 Received: from merlin.infradead.org ([205.233.59.134]:39484 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754756AbdLOHjR (ORCPT ); Fri, 15 Dec 2017 02:39:17 -0500 Date: Fri, 15 Dec 2017 08:39:08 +0100 From: Peter Zijlstra To: Alexei Starovoitov Cc: Teng Qin , mingo@redhat.com, bgregg@netflix.com, daniel@iogearbox.net, yhs@fb.com, linux-kernel@vger.kernel.org, Kernel-team@fb.com Subject: Re: [PATCH tip 0/3] Improvements of scheduler related Tracepoints Message-ID: <20171215073908.myx3wgka7qimcmsg@hirez.programming.kicks-ass.net> References: <20171214202044.1629279-1-qinteng@fb.com> <20171214204932.GH3326@worktop> <1632e487-ee65-b50d-85e5-82f42c69fea1@fb.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1632e487-ee65-b50d-85e5-82f42c69fea1@fb.com> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1910 Lines: 41 On Thu, Dec 14, 2017 at 07:16:00PM -0800, Alexei Starovoitov wrote: > On 12/14/17 12:49 PM, Peter Zijlstra wrote: > > On Thu, Dec 14, 2017 at 12:20:41PM -0800, Teng Qin wrote: > > > This set of commits attempts to improve three scheduler related > > > Tracepoints: sched_switch, sched_process_fork, sched_process_exit. > > > > > > Firstly, these commit add additional flag values, namely preempt, > > > clone_flags and group_dead to these Tracepoints, to make information > > > exposed via the Tracepoints more useful and complete. > > > > > > Secondly, these commits exposes task_struct pointers in these > > > Tracepoints. The task_struct pointers are arguments of the Tracepoints > > > and currently only used to compute struct field values. But for BPF > > > programs attached to these Tracepoints, we may want to read additional > > > task information via the task_struct pointers. This is currently either > > > impossible, or we have to make assumption of whether the Tracepoint is > > > running from previous / parent or next / child, and use current pointer > > > instead. Exposing the task_struct pointers explicitly makes such use > > > case easier and more reliable. > > > > > > > NAK > > not sure what is the concern here. > Is it first or second part of the above ? Definitely the second, but also the first. You know I would have ripped out all scheduler tracepoints if I could have. They're a pain in the arse. A lot of people want to add to the tracepoints, with the end result that they'll end up a big bloated pile of useless crap. The first part is just the pieces you want added. As to the second, that's complete crap; that just makes everything slower for bodies benefit. If you register a traceprobe you already get access to these things. I think your problem is that you use perf to get access to the tracepoints, which them means you have to do disgusting things like this.