Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp594203imw; Wed, 13 Jul 2022 04:38:49 -0700 (PDT) X-Google-Smtp-Source: AGRyM1skNKk279dZLS46iOd2Vc9RnF/+oGx8iNHSm4hrBKVgB/lbFHC5CYCVvRKkIm/aiG21qgzS X-Received: by 2002:a63:ed07:0:b0:419:9872:62 with SMTP id d7-20020a63ed07000000b0041998720062mr1362192pgi.53.1657712329546; Wed, 13 Jul 2022 04:38:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657712329; cv=none; d=google.com; s=arc-20160816; b=TFen5rjOpuSNtUh26tDHlfFxqDAHY5Mmhh+/YJ/vS8FtR5NF3oQrFeJZ1MsLFYEYVj ddeDHFgH4guo7D+pXHjc25oYGNZak9QDo4cUvT0eP472ERo+6mwcjKBd7Z/yWgvFPXS6 yAxciy51Que/J9tpczvsiw4maBieWZynzilt2GXwhXa0HEPjR5eFrlgU/OMZKsyX7wLW ezV6VYVvIWjFZbHN27bOu/7Z5Ov5VGXKe279RpWR/UM9G0LFO+AXGISpMEqNZTBruWlI Bu1szS6fZ9zJNam18c+DFMrTA2581kW7AZeRqhUVbj0AlB1QYM0WFAZQQoucZfwmRa1/ XLcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=yrCSuJaHzqqJrDzlPoHK3BCroMA+MPPreiwAH9qdrfA=; b=GYNLNSVT2k4S79lFsuFa6PB1G155VXVjPVe1w90GT1tlNaYqht/jOYncQ7CpHMh3B6 6caTXp7oE0acR5GSUJElugvCsdEYJ7OXX3IV4AlCQOynjzSdGqP6TVM5oGuJUWu3EhEc Vq9PYislSR/22NOSVdaLPzoc+jwXpTWHANJd+W4OOekFlWqfNqRQ71aeNVEn2TJP5HYR jPPklFASLsBoe1fnzmjB3BM6ApCgY3ugIaY2lvrf8dkzP6NtpkurWDUoEHpVlwUM/5gc W81qB2dRvO3WiBYuvovCyLejsVakXvtTa1XzsePaF1IuCldIOE/+TDkkh3rB43691081 6evw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=JDcdVJFS; 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=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pg5-20020a17090b1e0500b001f033a8afa9si2414228pjb.182.2022.07.13.04.38.33; Wed, 13 Jul 2022 04:38:49 -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=@redhat.com header.s=mimecast20190719 header.b=JDcdVJFS; 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=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236228AbiGMLgl (ORCPT + 99 others); Wed, 13 Jul 2022 07:36:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58278 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236210AbiGMLgi (ORCPT ); Wed, 13 Jul 2022 07:36:38 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id DBCF6102917 for ; Wed, 13 Jul 2022 04:36:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657712196; 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: in-reply-to:in-reply-to:references:references; bh=yrCSuJaHzqqJrDzlPoHK3BCroMA+MPPreiwAH9qdrfA=; b=JDcdVJFSnY3H8mKLTXNgmxEJzQ1kDPKnIpAOxkxsh4HEn/OGu+bz1Cre5/FbErriGM2fpu nV0LkPs5wZj5wg4zENTvIY6RMkymPTZHkqAHwsGfiCaHW7rB6BOj59ZB6paP9H8nUMqvQP SyumZ/4KerX1W63cYbngmMKCkUo7QDQ= Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-498-3wyFYtXEO7CRInU0SyX7AA-1; Wed, 13 Jul 2022 07:36:35 -0400 X-MC-Unique: 3wyFYtXEO7CRInU0SyX7AA-1 Received: by mail-pj1-f71.google.com with SMTP id r23-20020a17090a941700b001f04239bebdso3395664pjo.2 for ; Wed, 13 Jul 2022 04:36:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=yrCSuJaHzqqJrDzlPoHK3BCroMA+MPPreiwAH9qdrfA=; b=1MWgn4HAT+ey33tklpxZYsSDptjmOx6j7O16HPWdh5Zih2Q7qIvRSfFYUDQmUOEv/r fP8m5b1LnHgbPppiMTz4uJ5691IsPgdFLMdnmZ6Rvt9gBU/044fYe+GqpnqWYkmQMdat 6pGXUEGQGIAUM0OwOr0PANG6TToMVeSr34ZkCnK27ajGgejsO8ZQtAU91F0U60b7P+XB xP+jPr18yAXYKHGQzTX3BGIxkmKiVJG31nUqPi1OcXEV8rzL3orDC1TzTkOUl/jFJ0PP p2ounCSmu3LJ2WRPGeMTsTpEATlbilr4kMjfJIFYJzmlbhsREnjb2NL+eP72xTCrTUnR 5eUA== X-Gm-Message-State: AJIora+Vx4V4PVK1aOOWJoi/Q8XYXatw+VKVScX7rzX0K9h+jdgI9anQ WEj88Rvqq1oo1eTGt/TvVTFmO7P6oWGYQ0wn1H7Dms8VvDxNUn+8UyFgZEORScU4VAOTX17w9/k NgzNptTyPveurWhJbRQc/KLh0Wn1Cv0AIrTnLOOhO X-Received: by 2002:a63:5b16:0:b0:416:1b3b:9562 with SMTP id p22-20020a635b16000000b004161b3b9562mr2640550pgb.146.1657712193986; Wed, 13 Jul 2022 04:36:33 -0700 (PDT) X-Received: by 2002:a63:5b16:0:b0:416:1b3b:9562 with SMTP id p22-20020a635b16000000b004161b3b9562mr2640529pgb.146.1657712193703; Wed, 13 Jul 2022 04:36:33 -0700 (PDT) MIME-Version: 1.0 References: <20220712145850.599666-1-benjamin.tissoires@redhat.com> <20220712145850.599666-13-benjamin.tissoires@redhat.com> <668a2f86-9446-61de-494c-f2d2ee15f09e@isovalent.com> In-Reply-To: <668a2f86-9446-61de-494c-f2d2ee15f09e@isovalent.com> From: Benjamin Tissoires Date: Wed, 13 Jul 2022 13:36:22 +0200 Message-ID: Subject: Re: [PATCH bpf-next v6 12/23] HID: initial BPF implementation To: Quentin Monnet Cc: Greg KH , Jiri Kosina , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Shuah Khan , Dave Marchevsky , Joe Stringer , Jonathan Corbet , Tero Kristo , lkml , "open list:HID CORE LAYER" , Networking , bpf , "open list:KERNEL SELFTEST FRAMEWORK" , Linux Doc Mailing List , Pu Lehui Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_NONE,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 On Wed, Jul 13, 2022 at 10:48 AM Quentin Monnet wrote: > > On 12/07/2022 15:58, Benjamin Tissoires wrote: [...] > > diff --git a/drivers/hid/bpf/entrypoints/Makefile b/drivers/hid/bpf/entrypoints/Makefile > > new file mode 100644 > > index 000000000000..dd60a460c6c4 > > --- /dev/null > > +++ b/drivers/hid/bpf/entrypoints/Makefile > > @@ -0,0 +1,88 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > +OUTPUT := .output > > +abs_out := $(abspath $(OUTPUT)) > > + > > +CLANG ?= clang > > +LLC ?= llc > > +LLVM_STRIP ?= llvm-strip > > + > > +TOOLS_PATH := $(abspath ../../../../tools) > > +BPFTOOL_SRC := $(TOOLS_PATH)/bpf/bpftool > > +BPFTOOL_OUTPUT := $(abs_out)/bpftool > > +DEFAULT_BPFTOOL := $(OUTPUT)/sbin/bpftool > > +BPFTOOL ?= $(DEFAULT_BPFTOOL) > > + > > +LIBBPF_SRC := $(TOOLS_PATH)/lib/bpf > > +LIBBPF_OUTPUT := $(abs_out)/libbpf > > +LIBBPF_DESTDIR := $(LIBBPF_OUTPUT) > > +LIBBPF_INCLUDE := $(LIBBPF_DESTDIR)/include > > +BPFOBJ := $(LIBBPF_OUTPUT)/libbpf.a > > + > > +INCLUDES := -I$(OUTPUT) -I$(LIBBPF_INCLUDE) -I$(TOOLS_PATH)/include/uapi > > +CFLAGS := -g -Wall > > + > > +VMLINUX_BTF_PATHS ?= $(if $(O),$(O)/vmlinux) \ > > + $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux) \ > > + ../../../../vmlinux \ > > + /sys/kernel/btf/vmlinux \ > > + /boot/vmlinux-$(shell uname -r) > > +VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS)))) > > +ifeq ($(VMLINUX_BTF),) > > +$(error Cannot find a vmlinux for VMLINUX_BTF at any of "$(VMLINUX_BTF_PATHS)") > > +endif > > + > > +ifeq ($(V),1) > > +Q = > > +msg = > > +else > > +Q = @ > > +msg = @printf ' %-8s %s%s\n' "$(1)" "$(notdir $(2))" "$(if $(3), $(3))"; > > +MAKEFLAGS += --no-print-directory > > +submake_extras := feature_display=0 > > +endif > > + > > +.DELETE_ON_ERROR: > > + > > +.PHONY: all clean > > + > > +all: entrypoints.lskel.h > > + > > +clean: > > + $(call msg,CLEAN) > > + $(Q)rm -rf $(OUTPUT) entrypoints > > + > > +entrypoints.lskel.h: $(OUTPUT)/entrypoints.bpf.o | $(BPFTOOL) > > + $(call msg,GEN-SKEL,$@) > > + $(Q)$(BPFTOOL) gen skeleton -L $< > $@ > > + > > + > > +$(OUTPUT)/entrypoints.bpf.o: entrypoints.bpf.c $(OUTPUT)/vmlinux.h $(BPFOBJ) | $(OUTPUT) > > + $(call msg,BPF,$@) > > + $(Q)$(CLANG) -g -O2 -target bpf $(INCLUDES) \ > > + -c $(filter %.c,$^) -o $@ && \ > > + $(LLVM_STRIP) -g $@ > > + > > +$(OUTPUT)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL) | $(INCLUDE_DIR) > > +ifeq ($(VMLINUX_H),) > > + $(call msg,GEN,,$@) > > + $(Q)$(BPFTOOL) btf dump file $(VMLINUX_BTF) format c > $@ > > +else > > + $(call msg,CP,,$@) > > + $(Q)cp "$(VMLINUX_H)" $@ > > +endif > > + > > +$(OUTPUT) $(LIBBPF_OUTPUT) $(BPFTOOL_OUTPUT): > > + $(call msg,MKDIR,$@) > > + $(Q)mkdir -p $@ > > + > > +$(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OUTPUT) > > + $(Q)$(MAKE) $(submake_extras) -C $(LIBBPF_SRC) \ > > + OUTPUT=$(abspath $(dir $@))/ prefix= \ > > + DESTDIR=$(LIBBPF_DESTDIR) $(abspath $@) install_headers > > + > > +$(DEFAULT_BPFTOOL): $(BPFOBJ) | $(BPFTOOL_OUTPUT) > > + $(Q)$(MAKE) $(submake_extras) -C $(BPFTOOL_SRC) \ > > + OUTPUT=$(BPFTOOL_OUTPUT)/ \ > > + LIBBPF_OUTPUT=$(LIBBPF_OUTPUT)/ \ > > + LIBBPF_DESTDIR=$(LIBBPF_DESTDIR)/ \ > > + prefix= DESTDIR=$(abs_out)/ install-bin > > Hi Benjamin, > > Note that, at other locations where bpftool is needed to generate the > vmlinux.h or the skeletons, there is some work in progress to use only > the "bootstrap" version of bpftool (the intermediary bpftool binary used > to generate skeletons required for the final bpftool binary) [0]. This > is enough to generate these objects, it makes compiling the bpftool > binary faster, and solves some issues related to cross-compilation. It's > probably worth exploring in your case (or as a follow-up) as well. > Hi Quentin, Indeed, I applied a similar patch to [1] (the 3/3 in the series you mentioned) and I have the exact same light skeleton. I have stashed the changes locally for a future revision (I doubt everything will go through in this version ;-P ). Cheers, Benjamin > Quentin > > [0] > https://lore.kernel.org/all/20220712030813.865410-1-pulehui@huawei.com/t/#u > [1] https://lore.kernel.org/all/20220712030813.865410-4-pulehui@huawei.com/