Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp4000211pxu; Mon, 12 Oct 2020 07:04:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxoZ/FjCyFW7dKbyr6QapOiHAJLFRzhvojBK/i6rDM8OuL6ffnuPgg09mYnI89xuZwfpVIg X-Received: by 2002:aa7:dc18:: with SMTP id b24mr14616971edu.285.1602511448176; Mon, 12 Oct 2020 07:04:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602511448; cv=none; d=google.com; s=arc-20160816; b=ThdloyYxPzA6t/aGtIQru95VnExhNgvlm2T5KCyMGi9U99oPT3NN1l6akxR+BqjpvG Gre4mBubsTLnFYKqxMJdj27wpeCjnIIZVkCX3C/71z+IucLWBYGFzYhRZHYnzyTdq3cp ID7usQWhGJ4ppJ3tKFbXJxaRcoQ1xM9Hks+8NN8C8MG2AGAhFshcKSDmz86QDnBJuqdl +FbubN/Ns9izRqsb4JOUcP/fuslfMdS2ctREeOLdhCIBbQZzeGJRfgwnAkdtOuBNspxR 102MfFlJM3ihcKNtInRgvYphkvaU570MvzR1bUGNk2sIhN7T6rX9tA8ZSEIKAQ6vrsAF porQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date; bh=kf051GEpjDOe7CxwkhRmXnmao4zlHlFoPXca7nf6jL8=; b=Nr7o9PjC2ELih8Uch7kI41j5pl76m8rJAaZZQv9EGHuqxHKcXVMnMxduknvlmB+9Gd Qh+SyyaSsmvPrkQB7q23A8ZSvKhiBclHj2PpBTdBHNJUtIncqJ5vRVykgedgImi1U0a4 065t2TEFGDvfEZMdFPW1gbW8MeVFZEpKJZZPfqw3jB3JH1O9PD22mlQSPfQyN1ZQjK1P VO6saZlJEe8KogPS+N4m5PbFgDuBb46tLAI7t1Wqcl+GINPrmqOmfbXxFvvgnq/gRNLA /dqdyjFgUPcAC2HPaSmL63epSiH/y3VKeIBLp0ARWCcYJA6rVs2NduGmVean27xFoVfZ xjPA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h17si12289617ejx.194.2020.10.12.07.03.44; Mon, 12 Oct 2020 07:04:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390739AbgJLOAX (ORCPT + 99 others); Mon, 12 Oct 2020 10:00:23 -0400 Received: from mail.kernel.org ([198.145.29.99]:38438 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389424AbgJLN77 (ORCPT ); Mon, 12 Oct 2020 09:59:59 -0400 Received: from gandalf.local.home (cpe-66-24-58-225.stny.res.rr.com [66.24.58.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6A0252076E; Mon, 12 Oct 2020 13:59:57 +0000 (UTC) Date: Mon, 12 Oct 2020 09:59:55 -0400 From: Steven Rostedt To: Rob Clark Cc: linux-kernel@vger.kernel.org, Rob Clark , Ingo Molnar , "Peter Zijlstra (Intel)" , Phil Auld , Valentin Schneider , Thara Gopinath , Randy Dunlap , Vincent Donnefort , Mel Gorman , Andrew Morton , Jens Axboe , Marcelo Tosatti , Frederic Weisbecker , Ilias Stamatis , Liang Chen , Ben Dooks , Peter Zijlstra , "J. Bruce Fields" Subject: Re: [PATCH] kthread: Add kthread_work tracepoints Message-ID: <20201012095955.0741313b@gandalf.local.home> In-Reply-To: <20201010180323.126634-1-robdclark@gmail.com> References: <20201010180323.126634-1-robdclark@gmail.com> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 10 Oct 2020 11:03:22 -0700 Rob Clark wrote: > /** > + * sched_kthread_work_execute_start - called immediately before the work callback > + * @work: pointer to struct kthread_work > + * > + * Allows to track kthread work execution. > + */ > +TRACE_EVENT(sched_kthread_work_execute_start, > + > + TP_PROTO(struct kthread_work *work), > + > + TP_ARGS(work), > + > + TP_STRUCT__entry( > + __field( void *, work ) > + __field( void *, function) > + ), > + > + TP_fast_assign( > + __entry->work = work; > + __entry->function = work->func; > + ), > + > + TP_printk("work struct %p: function %ps", __entry->work, __entry->function) > +); > + > +/** > + * sched_kthread_work_execute_end - called immediately after the work callback > + * @work: pointer to struct work_struct > + * @function: pointer to worker function > + * > + * Allows to track workqueue execution. > + */ > +TRACE_EVENT(sched_kthread_work_execute_end, > + > + TP_PROTO(struct kthread_work *work, kthread_work_func_t function), > + > + TP_ARGS(work, function), > + > + TP_STRUCT__entry( > + __field( void *, work ) > + __field( void *, function) > + ), > + > + TP_fast_assign( > + __entry->work = work; > + __entry->function = function; > + ), > + > + TP_printk("work struct %p: function %ps", __entry->work, __entry->function) > +); > + Please combine the above into: DECLARE_EVENT_CLASS(sched_kthread_work_execute_template, TP_PROTO(struct kthread_work *work), TP_ARGS(work), TP_STRUCT__entry( __field( void *, work ) __field( void *, function) ), TP_fast_assign( __entry->work = work; __entry->function = work->func; ), TP_printk("work struct %p: function %ps", __entry->work, __entry->function) ); DEFINE_EVENT(sched_kthread_work_execute_template, sched_kthread_work_execute_start, TP_PROTO(struct kthread_work *work), TP_ARGS(work)); DEFINE_EVENT(sched_kthread_work_execute_template, sched_kthread_work_execute_end, TP_PROTO(struct kthread_work *work), TP_ARGS(work)); As events are cheap, classes are expensive (size wise), and a TRACE_EVENT() is really just a CLASS and EVENT for a single instance. -- Steve