From patchwork Tue Aug 13 10:23:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Khoronzhuk X-Patchwork-Id: 1146183 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="Oz80OPwm"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46782J27HNz9sNf for ; Tue, 13 Aug 2019 20:23:52 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728911AbfHMKXu (ORCPT ); Tue, 13 Aug 2019 06:23:50 -0400 Received: from mail-lj1-f194.google.com ([209.85.208.194]:35644 "EHLO mail-lj1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728797AbfHMKXt (ORCPT ); Tue, 13 Aug 2019 06:23:49 -0400 Received: by mail-lj1-f194.google.com with SMTP id l14so11103250lje.2 for ; Tue, 13 Aug 2019 03:23:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+vEsZUSwAdb3YjNql7rDM4PtC51lwjYe4ypkHR8meNg=; b=Oz80OPwmh9X4xSAJ07288MD1guPoiHr5QzEzTKNgbbW0yOVRUE+9R2dtHoUBEsUqOh jfyncogTYoy1qjVIr3i7veHJPy5PAhWPX4InfS2/fcPCxjXha0LkuDHcKVMFu/h35tBF 7OvwwIzhLUNCmRZq/09ERQQedSeX9zk0DwXKJqoVegM8JC2G32PctQ3IReLpRJ+mKVDp HiwFTs8BXBnbAWsMmIx81qOWKhLfmDGGrY8SLnzwyu36w01+Ny16cUGqE8QmnsU/i0X2 R5hxQLuB3m6D1bKOaEPLUABe02nOxqEFSg8c9rBfkb0AJAgNkW5LPsYVtb/aWMtMnCFx +XsQ== 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=+vEsZUSwAdb3YjNql7rDM4PtC51lwjYe4ypkHR8meNg=; b=W6as7wsIjJPmoCD2yoEo/Kv64xTd7F1qBxedqlQ7Fd3lWmekbZVm06L0HnpPgWn4z2 0QErONA+6e3rMud3afL9g9ur5Ee87bKCwtw0iJ3QjooW3D6iaiPTwhhpv2S1dXI4/XQS Z8TJqiTxp7Dp/ohfNgmMNi8Uwa/9WstZQynOB8lzR1bmGovFJwyVrOTjeODHqZtrWR/c tE3hQ7gknHS8L0LU2pQ0MOAZ4sT1SNPvfQgIqjN95gfpBlN8aPTTHy7yWmzHgx7KKpvb K6nrymYDuN/VcEv2+YrqZAPM3J1RhbRzfPV5uV754AeUW1tZS4Z8D2mn8eoktbucmtKv Hunw== X-Gm-Message-State: APjAAAWWZNxrEZdi3c23cHNL3a8Wq42eRFnpTdi8Io1RNjPGnHsdvzkr 827lEtvIFCn3doTubsYZ2eu+JA== X-Google-Smtp-Source: APXvYqxfBIXDeO0fClkXCBT9GDNG7S0f2BKB42eF07OqmwBW8EB8GoIyGDNisQVq/AUlsE7V5UoY4g== X-Received: by 2002:a2e:9ad1:: with SMTP id p17mr21649917ljj.34.1565691827242; Tue, 13 Aug 2019 03:23:47 -0700 (PDT) Received: from localhost.localdomain (168-200-94-178.pool.ukrtel.net. [178.94.200.168]) by smtp.gmail.com with ESMTPSA id e87sm24796942ljf.54.2019.08.13.03.23.46 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 13 Aug 2019 03:23:46 -0700 (PDT) From: Ivan Khoronzhuk To: magnus.karlsson@intel.com, bjorn.topel@intel.com Cc: davem@davemloft.net, hawk@kernel.org, john.fastabend@gmail.com, jakub.kicinski@netronome.com, daniel@iogearbox.net, netdev@vger.kernel.org, bpf@vger.kernel.org, xdp-newbies@vger.kernel.org, linux-kernel@vger.kernel.org, Ivan Khoronzhuk Subject: [PATCH bpf-next 1/3] libbpf: add asm/unistd.h to xsk to get __NR_mmap2 Date: Tue, 13 Aug 2019 13:23:16 +0300 Message-Id: <20190813102318.5521-2-ivan.khoronzhuk@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190813102318.5521-1-ivan.khoronzhuk@linaro.org> References: <20190813102318.5521-1-ivan.khoronzhuk@linaro.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org That's needed to get __NR_mmap2 when mmap2 syscall is used. Signed-off-by: Ivan Khoronzhuk Acked-by: Jonathan Lemon --- tools/lib/bpf/xsk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/lib/bpf/xsk.c b/tools/lib/bpf/xsk.c index 5007b5d4fd2c..f2fc40f9804c 100644 --- a/tools/lib/bpf/xsk.c +++ b/tools/lib/bpf/xsk.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include From patchwork Tue Aug 13 10:23:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Khoronzhuk X-Patchwork-Id: 1146186 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.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=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="rtaX+hFh"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46782T1rNxz9sNk for ; Tue, 13 Aug 2019 20:24:01 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728919AbfHMKXv (ORCPT ); Tue, 13 Aug 2019 06:23:51 -0400 Received: from mail-lf1-f66.google.com ([209.85.167.66]:38755 "EHLO mail-lf1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728903AbfHMKXu (ORCPT ); Tue, 13 Aug 2019 06:23:50 -0400 Received: by mail-lf1-f66.google.com with SMTP id h28so76317277lfj.5 for ; Tue, 13 Aug 2019 03:23:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=JiG7tm9Z5rwpqHuMdG7CvzyzUiI5hxVxzGrPHfDQgmw=; b=rtaX+hFh3NZYIl2FqWzNHd/6C6CtWqKILZgq5tlbkHvWcLrCQlhW6hkU+WfWB4V2ml Np628Vxo2IUFwpj+pu+hv/p5257DdL3l9f/q3BwfHqpjbE1TJbqKxfi8DuNxPk0hENTF z9FzqyUzjPhJre+2QO9ejYV44pfD+PRBE//to4jllPatN/0t0sXNIswP+1zVTDxBiriU /o2xZA52ry2VahmVBC8ehDRdhcVMTHhavH7fH0svDj+INDWi0eFh+jn4cdajbf/4e79b wrrrP6uURrQhtgd2zWTC+jbLlSymBcFBwx34yNLT3Yj7SoMpzQ8ONV7AYaY0VBOlodWP 93YA== 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=JiG7tm9Z5rwpqHuMdG7CvzyzUiI5hxVxzGrPHfDQgmw=; b=lGdXKAWMefp2i7I3QnnBGMKmEfN3XMgSPxg5vyBRizKXKN0NXeB4+PMGhP87meHZ9i fI63Bz7G57B8F8Yt/dOaz6tJDQc3xuLsKmg0CM57hUmMg/VEZzbSCQE+e4grl4kqshI+ hIhX1ENKa0fGdriBf+c0Xl+6aYtY2QvwfHxejLSfG0uENNesuuoTfCjiikRrIWkQOZDx M0z779H+5Py7Ztuc9eRSRmIZC2IgbPqXUm5LJbPmOm5isUe32qzin/NgfG6o/wGQibx+ XA10sllNRjoLD+wnu6/GNefE3nyVYsZeYztG1z1fYDOHuRM3H6OolyjBLvQ/4u1QwaqX rZew== X-Gm-Message-State: APjAAAUs3puVnp+iStSHgtD+FYlASSX7ndNy/1nTS7ILQgjzw2Zq1nyt omGtNvhuoxWr1geYNyPlCgN5LQ== X-Google-Smtp-Source: APXvYqznpU2Z0cHt+Qv8XFCTp5H+9clx1iMM8ge9jpygefUtgclMUWWDW6oM4wTN2Sa2t7bvtZCW3A== X-Received: by 2002:ac2:5442:: with SMTP id d2mr23328237lfn.70.1565691828425; Tue, 13 Aug 2019 03:23:48 -0700 (PDT) Received: from localhost.localdomain (168-200-94-178.pool.ukrtel.net. [178.94.200.168]) by smtp.gmail.com with ESMTPSA id e87sm24796942ljf.54.2019.08.13.03.23.47 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 13 Aug 2019 03:23:47 -0700 (PDT) From: Ivan Khoronzhuk To: magnus.karlsson@intel.com, bjorn.topel@intel.com Cc: davem@davemloft.net, hawk@kernel.org, john.fastabend@gmail.com, jakub.kicinski@netronome.com, daniel@iogearbox.net, netdev@vger.kernel.org, bpf@vger.kernel.org, xdp-newbies@vger.kernel.org, linux-kernel@vger.kernel.org, Ivan Khoronzhuk Subject: [PATCH bpf-next 2/3] xdp: xdp_umem: replace kmap on vmap for umem map Date: Tue, 13 Aug 2019 13:23:17 +0300 Message-Id: <20190813102318.5521-3-ivan.khoronzhuk@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190813102318.5521-1-ivan.khoronzhuk@linaro.org> References: <20190813102318.5521-1-ivan.khoronzhuk@linaro.org> Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org For 64-bit there is no reason to use vmap/vunmap, so use page_address as it was initially. For 32 bits, in some apps, like in samples xdpsock_user.c when number of pgs in use is quite big, the kmap memory can be not enough, despite on this, kmap looks like is deprecated in such cases as it can block and should be used rather for dynamic mm. Signed-off-by: Ivan Khoronzhuk --- net/xdp/xdp_umem.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/net/xdp/xdp_umem.c b/net/xdp/xdp_umem.c index a0607969f8c0..907c9019fe21 100644 --- a/net/xdp/xdp_umem.c +++ b/net/xdp/xdp_umem.c @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include "xdp_umem.h" #include "xsk_queue.h" @@ -167,10 +167,12 @@ void xdp_umem_clear_dev(struct xdp_umem *umem) static void xdp_umem_unmap_pages(struct xdp_umem *umem) { +#if BITS_PER_LONG == 32 unsigned int i; for (i = 0; i < umem->npgs; i++) - kunmap(umem->pgs[i]); + vunmap(umem->pages[i].addr); +#endif } static void xdp_umem_unpin_pages(struct xdp_umem *umem) @@ -378,8 +380,14 @@ static int xdp_umem_reg(struct xdp_umem *umem, struct xdp_umem_reg *mr) goto out_account; } - for (i = 0; i < umem->npgs; i++) - umem->pages[i].addr = kmap(umem->pgs[i]); + for (i = 0; i < umem->npgs; i++) { +#if BITS_PER_LONG == 32 + umem->pages[i].addr = vmap(&umem->pgs[i], 1, VM_MAP, + PAGE_KERNEL); +#else + umem->pages[i].addr = page_address(umem->pgs[i]); +#endif + } return 0; From patchwork Tue Aug 13 10:23:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Khoronzhuk X-Patchwork-Id: 1146184 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="Y0RUcptj"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46782L24D7z9sN6 for ; Tue, 13 Aug 2019 20:23:54 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728933AbfHMKXx (ORCPT ); Tue, 13 Aug 2019 06:23:53 -0400 Received: from mail-lf1-f49.google.com ([209.85.167.49]:35944 "EHLO mail-lf1-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728912AbfHMKXw (ORCPT ); Tue, 13 Aug 2019 06:23:52 -0400 Received: by mail-lf1-f49.google.com with SMTP id j17so22364720lfp.3 for ; Tue, 13 Aug 2019 03:23:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=mFrYdNufqJMBiXr6Fl+Xru3C6SYEreBVGiSnrc3weyc=; b=Y0RUcptj1nphOy9DUsYSiUGS5oC8t0JnfW7QiIiMtYxxcHAAIyv1N4Upb4ezqwLOrZ wuZg6ub802synfGnhYu7FTj6Q+z0l0UrajtxxBKWSW8G7D+qPTE7qJu0MjppbAHzzLYm 0aOOHQIFsG4z6eviJ8yb8Cqdyw0y4/2IaU/kCNA0Qu0+tbdQv0fRSnCnCPEJJRJ6eat8 WZgcxw37voDsQAoCE3tGerY8pE+0S3QnAax+CxfMuNScM6koos5vYuslETUmiTFak7pq p1gRy0yl2o4tUwFoqJ8fYbKrrGXdLOK5OILS8ajqrmb8qo+wJlZYxAc/vIIwa6vYzrYR bYLw== 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=mFrYdNufqJMBiXr6Fl+Xru3C6SYEreBVGiSnrc3weyc=; b=YFM56VvxGGkZ1KN70ALTuJZsX6dHS6QpFMlVIJ63LBWenDda+LvNaLCI285Dz2cVB2 /d4zAfn6tIb/2U8vc7ZKdKpVphyk1rclCN7XVKsyVUNlK6wjky2sZu9AIMZEfDHZThhO snx/bzLjAC/C00otnqmaaRAlQUR+aI8Jp91ozIxqDpoQy0M7ZYWzeycifL1VppI06fau xV2sRGZePBziKSGQW/u3A3bO2bL2kU+H+b21F8iZqYNkcK2EtmD5+AYfIX5OO9C7V934 bChYgi4+Pdb4Y8NrR7CMvomtsp8o7GadX0NWsm/V9nhGccASUXzyx+XBrJuv5EGBgaNt cEog== X-Gm-Message-State: APjAAAXwt4OOGfrIt8p1s8LammNESlbl+hpUjXznfI4nCD6p/JMYNV9H AjyiO1ccTHCp/kgaYmXa/xfVnQ== X-Google-Smtp-Source: APXvYqx5ubYdC+pwKtPbpWBtsKuHRSKAFyFuYvHkqHK34jLbYYqbtI1zkcH1ZbBt1JQOtwq91dYtuA== X-Received: by 2002:a19:6041:: with SMTP id p1mr22325227lfk.6.1565691829914; Tue, 13 Aug 2019 03:23:49 -0700 (PDT) Received: from localhost.localdomain (168-200-94-178.pool.ukrtel.net. [178.94.200.168]) by smtp.gmail.com with ESMTPSA id e87sm24796942ljf.54.2019.08.13.03.23.48 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 13 Aug 2019 03:23:49 -0700 (PDT) From: Ivan Khoronzhuk To: magnus.karlsson@intel.com, bjorn.topel@intel.com Cc: davem@davemloft.net, hawk@kernel.org, john.fastabend@gmail.com, jakub.kicinski@netronome.com, daniel@iogearbox.net, netdev@vger.kernel.org, bpf@vger.kernel.org, xdp-newbies@vger.kernel.org, linux-kernel@vger.kernel.org, Ivan Khoronzhuk Subject: [PATCH bpf-next 3/3] samples: bpf: syscal_nrs: use mmap2 if defined Date: Tue, 13 Aug 2019 13:23:18 +0300 Message-Id: <20190813102318.5521-4-ivan.khoronzhuk@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190813102318.5521-1-ivan.khoronzhuk@linaro.org> References: <20190813102318.5521-1-ivan.khoronzhuk@linaro.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org For arm32 xdp sockets mmap2 is preferred, so use it if it's defined. Signed-off-by: Ivan Khoronzhuk --- samples/bpf/syscall_nrs.c | 5 +++++ samples/bpf/tracex5_kern.c | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/samples/bpf/syscall_nrs.c b/samples/bpf/syscall_nrs.c index 516e255cbe8f..2dec94238350 100644 --- a/samples/bpf/syscall_nrs.c +++ b/samples/bpf/syscall_nrs.c @@ -9,5 +9,10 @@ void syscall_defines(void) COMMENT("Linux system call numbers."); SYSNR(__NR_write); SYSNR(__NR_read); +#ifdef __NR_mmap2 + SYSNR(__NR_mmap2); +#else SYSNR(__NR_mmap); +#endif + } diff --git a/samples/bpf/tracex5_kern.c b/samples/bpf/tracex5_kern.c index f57f4e1ea1ec..300350ad299a 100644 --- a/samples/bpf/tracex5_kern.c +++ b/samples/bpf/tracex5_kern.c @@ -68,12 +68,23 @@ PROG(SYS__NR_read)(struct pt_regs *ctx) return 0; } +#ifdef __NR_mmap2 +PROG(SYS__NR_mmap2)(struct pt_regs *ctx) +{ + char fmt[] = "mmap2\n"; + + bpf_trace_printk(fmt, sizeof(fmt)); + return 0; +} +#else PROG(SYS__NR_mmap)(struct pt_regs *ctx) { char fmt[] = "mmap\n"; + bpf_trace_printk(fmt, sizeof(fmt)); return 0; } +#endif char _license[] SEC("license") = "GPL"; u32 _version SEC("version") = LINUX_VERSION_CODE;