From patchwork Sat Apr 8 05:52:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13205602 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6F39AC7619A for ; Sat, 8 Apr 2023 05:52:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229812AbjDHFwO (ORCPT ); Sat, 8 Apr 2023 01:52:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60616 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229592AbjDHFwN (ORCPT ); Sat, 8 Apr 2023 01:52:13 -0400 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B49D17ED0 for ; Fri, 7 Apr 2023 22:52:12 -0700 (PDT) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-54c01480e3cso84811517b3.1 for ; Fri, 07 Apr 2023 22:52:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1680933132; h=to:from:subject:mime-version:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=PaCuvDcWhP2cDa4Q6QNDOLtZbZ3fUX/ydwsiXo8AOEQ=; b=ghgDlhmdSf6EDth7OpctKVg9Yoh/tWaSiBhrYQowh9CR2mGkgYU4wXv/JxQMz+2UAs k2Iy4NThdkqwxSfTl7Md3HV/bPw3onn85xQI6OYPoJ3+pdLl3HOB95QIoZSGKnBPoLR1 7ASdrjtPr77+nOaXcInGpEoKonO52742HQoL3ExF9xHpa6N7HqK0ZaLIG8QqF3e71Eu9 QCPJXi5gmrXPhlQOrR9hxlzXeorK1/ZsLGpSTH/TpVgj1FPaBKrXlCGcqXlMAiSITqiI 0M/d+q3EOhjhyuiUurzSzlLz11xfyl8yly8AvBRomw0oi1dkalAd9Xvo7+tOn7uS/yBB zvMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680933132; h=to:from:subject:mime-version:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=PaCuvDcWhP2cDa4Q6QNDOLtZbZ3fUX/ydwsiXo8AOEQ=; b=pZHIUOmPv5AE7tfKeLmxOrQdyj38VoMLPJQ8sPbLi5LwlrMtuIxCe9ixLoYnBcVNcM j80Jp8uXSWxVnYp/Qfm3ehaWLjiUlwTPbCowwDNpTgNE43nW3UK9temAS33F7hErNUXK fLwB5oGttC4cWrbhZN/ukubzEjgDVHO/8cVaB4ye8vZ3rLOz7BPKoQF1fhzMyMLIf/+K 4Ick5R0iR442pqFEiGhsU4bCh8wmZN5u0LsmCO0nezJzk8o0edIgXc2uvPRdLEVfV1PI OUuqBSJYh0HVlg+hV4fHcmQ1ISs9UB4g1ar7EhgcEhV73TN+q2mXZKEhVk2CIJkps+/7 trlw== X-Gm-Message-State: AAQBX9efQwPLtM52SqIT85xPlcByHgKuOHoUByeIVuPSyr4eLq9JRY8x envHpbumqMkp9635AYROdvIrXfbdYrFM X-Google-Smtp-Source: AKy350YOn6EDZcM6g2K/kJ64r7qb7nb1g6AqbF0ZKf3EWu7T9j29NGNrPc5tNzDCHvyOPDHJbuy1IbcWjKVf X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b240:9cdf:7861:b23e]) (user=irogers job=sendgmr) by 2002:a81:af5d:0:b0:52e:e095:d840 with SMTP id x29-20020a81af5d000000b0052ee095d840mr2334348ywj.0.1680933132008; Fri, 07 Apr 2023 22:52:12 -0700 (PDT) Date: Fri, 7 Apr 2023 22:52:07 -0700 Message-Id: <20230408055208.1283832-1-irogers@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.40.0.577.gac1e443424-goog Subject: [PATCH v1 1/2] perf lock contention: Support pre-5.14 kernels From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Adrian Hunter , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org struct rq's variable __lock was renamed from lock in 5.14. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/perf/util/bpf_skel/lock_contention.bpf.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/bpf_skel/lock_contention.bpf.c b/tools/perf/util/bpf_skel/lock_contention.bpf.c index 23f6e63544ed..8911e2a077d8 100644 --- a/tools/perf/util/bpf_skel/lock_contention.bpf.c +++ b/tools/perf/util/bpf_skel/lock_contention.bpf.c @@ -418,6 +418,14 @@ int contention_end(u64 *ctx) extern struct rq runqueues __ksym; +struct rq__old { + raw_spinlock_t lock; +} __attribute__((preserve_access_index)); + +struct rq__new { + raw_spinlock_t __lock; +} __attribute__((preserve_access_index)); + SEC("raw_tp/bpf_test_finish") int BPF_PROG(collect_lock_syms) { @@ -426,11 +434,16 @@ int BPF_PROG(collect_lock_syms) for (int i = 0; i < MAX_CPUS; i++) { struct rq *rq = bpf_per_cpu_ptr(&runqueues, i); + struct rq__new *rq_new = (void *)rq; + struct rq__old *rq_old = (void *)rq; if (rq == NULL) break; - lock_addr = (__u64)&rq->__lock; + if (bpf_core_field_exists(rq_new->__lock)) + lock_addr = (__u64)&rq_new->__lock; + else + lock_addr = (__u64)&rq_old->lock; lock_flag = LOCK_CLASS_RQLOCK; bpf_map_update_elem(&lock_syms, &lock_addr, &lock_flag, BPF_ANY); } From patchwork Sat Apr 8 05:52:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13205603 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C7114C77B70 for ; Sat, 8 Apr 2023 05:52:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229457AbjDHFwR (ORCPT ); Sat, 8 Apr 2023 01:52:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60642 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229665AbjDHFwQ (ORCPT ); Sat, 8 Apr 2023 01:52:16 -0400 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 040CED529 for ; Fri, 7 Apr 2023 22:52:15 -0700 (PDT) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-54c23fab905so48882547b3.14 for ; Fri, 07 Apr 2023 22:52:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1680933134; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=z2dWon3rHJ1nD139lVaQ1WrnfCqCvaQvEhPXDcZYjwM=; b=T4kCWB3JooK6L8NchDif5VHk4VQ5lliH7Lz9Ifuwebm2kE6RsdT8Fvu7FrnnUI4Twb w8xWnsMr9cHk+6Gw43Fcov8QfAOXzSaORpROP+WxtHVeAQ+Y8BBI13RWv6DjQgj8h+iI aPzBV0PV9cOgVOoMvGjAlAHXyf2ToqnvCkAcHvJQ62O/XI1zRCjaU709aLtFRTHUr2ss +O0NSJbTj8wKI47aaEL+nm/UnpB+eiFyXlQC6noLORyr9g8TyW88UJOVYECivc0QxE7x UGEwPwn/pE5Pd2rrdcSQCjUMMrrmAAvXZm3IhSIrqJPSv4KThFWM98XtuY6cnl+bwIIT Pfqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680933134; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=z2dWon3rHJ1nD139lVaQ1WrnfCqCvaQvEhPXDcZYjwM=; b=LDDSMNLy4qCIxze5DXxglJLChoxMCsxXn1IMjz9+Lyr5qF6Y/FgED/NJkeIu5QO1oa ilRnTq9gRAUFS1WmSMcCpO3OwrrpBs0rHgefG9LY2EFyZ7ovAe8izsDFMAWRZom+rkM9 +LwjuvxBqa9XT3viH8uFYByK+0fKO9lJsRdmxSHEjib9WTPKAo6XivN+efeDZuitsj8Q 7RKdaBsVJ50mJk0VzTDTGR3xk9/EevEaVInJRCKzA5v7upddZjnccq3EKLQZtMNfsOH1 8FfxjRZcxwIduA9AYS1XcYpJLxtCeFH8hUT4H9Rt5McwBcUB68kCEJ6edceKbWp+OIBv jbRg== X-Gm-Message-State: AAQBX9eSUtu+nQVFW1wK+X7fm6nfnio45yJmIc0eyC7rg9ekxQT2M9Wi aknDp14fbrrI7lx+BdgvOF4xDkjF8mZY X-Google-Smtp-Source: AKy350Z7mK7eScp79F3uWgqZbq7wHnhBRy2d3bczXxjBl3iURo4swsW9rkDpDn/cynJWxcjKuqzwsGHyNbH+ X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b240:9cdf:7861:b23e]) (user=irogers job=sendgmr) by 2002:a25:d988:0:b0:997:c919:4484 with SMTP id q130-20020a25d988000000b00997c9194484mr651735ybg.6.1680933134194; Fri, 07 Apr 2023 22:52:14 -0700 (PDT) Date: Fri, 7 Apr 2023 22:52:08 -0700 In-Reply-To: <20230408055208.1283832-1-irogers@google.com> Message-Id: <20230408055208.1283832-2-irogers@google.com> Mime-Version: 1.0 References: <20230408055208.1283832-1-irogers@google.com> X-Mailer: git-send-email 2.40.0.577.gac1e443424-goog Subject: [PATCH v1 2/2] perf bpf filter: Support pre-5.16 kernels From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Adrian Hunter , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org The mem_hops bits were added in 5.16 with no prior equivalent. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/perf/util/bpf_skel/sample_filter.bpf.c | 28 ++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/bpf_skel/sample_filter.bpf.c b/tools/perf/util/bpf_skel/sample_filter.bpf.c index 57e3c67d6d37..cffe493af1ed 100644 --- a/tools/perf/util/bpf_skel/sample_filter.bpf.c +++ b/tools/perf/util/bpf_skel/sample_filter.bpf.c @@ -24,6 +24,24 @@ struct perf_sample_data___new { __u64 sample_flags; } __attribute__((preserve_access_index)); +/* new kernel perf_mem_data_src definition */ +union perf_mem_data_src__new { + __u64 val; + struct { + __u64 mem_op:5, /* type of opcode */ + mem_lvl:14, /* memory hierarchy level */ + mem_snoop:5, /* snoop mode */ + mem_lock:2, /* lock instr */ + mem_dtlb:7, /* tlb access */ + mem_lvl_num:4, /* memory hierarchy level number */ + mem_remote:1, /* remote */ + mem_snoopx:2, /* snoop mode, ext */ + mem_blk:3, /* access blocked */ + mem_hops:3, /* hop level */ + mem_rsvd:18; + }; +}; + /* helper function to return the given perf sample data */ static inline __u64 perf_get_sample(struct bpf_perf_event_data_kern *kctx, struct perf_bpf_filter_entry *entry) @@ -89,8 +107,14 @@ static inline __u64 perf_get_sample(struct bpf_perf_event_data_kern *kctx, return kctx->data->data_src.mem_dtlb; if (entry->part == 7) return kctx->data->data_src.mem_blk; - if (entry->part == 8) - return kctx->data->data_src.mem_hops; + if (entry->part == 8) { + union perf_mem_data_src__new *data = (void *)&kctx->data->data_src; + + if (bpf_core_field_exists(data->mem_hops)) + return data->mem_hops; + + return 0; + } /* return the whole word */ return kctx->data->data_src.val; default: