From patchwork Fri Jan 12 22:06:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 860216 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="vN62nR0p"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zJH0H5Zc8z9t2c for ; Sat, 13 Jan 2018 09:06:55 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965228AbeALWGx (ORCPT ); Fri, 12 Jan 2018 17:06:53 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:42368 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965133AbeALWGw (ORCPT ); Fri, 12 Jan 2018 17:06:52 -0500 Received: by mail-pg0-f68.google.com with SMTP id q67so5416359pga.9 for ; Fri, 12 Jan 2018 14:06:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=pEPvE+GVEVSn3V/BnVebd16iiW5Uf9du92VfapqpP+k=; b=vN62nR0pD8ZqSjlLqqXgejnQH0JKJYyR835yMpPdUCuL1u8Iz3wspOlNQp2uUrZ9O0 If0RJKiLvChYJYsvfLDDKhAbFLUYS7OfBp9QNUc5XkAK2WoAQZC6AWXEPhbp2Zu/0jj+ /nGbWncM75Qv1bNFZ2B4wSRfJHETHzwFgZzo2XMOEIyqeaT7FfsR7qa1DKs9m8tBO9fJ yqzC1YKpIlvUzMHvOmwNV7kxuC7XUfIQYIgycbgeDwEDa22DOzEgUyCpSIlT3bnpCv1M IVSHS3GIumMrqZKGCA/o+AX8fE3/5qRyBwB1jpdG6F/NwadV92b5GsSQyDB2gG8iGeZd kn9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=pEPvE+GVEVSn3V/BnVebd16iiW5Uf9du92VfapqpP+k=; b=UC98mEldFXRcO4kZ37ibMzqmdH/mhQ+Rr0umvzCNBVYEIx60bG/jaEbWgOYSSVcJIp xZYnqG4jpBe41928ZwM24v1wp0pOcrDJ/40U6Aqcr4/KC9ZYudio+ty+0u4bfd0HLYr/ Dj5yZQ522EUL1EJmnF/MXY7H6a9OJ80IZ6w1RjPHBwheJOu9tnFSrjCQyDuyvNEs2xCU YGPGilTrTZaD/UDTpwCIL/4XnfoBFCokxK5qCH54s7dJAUf5ltNwOQwp9YoeWnOHL49h Eq1CTVTrraMPEWd5uDBgVBlxEligxEb9wHRF1GekB5U5YT0kycCvhCIjtZMf+n7t2pM+ gkWw== X-Gm-Message-State: AKGB3mIL3amRvC/UgVlWWxNMs2FxpCYjHVLDV2WYns5+4zeGqEq+yyom SeKyLWra6YGdMmDyiVh2B04h7FA1 X-Google-Smtp-Source: ACJfBos3l22/iik2reiuDAZhOuZ+fun3GRKMzN1VFWhuI6dmD0tHO4hkj2qhsXN9hryL8jhLzTlQ+g== X-Received: by 10.84.195.131 with SMTP id j3mr15956471pld.320.1515794811481; Fri, 12 Jan 2018 14:06:51 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([75.53.12.129]) by smtp.gmail.com with ESMTPSA id w19sm45994848pfa.127.2018.01.12.14.06.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 12 Jan 2018 14:06:50 -0800 (PST) From: Jakub Kicinski To: daniel@iogearbox.net, alexei.starovoitov@gmail.com Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, Jiong Wang Subject: [RFC bpf-next 1/2] nfp: bpf: set new jit info fields Date: Fri, 12 Jan 2018 14:06:23 -0800 Message-Id: <20180112220624.14424-1-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: <44d1b7e5-53f1-65b6-fd0b-fbda8467aa6b@iogearbox.net> References: <44d1b7e5-53f1-65b6-fd0b-fbda8467aa6b@iogearbox.net> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiong Wang This patch set those new jit info fields introduced in previous patch for NFP. Signed-off-by: Jiong Wang --- drivers/net/ethernet/netronome/nfp/bpf/main.h | 2 ++ drivers/net/ethernet/netronome/nfp/bpf/offload.c | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/netronome/nfp/bpf/main.h b/drivers/net/ethernet/netronome/nfp/bpf/main.h index 66381afee2a9..41ee68eb7ddc 100644 --- a/drivers/net/ethernet/netronome/nfp/bpf/main.h +++ b/drivers/net/ethernet/netronome/nfp/bpf/main.h @@ -42,6 +42,8 @@ #include "../nfp_asm.h" +#define NFP_ARCH_NAME "NFP-6xxx" + /* For relocation logic use up-most byte of branch instruction as scratch * area. Remember to clear this before sending instructions to HW! */ diff --git a/drivers/net/ethernet/netronome/nfp/bpf/offload.c b/drivers/net/ethernet/netronome/nfp/bpf/offload.c index 320b2250d29a..8862d1e50bf5 100644 --- a/drivers/net/ethernet/netronome/nfp/bpf/offload.c +++ b/drivers/net/ethernet/netronome/nfp/bpf/offload.c @@ -124,6 +124,7 @@ static int nfp_bpf_translate(struct nfp_net *nn, struct bpf_prog *prog) struct nfp_prog *nfp_prog = prog->aux->offload->dev_priv; unsigned int stack_size; unsigned int max_instr; + int err; stack_size = nn_readb(nn, NFP_NET_CFG_BPF_STACK_SZ) * 64; if (prog->aux->stack_depth > stack_size) { @@ -140,7 +141,16 @@ static int nfp_bpf_translate(struct nfp_net *nn, struct bpf_prog *prog) if (!nfp_prog->prog) return -ENOMEM; - return nfp_bpf_jit(nfp_prog); + err = nfp_bpf_jit(nfp_prog); + if (err) + return err; + + prog->aux->offload->jited_len = nfp_prog->prog_len * sizeof(u64); + prog->aux->offload->jited_image = nfp_prog->prog; + memcpy(prog->aux->offload->jited_arch_name, NFP_ARCH_NAME, + sizeof(NFP_ARCH_NAME)); + + return 0; } static int nfp_bpf_destroy(struct nfp_net *nn, struct bpf_prog *prog)