Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp3135030ybf; Mon, 2 Mar 2020 23:51:45 -0800 (PST) X-Google-Smtp-Source: ADFU+vuIp9Lf6Jm/5mbMNkQ797H/2ocGNtI/maIvwG5Gm8nu+QjE2zMlsOQyJb1i6mBRkXZW43aQ X-Received: by 2002:aca:dc8b:: with SMTP id t133mr1667105oig.98.1583221905271; Mon, 02 Mar 2020 23:51:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583221905; cv=none; d=google.com; s=arc-20160816; b=qjjOw64BOJvXRCyb9rq6J+1AWffSyNco2IcZiMT3f4VTXOUeXLcfG1ZzfBOGj/a37l tABagJoXcSOv6y3QvqReBzLOOUKYLH34Iz6vwN5UXPfC3/2qpQzJ2m+azOcr5hXrwU7W PPgq6UjCdLQabw04+hR5zKt1vNsyyPE0wLqdtLjzoCFrlsN1rZCtXSatFRES1e1bAL9q DnaLJPvqjtUJhhgQ3hHnb5thpo7xEedYERj+tnjO/ow4FmF/qM4zlLuK7359kqXRhauS oP7+FE0Ghlw6UUSmBCe1/8P9LhHLh8c+rb/e25iegqJ5QLHBIXVXvb+It8Bhnxtht2pD X5Dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=BhbULqBIdorw/yrEs1cpQIXkzYiAMwapHjsDli7SNmE=; b=NEyLqfeFl9wutDWy7XlavGfCDUJgseewDeV2wt5VXgpENIcBiEY5cc9Fv1KFr7kzIJ oRmGFSvQsFKlW0FQ5j8I54FsMrq2+T594+zComjW7HUXIH4cgaq16SyRollYE+z8Nhm9 SwJzWv/fPAekitFQRbXB9JCcMPwTc6thTTDjcKov9AXwZ33fgk4KB3ttFS2E1YwlEzei OCWmfOQilVOPmdPbzWmXmZn2K8SRb/mMuXND6+BjoNvJ6tmVO1g8r+ExjX+6IKKUdcPM M8CVk09ZoSbdebW+qmKiy0TCghaglGcqmt+vXZGQ/UCKSWFP1kY6VLQIaLoeFP4K4kTh eZsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="C/AVVaOw"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id c83si3733408oig.116.2020.03.02.23.51.33; Mon, 02 Mar 2020 23:51:45 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="C/AVVaOw"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1727695AbgCCHul (ORCPT + 99 others); Tue, 3 Mar 2020 02:50:41 -0500 Received: from mail-qk1-f195.google.com ([209.85.222.195]:35598 "EHLO mail-qk1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727552AbgCCHuk (ORCPT ); Tue, 3 Mar 2020 02:50:40 -0500 Received: by mail-qk1-f195.google.com with SMTP id 145so2518325qkl.2; Mon, 02 Mar 2020 23:50:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=BhbULqBIdorw/yrEs1cpQIXkzYiAMwapHjsDli7SNmE=; b=C/AVVaOwRUMOQcM2QkfZkYxtY1XRUW6kdvKrulJevxuG6/m6BCkwSOmh1vkwJEattR K2cO/soZ0G4mS1yCz5uEbc8M6tRfZ8hDc/4UgnsLxewUBVG7PW1mtlJmH4yuqpWG2HFL 0BOR7EE0z6q/Rn2e6tG3jiuBmPno7lfidiNSVBrakQFDxRCFkjk+vUYldkXeS6Wq7El7 YtONSsi4xMbYIPuq9dTkIRO+aqy/6IJrFYDlKGUOzk2CK7AbniZJYRILqKFV5chwLdJC /UhsBX5zUY7GtsKdUX3dfz+Frx7mfxgW4Y5BCoUzACYteQqmkg+82P8OkYuBUbuCv/N5 g2jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=BhbULqBIdorw/yrEs1cpQIXkzYiAMwapHjsDli7SNmE=; b=UlKeKfjl8/Hv0Q88eFqU9cN/p63zyRK1yl7npoPcRYJI0/vJOVsQd4MLAsK4Y5DquV A/DV4A1ZMknEa9+nbjvMfdxw7GfiOFbwNrPO2rlKmHLtkesnVbYzpb5Ckck7qTqx4FLF gulI2VCc5dU6nMeabfzOFu5NbU0inv38gdX7ORF6sIarh/D8nDFVZEC3Dd60MH3ggaKc 2W9vA5RdxCUzrIZX5A7pheOouhRy6dH0rRY7dmfkcaMQsNZ1aJs9Od//aU+D8NGhOisc 8IjhHBmuMmXU1DsYECLEwXi3nRjX1ipzYdNzE6hgPtriSWE8iZtjHi6Z/sS7/i+hOzWy zqsA== X-Gm-Message-State: ANhLgQ3HrFGIS/A7cVgQOuonp6PjKAIOWF9v5OXJVcZdMyrJP9zetjfk qUdbSPooiv3RbH8XH+CrTg6VJnSlp9yERI6pM8c= X-Received: by 2002:a37:8046:: with SMTP id b67mr2937683qkd.218.1583221839180; Mon, 02 Mar 2020 23:50:39 -0800 (PST) MIME-Version: 1.0 References: <20200303005035.13814-1-luke.r.nels@gmail.com> <20200303005035.13814-2-luke.r.nels@gmail.com> In-Reply-To: <20200303005035.13814-2-luke.r.nels@gmail.com> From: =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= Date: Tue, 3 Mar 2020 08:50:28 +0100 Message-ID: Subject: Re: [PATCH bpf-next v4 1/4] riscv, bpf: move common riscv JIT code to header To: Luke Nelson Cc: bpf , Luke Nelson , Jonathan Corbet , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Song Liu , Yonghong Song , Andrii Nakryiko , "David S. Miller" , Jakub Kicinski , Paul Walmsley , Palmer Dabbelt , Albert Ou , Xi Wang , Mauro Carvalho Chehab , Stephen Hemminger , Rob Herring , Greg Kroah-Hartman , Jonathan Cameron , Andy Shevchenko , linux-doc@vger.kernel.org, LKML , Netdev , linux-riscv@lists.infradead.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 3 Mar 2020 at 01:50, Luke Nelson wrote= : > > This patch factors out code that can be used by both the RV64 and RV32 > JITs to a common header. > > Rename rv_sb_insn/rv_uj_insn to rv_b_insn/rv_j_insn to match the RISC-V > specification. > Thanks for clearing this up! > Co-developed-by: Xi Wang > Signed-off-by: Xi Wang > Signed-off-by: Luke Nelson > --- > We could put more code into a shared .c file in the future (e.g., > build_body). It seems to make sense right now to first factor > common data structures and helper functions into a header. Yes, I agree. > --- > arch/riscv/net/bpf_jit.h | 504 ++++++++++++++++++++++++++++++++++ > arch/riscv/net/bpf_jit_comp.c | 443 +----------------------------- > 2 files changed, 505 insertions(+), 442 deletions(-) > create mode 100644 arch/riscv/net/bpf_jit.h > > diff --git a/arch/riscv/net/bpf_jit.h b/arch/riscv/net/bpf_jit.h > new file mode 100644 > index 000000000000..6f45f95bc4d0 > --- /dev/null > +++ b/arch/riscv/net/bpf_jit.h > @@ -0,0 +1,504 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +/* > + * Common functionality for RV32 and RV64 BPF JIT compilers > + * > + * Copyright (c) 2019 Bj=C3=B6rn T=C3=B6pel > + * Copyright (c) 2020 Luke Nelson > + * Copyright (c) 2020 Xi Wang I'm no lawyer, so this is more of a question; You've pulled out code into a header, and renamed two functions. Does that warrant copyright line additions? Should my line be removed? > + */ > + > +#ifndef _BPF_JIT_H > +#define _BPF_JIT_H > + > +#include > +#include > +#include [...] > + > +static inline u32 rv_amoadd_w(u8 rd, u8 rs2, u8 rs1, u8 aq, u8 rl) > +{ > + return rv_amo_insn(0, aq, rl, rs2, rs1, 2, rd, 0x2f); > +} > + > +#if __riscv_xlen =3D=3D 64 Please remove this. If the inlined functions are not used, they're not part of the binary. This adds complexity to the code, and without it we can catch build errors early on! > + > +/* RV64-only instructions. */ > + [...] > +{ > + return rv_amo_insn(0, aq, rl, rs2, rs1, 3, rd, 0x2f); > +} > + > +#endif /* __riscv_xlen =3D=3D 64 */ ...and this. Thanks! Bj=C3=B6rn