From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A654BC433E0 for ; Wed, 22 Jul 2020 21:12:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 81E8722B3F for ; Wed, 22 Jul 2020 21:12:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595452358; bh=FK0x2dR487+A++TOeGX8epXueR7jV7J8+2s+8uCDvIw=; h=From:To:Cc:Subject:Date:List-ID:From; b=lbeIq3i3vleGvH3c41Da6U3oKjlrRTZ30IGOa5dBBuc2jJjLfq8Ovlz2shZB3fYej ix96K/D2gkLwzN5j56nS7bi5s2F168PORVrB9P21oeaE6sjAlrJN6W7LsXXssTWjhe 2ZwMCTUYVzWEGPTGYnBnm/U29UovFqlSpASug4Vs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732552AbgGVVMi convert rfc822-to-8bit (ORCPT ); Wed, 22 Jul 2020 17:12:38 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:21580 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726447AbgGVVMh (ORCPT ); Wed, 22 Jul 2020 17:12:37 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-48-jVeIKQ-UOMqygGwfwFGdiw-1; Wed, 22 Jul 2020 17:12:30 -0400 X-MC-Unique: jVeIKQ-UOMqygGwfwFGdiw-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 08EA8185BDED; Wed, 22 Jul 2020 21:12:28 +0000 (UTC) Received: from krava.redhat.com (unknown [10.40.194.40]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5995819C4F; Wed, 22 Jul 2020 21:12:24 +0000 (UTC) From: Jiri Olsa To: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko Cc: netdev@vger.kernel.org, bpf@vger.kernel.org, Song Liu , Yonghong Song , Martin KaFai Lau , David Miller , John Fastabend , Wenbo Zhang , KP Singh , Brendan Gregg , Florent Revest , Al Viro Subject: [PATCH v8 bpf-next 00/13] bpf: Add d_path helper Date: Wed, 22 Jul 2020 23:12:10 +0200 Message-Id: <20200722211223.1055107-1-jolsa@kernel.org> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jolsa@kernel.org X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: kernel.org Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: 8BIT Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org hi, adding d_path helper function that returns full path for given 'struct path' object, which needs to be the kernel BTF 'path' object. The path is returned in buffer provided 'buf' of size 'sz' and is zero terminated. int bpf_d_path(struct path *path, char *buf, u32 sz); The helper calls directly d_path function, so there's only limited set of function it can be called from. The patchset also adds support to add set of BTF IDs for a helper to define functions that the helper is allowed to be called from. Also available at: https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/d_path v8 changes: - rebased on Yonghong's latest changes - factored btf_struct_access function [Andrii] - fixed leftovers fro mthe preparation changes thanks, jirka --- Jiri Olsa (13): selftests/bpf: Fix resolve_btfids test tools resolve_btfids: Add support for set symbols bpf: Move btf_resolve_size into __btf_resolve_size bpf: Add elem_id pointer as argument to __btf_resolve_size bpf: Add type_id pointer as argument to __btf_resolve_size bpf: Factor btf_struct_access function bpf: Add btf_struct_ids_match function bpf: Add BTF_SET_START/END macros bpf: Add d_path helper bpf: Update .BTF_ids section in btf.rst with sets info selftests/bpf: Add verifier test for d_path helper selftests/bpf: Add test for d_path helper selftests/bpf: Add set test to resolve_btfids Documentation/bpf/btf.rst | 25 +++++++++++++++ include/linux/bpf.h | 6 ++++ include/linux/btf.h | 3 +- include/linux/btf_ids.h | 43 ++++++++++++++++++++++++- include/uapi/linux/bpf.h | 13 ++++++++ kernel/bpf/bpf_struct_ops.c | 6 ++-- kernel/bpf/btf.c | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------- kernel/bpf/verifier.c | 23 ++++++++++---- kernel/trace/bpf_trace.c | 48 ++++++++++++++++++++++++++++ scripts/bpf_helpers_doc.py | 2 ++ tools/bpf/resolve_btfids/main.c | 15 ++++++++- tools/include/linux/btf_ids.h | 43 ++++++++++++++++++++++++- tools/include/uapi/linux/bpf.h | 13 ++++++++ tools/testing/selftests/bpf/prog_tests/d_path.c | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/testing/selftests/bpf/prog_tests/resolve_btfids.c | 34 ++++++++++++++++++++ tools/testing/selftests/bpf/progs/test_d_path.c | 64 ++++++++++++++++++++++++++++++++++++++ tools/testing/selftests/bpf/test_verifier.c | 19 +++++++++++- tools/testing/selftests/bpf/verifier/d_path.c | 37 ++++++++++++++++++++++ 18 files changed, 667 insertions(+), 37 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/d_path.c create mode 100644 tools/testing/selftests/bpf/progs/test_d_path.c create mode 100644 tools/testing/selftests/bpf/verifier/d_path.c