Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp3085722iob; Mon, 16 May 2022 12:45:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxnWuSDRAhn6Bs3pwRxFJGcBlM5ntIWacDFQjAyW3UO6L4n/sI3c2jhbWWN1UlLeSXyhlM8 X-Received: by 2002:a17:907:1622:b0:6fe:22bb:7f8 with SMTP id hb34-20020a170907162200b006fe22bb07f8mr9577439ejc.767.1652730318368; Mon, 16 May 2022 12:45:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652730318; cv=none; d=google.com; s=arc-20160816; b=AGGBhUad3xjRlWIptbRxYXEv9x/iMMg4PjUuaer7/E/ATx/OISulW0ZGZOa1x2ybhj Sb4o8dHBsBhe9sEuyBLnRjeXuZ2NhkN7zz1YbeA3RcyXfit1JqjMT4dzr+RIDMvNH6II w3pLW8oEIIjbnyoqpfx7KoeUjY9vsdpbFEgrBW9Qc0B9ukUngn9VH6xNCLJkH1cy2WwR UYzISJm0CeLT8jd3tqgAyY1MnU/RXXRg5SZbv+eQKsUf9oMfWaDIrW0ychfWX82FsdJn FQhu5UGSVpn7L08EbHvHObhCliFD68aGSG7KYlq47O/wJvHecdLFVeCLjsk9ue5VRqyd RS3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:date:mime-version:content-transfer-encoding :message-id:references:subject:cc:to:dkim-signature:dkim-signature :from; bh=4XtisG/QIREPsnJEdLXyqk0YnrYvE81FBAyBoTVMhvU=; b=NrquB0Ea5ibCxZFk0oCK8srHyG0h0fM4rMMTYgPjMTU7iQYaG7j2XSCjNMTnk7DUuD Kl02ZGihcoGRegPvKVo5llrEWLAPZS1hJkhRqVpwD2q4W33dpD6vpHq/tYvycstiGKuG RJKXXNxkhYs3DfROgkLfJGomPJgTQ0jlEW9O49dDxpx89JqZCxBWfxmzIOvGeLvcAbuX nEaclLnOf3PrhyAlFXx/65nYKINkEYMjXNrDcsKVr57ZjzvtKRPMmob94Z2Beyrzlvng llK9USDaZHBIiF6CIZOsZZ71caDWEXJ/9jdN5d2hBJjghmiwKlXztGsu+y+/9TaCDFeH yg6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=KdNO6k1n; dkim=neutral (no key) header.i=@linutronix.de header.b=yNbY3cTD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gb2-20020a170907960200b006f4326c816bsi284743ejc.357.2022.05.16.12.44.52; Mon, 16 May 2022 12:45:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=KdNO6k1n; dkim=neutral (no key) header.i=@linutronix.de header.b=yNbY3cTD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236071AbiEOJZQ (ORCPT + 99 others); Sun, 15 May 2022 05:25:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57018 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236058AbiEOJZK (ORCPT ); Sun, 15 May 2022 05:25:10 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2AC2A14014 for ; Sun, 15 May 2022 02:25:09 -0700 (PDT) From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1652606707; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: references:references; bh=4XtisG/QIREPsnJEdLXyqk0YnrYvE81FBAyBoTVMhvU=; b=KdNO6k1nWhJujr3OrQBoTMPxMyO0hwvbJy+5quB0tOvj5C957EEAKEBS7qCC10GoXR58kl 7YUTGjbxfhm7Og2Em00NnGg8ljsTL0Ml8QgH1ydGJAMHvrTAJSuEQxMj1HpUVhoJjicfE+ 5uWs1CqGmNtOsDKHHw3sNW1XSPBKSgtBmlY6XOWIvEJ7kj6SMHdYxSSx/ul5l2uA+wHzHF 7kEaZdYbMHBAu7v5YDarLS12LXY86gzQE5Dcn5oSgKzMcpBB0prln0kpBTws7uGSiO9+0o X13onIARAnPoqVGjNZeAJFEkyabrqk6L3nx9jvTJVyIEmTDSGWBkCiguoqiztw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1652606707; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: references:references; bh=4XtisG/QIREPsnJEdLXyqk0YnrYvE81FBAyBoTVMhvU=; b=yNbY3cTDp0zIKu1Bm/sS9UHRvSOvFqm6k1Bi5NdqnC3/acRBCqfgb1MuEyg16I1EN3sNWs 4BMu1Jm6wbDzhsAg== To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, x86@kernel.org Subject: [GIT pull] sched/urgent for v5.18-rc7 References: <165260667543.920532.17932536291158599837.tglx@xen13> Message-ID: <165260667688.920532.9348188301647885947.tglx@xen13> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Date: Sun, 15 May 2022 11:25:07 +0200 (CEST) X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,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 Linus, please pull the latest sched/urgent branch from: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-urgent-202= 2-05-15 up to: 9c2136be0878: sched/tracing: Append prev_state to tp args instead The recent expansion of the sched switch tracepoint inserted a new argument in the middle of the arguments. This reordering broke BPF programs which relied on the old argument list. While tracepoints are not considered stable ABI, it's not trivial to make BPF cope with such a change, but it's being worked on. For now restore the original argument order and move the new argument to the end of the argument list. Thanks, tglx ------------------> Delyan Kratunov (1): sched/tracing: Append prev_state to tp args instead include/trace/events/sched.h | 6 +++--- kernel/sched/core.c | 2 +- kernel/trace/fgraph.c | 4 ++-- kernel/trace/ftrace.c | 4 ++-- kernel/trace/trace_events.c | 8 ++++---- kernel/trace/trace_osnoise.c | 4 ++-- kernel/trace/trace_sched_switch.c | 4 ++-- kernel/trace/trace_sched_wakeup.c | 4 ++-- samples/trace_events/trace_custom_sched.h | 6 +++--- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 65e786756321..fbb99a61f714 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -222,11 +222,11 @@ static inline long __trace_sched_switch_state(bool pree= mpt, TRACE_EVENT(sched_switch, =20 TP_PROTO(bool preempt, - unsigned int prev_state, struct task_struct *prev, - struct task_struct *next), + struct task_struct *next, + unsigned int prev_state), =20 - TP_ARGS(preempt, prev_state, prev, next), + TP_ARGS(preempt, prev, next, prev_state), =20 TP_STRUCT__entry( __array( char, prev_comm, TASK_COMM_LEN ) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 51efaabac3e4..d58c0389eb23 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6382,7 +6382,7 @@ static void __sched notrace __schedule(unsigned int sch= ed_mode) migrate_disable_switch(rq, prev); psi_sched_switch(prev, next, !task_on_rq_queued(prev)); =20 - trace_sched_switch(sched_mode & SM_MASK_PREEMPT, prev_state, prev, next); + trace_sched_switch(sched_mode & SM_MASK_PREEMPT, prev, next, prev_state); =20 /* Also unlocks the rq: */ rq =3D context_switch(rq, prev, next, &rf); diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c index 8f4fb328133a..a7e84c8543cb 100644 --- a/kernel/trace/fgraph.c +++ b/kernel/trace/fgraph.c @@ -404,9 +404,9 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stac= k **ret_stack_list) =20 static void ftrace_graph_probe_sched_switch(void *ignore, bool preempt, - unsigned int prev_state, struct task_struct *prev, - struct task_struct *next) + struct task_struct *next, + unsigned int prev_state) { unsigned long long timestamp; int index; diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 4f1d2f5e7263..af899b058c8d 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -7420,9 +7420,9 @@ ftrace_func_t ftrace_ops_get_func(struct ftrace_ops *op= s) =20 static void ftrace_filter_pid_sched_switch_probe(void *data, bool preempt, - unsigned int prev_state, struct task_struct *prev, - struct task_struct *next) + struct task_struct *next, + unsigned int prev_state) { struct trace_array *tr =3D data; struct trace_pid_list *pid_list; diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index e11e167b7809..f97de82d1342 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -773,9 +773,9 @@ void trace_event_follow_fork(struct trace_array *tr, bool= enable) =20 static void event_filter_pid_sched_switch_probe_pre(void *data, bool preempt, - unsigned int prev_state, struct task_struct *prev, - struct task_struct *next) + struct task_struct *next, + unsigned int prev_state) { struct trace_array *tr =3D data; struct trace_pid_list *no_pid_list; @@ -799,9 +799,9 @@ event_filter_pid_sched_switch_probe_pre(void *data, bool = preempt, =20 static void event_filter_pid_sched_switch_probe_post(void *data, bool preempt, - unsigned int prev_state, struct task_struct *prev, - struct task_struct *next) + struct task_struct *next, + unsigned int prev_state) { struct trace_array *tr =3D data; struct trace_pid_list *no_pid_list; diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c index e9ae1f33a7f0..afb92e2f0aea 100644 --- a/kernel/trace/trace_osnoise.c +++ b/kernel/trace/trace_osnoise.c @@ -1168,9 +1168,9 @@ thread_exit(struct osnoise_variables *osn_var, struct t= ask_struct *t) */ static void trace_sched_switch_callback(void *data, bool preempt, - unsigned int prev_state, struct task_struct *p, - struct task_struct *n) + struct task_struct *n, + unsigned int prev_state) { struct osnoise_variables *osn_var =3D this_cpu_osn_var(); =20 diff --git a/kernel/trace/trace_sched_switch.c b/kernel/trace/trace_sched_swi= tch.c index 45796d8bd4b2..c9ffdcfe622e 100644 --- a/kernel/trace/trace_sched_switch.c +++ b/kernel/trace/trace_sched_switch.c @@ -22,8 +22,8 @@ static DEFINE_MUTEX(sched_register_mutex); =20 static void probe_sched_switch(void *ignore, bool preempt, - unsigned int prev_state, - struct task_struct *prev, struct task_struct *next) + struct task_struct *prev, struct task_struct *next, + unsigned int prev_state) { int flags; =20 diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wak= eup.c index 46429f9a96fa..330aee1c1a49 100644 --- a/kernel/trace/trace_sched_wakeup.c +++ b/kernel/trace/trace_sched_wakeup.c @@ -426,8 +426,8 @@ tracing_sched_wakeup_trace(struct trace_array *tr, =20 static void notrace probe_wakeup_sched_switch(void *ignore, bool preempt, - unsigned int prev_state, - struct task_struct *prev, struct task_struct *next) + struct task_struct *prev, struct task_struct *next, + unsigned int prev_state) { struct trace_array_cpu *data; u64 T0, T1, delta; diff --git a/samples/trace_events/trace_custom_sched.h b/samples/trace_events= /trace_custom_sched.h index 9fdd8e7c2a45..951388334a3f 100644 --- a/samples/trace_events/trace_custom_sched.h +++ b/samples/trace_events/trace_custom_sched.h @@ -25,11 +25,11 @@ TRACE_CUSTOM_EVENT(sched_switch, * that the custom event is using. */ TP_PROTO(bool preempt, - unsigned int prev_state, struct task_struct *prev, - struct task_struct *next), + struct task_struct *next, + unsigned int prev_state), =20 - TP_ARGS(preempt, prev_state, prev, next), + TP_ARGS(preempt, prev, next, prev_state), =20 /* * The next fields are where the customization happens.