From patchwork Fri Dec 1 09:26:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna-Maria Behnsen X-Patchwork-Id: 172342 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp991531vqy; Fri, 1 Dec 2023 01:27:31 -0800 (PST) X-Google-Smtp-Source: AGHT+IHpmG6FV1YlxrK5B00CHkISUuQDhlsvK0a/HkJcYRyDK8DIZgpPgeTmiVSLZe4us8Kai+0Q X-Received: by 2002:a05:6a00:8d93:b0:6cd:e5be:83a6 with SMTP id im19-20020a056a008d9300b006cde5be83a6mr5859191pfb.32.1701422851254; Fri, 01 Dec 2023 01:27:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701422851; cv=none; d=google.com; s=arc-20160816; b=tuZHld4/miAYPvO+TrecM5dinsjblW1jsUMk8bUMhkKwGV9AwalTQe2Yom3WJZY8k+ 2fspywXB9Ztx0HNmfqO8RCj10HfnlLobImDIytJu3q2ucPeD+ZtS0cWDrX9RpwSyaBWH yBNvBxvyCDjl96eJnV5ztO3K1dgsLBm1bsjhPrrLPRc+PFpbiCvsPTwsulMA0b27yEQU SpVZ9YCu6MBqedYnSGBYca77vplDFIiZ0kS3v0PLPgNR7fXWTk776nI+S8hAE33zf8wW bklIqNsUc1NkBZ/R7P1CnU+zFRhCk7jdkH+g2mQUjyY7bEDJfrd7zeKMk0edQn3UtcVw rtqA== 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:date:subject:cc:to:dkim-signature :dkim-signature:from; bh=EuZUVPY6DwMtX6TE4Diotf1s/Z9ALR3JOBYxJlQlrWo=; fh=PG6uS4TiiUSDyl8D/joYkWbwCgDm4ug0ir2h7tHBJXQ=; b=IGIMoBAZakdwZU9/WkPCKyaWTtm5YumeyEwNZqhlyawv8Ioe/o2HKEHogpkTpLpN+t fIF/EXOU7nwgu9oP8tYPnsMozpocdk5FdGXsQDAP7ia77g8iW0aWLWw6M1Xt8V6bNrUO p0bbaGVwSYc76F9Dd5tDn4qnXXJN7y/4TIyhbqRNMoz27csOo4bvkT1qAheBJMWSL4YB 96UPGxjj1rdx6WrTOZNE7U+BMG0GtnHpSH2zy+BRT8M3WQ6T5XegkJjKVsDqdwFhxc3H axU0mKKMcJoQ5Z5Qi0s2AysXSjPwpxwtqOrTEud4iMG/oKAmw3+FIsZz3yOZ8T9BovD2 oZ6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=OrC8zJ88; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id p11-20020a056a000b4b00b006cb8abd39d3si843316pfo.180.2023.12.01.01.27.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Dec 2023 01:27:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=OrC8zJ88; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 11D1F80EA8E3; Fri, 1 Dec 2023 01:27:30 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378051AbjLAJ1N (ORCPT + 99 others); Fri, 1 Dec 2023 04:27:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49050 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378022AbjLAJ1E (ORCPT ); Fri, 1 Dec 2023 04:27:04 -0500 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E61A10F9 for ; Fri, 1 Dec 2023 01:27:10 -0800 (PST) From: Anna-Maria Behnsen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1701422828; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EuZUVPY6DwMtX6TE4Diotf1s/Z9ALR3JOBYxJlQlrWo=; b=OrC8zJ88T958APlVyh4kv8Y7X5oRZogAMT9iZFq2jQjoc72FPD8+2eqTlL+ycyJp5uoy5l 3odpYGSoVRz5gOZc3hXdLsfql3bkwEFa/2zEDSpsyfIFvvvxxqEZFmjBeWF+Jr7L72PLnS FvVXfQ26Gi46CvgV/kOtMvpQR57EHIzfxazh71tMy3Bg5YX38DelZ+j5ORZOvg8PbycxVF j3dWdVvRgCkkDrhD/IRT959lpQGbfkPIeSZo9bczNh3QxvTdSAHLnyYPrVF/8GO85T6psE On2U2rnGHPTRScX51/upA2x9kRrpgW2hF4aN7+VFa3SOfqaRuuYbztZrmfHTlA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1701422828; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=EuZUVPY6DwMtX6TE4Diotf1s/Z9ALR3JOBYxJlQlrWo=; b=iu2NM4FKvnMPiISGNsxUiZzqNgZKsu9vKdvxqy/lJSsO8i3PpLvuA/jj5DgC+UXyMKkZjP y9PPX1zlI6jeCzDQ== To: linux-kernel@vger.kernel.org Cc: Peter Zijlstra , John Stultz , Thomas Gleixner , Eric Dumazet , "Rafael J . Wysocki" , Arjan van de Ven , "Paul E . McKenney" , Frederic Weisbecker , Rik van Riel , Steven Rostedt , Sebastian Siewior , Giovanni Gherdovich , Lukasz Luba , "Gautham R . Shenoy" , Srinivas Pandruvada , K Prateek Nayak , Anna-Maria Behnsen Subject: [PATCH v9 04/32] tracing/timers: Enhance timer_start tracepoint Date: Fri, 1 Dec 2023 10:26:26 +0100 Message-Id: <20231201092654.34614-5-anna-maria@linutronix.de> In-Reply-To: <20231201092654.34614-1-anna-maria@linutronix.de> References: <20231201092654.34614-1-anna-maria@linutronix.de> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 01 Dec 2023 01:27:30 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784071167821689879 X-GMAIL-MSGID: 1784071167821689879 For starting a timer, the timer is enqueued into a bucket of the timer wheel. The bucket expiry is the defacto expiry of the timer but it is not equal the timer expiry because of increasing granularity when bucket is in a higher level of the wheel. To be able to figure out in a trace whether a timer expired in time or not, the bucket expiry time is required as well. Add bucket expiry time to the timer_start tracepoint and thereby simplify the arguments. Signed-off-by: Anna-Maria Behnsen Reviewed-by: Frederic Weisbecker --- v9: New in v9 --- include/trace/events/timer.h | 20 ++++++++++---------- kernel/time/timer.c | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/trace/events/timer.h b/include/trace/events/timer.h index b4bc2828fa09..99ada928d445 100644 --- a/include/trace/events/timer.h +++ b/include/trace/events/timer.h @@ -46,22 +46,21 @@ DEFINE_EVENT(timer_class, timer_init, /** * timer_start - called when the timer is started - * @timer: pointer to struct timer_list - * @expires: the timers expiry time - * @flags: the timers flags + * @timer: pointer to struct timer_list + * @bucket_expiry: the bucket expiry time */ TRACE_EVENT(timer_start, TP_PROTO(struct timer_list *timer, - unsigned long expires, - unsigned int flags), + unsigned long bucket_expiry), - TP_ARGS(timer, expires, flags), + TP_ARGS(timer, bucket_expiry), TP_STRUCT__entry( __field( void *, timer ) __field( void *, function ) __field( unsigned long, expires ) + __field( unsigned long, bucket_expiry ) __field( unsigned long, now ) __field( unsigned int, flags ) ), @@ -69,15 +68,16 @@ TRACE_EVENT(timer_start, TP_fast_assign( __entry->timer = timer; __entry->function = timer->function; - __entry->expires = expires; + __entry->expires = timer->expires; + __entry->bucket_expiry = bucket_expiry; __entry->now = jiffies; - __entry->flags = flags; + __entry->flags = timer->flags; ), - TP_printk("timer=%p function=%ps expires=%lu [timeout=%ld] cpu=%u idx=%u flags=%s", + TP_printk("timer=%p function=%ps expires=%lu [timeout=%ld] bucket_expiry=%lu cpu=%u idx=%u flags=%s", __entry->timer, __entry->function, __entry->expires, (long)__entry->expires - __entry->now, - __entry->flags & TIMER_CPUMASK, + __entry->bucket_expiry, __entry->flags & TIMER_CPUMASK, __entry->flags >> TIMER_ARRAYSHIFT, decode_timer_flags(__entry->flags & TIMER_TRACE_FLAGMASK)) ); diff --git a/kernel/time/timer.c b/kernel/time/timer.c index 63a8ce7177dd..a81d793a43d0 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -606,7 +606,7 @@ static void enqueue_timer(struct timer_base *base, struct timer_list *timer, __set_bit(idx, base->pending_map); timer_set_idx(timer, idx); - trace_timer_start(timer, timer->expires, timer->flags); + trace_timer_start(timer, bucket_expiry); /* * Check whether this is the new first expiring timer. The