Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp2750746pxb; Mon, 31 Jan 2022 03:35:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJzCwyGaOPsJZvsvdQU/EcZ49xDA45Jd7Pd/DjgK0Agy9XcR3HWUxwJHYIxa1WixDYxT/aDe X-Received: by 2002:a17:902:f205:: with SMTP id m5mr20348885plc.71.1643628903527; Mon, 31 Jan 2022 03:35:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643628903; cv=none; d=google.com; s=arc-20160816; b=psjhrZc4OIDr/RRIxZMEopCb/MdJzV0YVagRXTTohcn2vlIYWhmA3K5Yjm4TKoe+Kc ubSl9cB/UP/Rij3NyD2MPBwW/1pn8BM/pfE9WS7A+6BU+shpUXz5CFzBzuuf9jr4JpcG xpNPcM9FCnzOs5VOFKxFDS3+3kaGUgQIpC2onQLEpuxmg1y8OIonAFqS3MOXjBvMkvuu 260Mx8DYshTKGX9o4E6tCZxuk6nMF+O+I0sc5Y3KaZ8ETE6e9hHgHuIlrn9DkjkYK+H9 q5nBnbyZ1QKi3tFd/NAnjvLVPqWiXYI5nLsOZjZ/TRFb/OJp44Pd3KwUZKJoWA0qu/43 jtGA== 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=ItmyUeFlJF2ukP6dmtzj5DFTHsPNEXlvRiFYHGt7LTY=; b=xb37obtTidFEvc6zNTQ2g6+rqx8HiW1JnRy75o1qdAGrXY0G+0YpjhJRNDrw+AA931 1kDdixK8slXWVNe7dFOKZ4j0D8hRjgzJ9o+ZYA8um/DMBFgRPBMijNkprX/5u3ngar14 JYXsewDYRgPhCyibQoSr8d2nTX8UUN9GsBXTDlr5XWidl2NArieznqmG3zRYaEwIQlt5 gKY2vCq3PxUiT/DPb8FABuUPntXP56IvEtWaOmg/v4WlFFsBaqTm9o1jF6z13QEeK5D0 AcDAiU2b9WKMgFaNr+sOcIyX8b1eaI2LeWOC3/Tf0hLxOL+brNjw5Q6V+Pxr8Ti7Rlwj NR7Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=pYWbuf7U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u12si14994767pfk.259.2022.01.31.03.34.52; Mon, 31 Jan 2022 03:35:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=pYWbuf7U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351176AbiA1UJF (ORCPT + 99 others); Fri, 28 Jan 2022 15:09:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36886 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351158AbiA1UJB (ORCPT ); Fri, 28 Jan 2022 15:09:01 -0500 Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8F27CC061714; Fri, 28 Jan 2022 12:09:01 -0800 (PST) Received: by mail-pg1-x531.google.com with SMTP id g20so6100549pgn.10; Fri, 28 Jan 2022 12:09:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ItmyUeFlJF2ukP6dmtzj5DFTHsPNEXlvRiFYHGt7LTY=; b=pYWbuf7Ugj9LHzCqhRZTfv4gKyTjGV8TaqnZHdv3TDd5Z3qjKo91qmkAXvPiizZ/Ss +NKCuSmCAUK7HeKBlyjCxV1VO11z0d86krj7iAwTaUqdgoACWforSCaO7OO8RBTrDZAQ 1iwiPmvKLXpJcmFpiQCYjVLVHDi4zD1KQsbNZYlu6YM0c7yxhbXxtz0OtCveq94bgmuI fi3fzYZLlMwYMZENq29b9tgtLSjWjFCZL7GbfgZ67xGT1/sEs2Rq4Hh4GOECydQLGbKf E1TBUC0EK5oLu9r7s7qmvQocsEH1I2z4WTORB4LyGyIhBhHsKpCY/Ys2c17hzECVaIH3 2a/w== 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=ItmyUeFlJF2ukP6dmtzj5DFTHsPNEXlvRiFYHGt7LTY=; b=Go0Lir4jGXVmAQ1TGcUQGrlOE1wR3p0tJMEFm3+7hJ/GmuY6ZBv5TF1auXNh6ScLNr q4/p0hMbC9lKdfbs8HoNA8M6H0OcM2ZkDdelKohSPsaCUk0kg3ksQv0PpbbmnX3eCufH l7SUcVX8tdMWXSsjMwVz2qp9r6aG9IXm/Namamr/+xakUpbgarW/9nXKg/MaXEu5jdHa tcBAtQN+r7yw7Zw6T2ZX8mN86g9pkqKTGBA77N1Y/flIoheuPw7OhKIJd34l+dTfQ/tu OkJPpqCvl91xiTeEli11Fvhvrz9fpoKhuiCr7aKXh/aa1jWSUgX/y3Vbn2VAYNHe4hSh rIew== X-Gm-Message-State: AOAM531G43Qt5wkOnJLovfYBildkgSKrYS3zpfttas3h9c//9mmPgJbp /kcDMKBIlyFtw+51FTVYkbKrUI26BMZH14RVGaLt4oLdqgk= X-Received: by 2002:a65:6182:: with SMTP id c2mr7917724pgv.95.1643400540997; Fri, 28 Jan 2022 12:09:00 -0800 (PST) MIME-Version: 1.0 References: <20211210172034.13614-1-mcroce@linux.microsoft.com> <177da568-8410-36d6-5f95-c5792ba47d62@fb.com> In-Reply-To: From: Alexei Starovoitov Date: Fri, 28 Jan 2022 12:08:49 -0800 Message-ID: Subject: Re: [PATCH bpf-next] bpf: limit bpf_core_types_are_compat() recursion To: Matteo Croce Cc: Yonghong Song , bpf , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , LKML Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 28, 2022 at 10:51 AM Matteo Croce wrote: > > On Fri, Jan 28, 2022 at 6:31 AM Alexei Starovoitov > wrote: > > > > On Mon, Dec 20, 2021 at 10:34 PM Yonghong Song wrote: > > > > > > > > > https://reviews.llvm.org/D116063 improved the error message as below > > > to make it a little bit more evident what is the problem: > > > > > > $ clang -target bpf -O2 -g -c bug.c > > > > > > fatal error: error in backend: SubroutineType not supported for > > > BTF_TYPE_ID_REMOTE reloc > > > > Hi Matteo, > > > > Are you still working on a test? > > What's a timeline to repost the patch set? > > > > Thanks! > > Hi Alexei, > > The change itself is ready, I'm just stuck at writing a test which > will effectively calls __bpf_core_types_are_compat() with some > recursion. > I guess that I have to generate a BTF_KIND_FUNC_PROTO type somehow, so > __bpf_core_types_are_compat() is called again to check the prototipe > arguments type. > I tried with these two, with no luck: > > // 1 > typedef int (*func_proto_typedef)(struct sk_buff *); > bpf_core_type_exists(func_proto_typedef); > > // 2 > void func_proto(int, unsigned int); > bpf_core_type_id_kernel(func_proto); > > Which is a simple way to generate a BTF_KIND_FUNC_PROTO BTF field? What do you mean 'no luck'? Have you tried what progs/test_core_reloc_type_id.c is doing? typedef int (*func_proto_typedef)(long); bpf_core_type_id_kernel(func_proto_typedef); Without macros: typedef int (*func_proto_typedef)(long); int test() { return __builtin_btf_type_id(*(typeof(func_proto_typedef) *)0, 1); } int test2() { return __builtin_preserve_type_info(*(typeof(func_proto_typedef) *)0, 0); } compiles fine and generates relos.