From patchwork Sat Jun 29 05:23:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilias Apalodimas X-Patchwork-Id: 168135 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp375777ilk; Fri, 28 Jun 2019 22:27:28 -0700 (PDT) X-Google-Smtp-Source: APXvYqzLvvJvNsyatnsR/x10TnKtvbQOgR+McZDXJQm8DdUJDZyEhM0ixFYAhOgWKvOK7AGUoNpV X-Received: by 2002:a63:f346:: with SMTP id t6mr13362221pgj.203.1561786048303; Fri, 28 Jun 2019 22:27:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561786048; cv=none; d=google.com; s=arc-20160816; b=QwpGDUzO/bJhwAp5iaoZhp+sMtOw/N8PdA2JAkRNddwZBi3ytGkKzBlXo2mHjdvOj0 NsUAZu2hkPFOeXSjwvBKCp6/syno2Ic52qFqxKYL8OFutiPh8duXZhVGBVBRuAzXhjCq +GoAf6CrkVMAO6x/zM93C0LDO4eHMhNb+dne1EAsD+kyEm6r+ZlW7dkiALEbov7AgDFX MM9Vxg4NbICAAQ2cR+6ERD3nPDYtQYrnrsxV9CWCxfWkML5Y+UsDnBtSmRwAcDFHSLH8 EuhP8dfaHbE0YlImZWMhoZ7gymcuy1HLViRLzMkyM5RQR1vnoEYEL6SUYbsmLkR0eCtH uMEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=ThTAGEqWouuiyKXnKOfOmPwCDBqTIkK+k/TmGWaAWKU=; b=wnPmx+ksi7QcUun/dQhhujGk8GNJK9uMjhUmvmd7qE3VSy9zcadswtTb38E1SVtalz St+fYVkdfsZlHqsYbVrQOGqQ+896Gchx8EK6GY0RSiCm+zqZM4pyBbzlLz8EzZaB8D80 HqurGxujftdBEV0XlLYXp5W2/IMuV0Mus72PVL3gD6V2a+n2mXgmCEGeWQpxVrqKT78+ fskql2F297m9HR37C6zGmvz4riFCv0Yi724k/ffBVosJxUArGg7kguidFfW9I23K0I/Z n4w+/8IFvcSca3xv0RMel4bnVn1WqmBgS+JnzkGdFrVJH+/8DIq5/0/Il8f0PVzZwrqB sZMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=yPq0jqLo; spf=pass (google.com: best guess record for domain of netdev-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=netdev-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m62si3963716pgm.392.2019.06.28.22.27.27; Fri, 28 Jun 2019 22:27:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of netdev-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=@linaro.org header.s=google header.b=yPq0jqLo; spf=pass (google.com: best guess record for domain of netdev-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=netdev-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726787AbfF2FXc (ORCPT + 9 others); Sat, 29 Jun 2019 01:23:32 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:46286 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726702AbfF2FXc (ORCPT ); Sat, 29 Jun 2019 01:23:32 -0400 Received: by mail-wr1-f67.google.com with SMTP id n4so8213385wrw.13 for ; Fri, 28 Jun 2019 22:23:30 -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; bh=ThTAGEqWouuiyKXnKOfOmPwCDBqTIkK+k/TmGWaAWKU=; b=yPq0jqLo3c2/P7BEPr/ivRwC3o2p206dks8uL1sw75o/4wpwOp//C9NzXKvaM1WVXP CXstBiPgRlpWqK/jdJRrSK3k9jagSp/cxNJhwWwQeOgT63W/SY5qusyK6k+bepeL2Mp6 NKmNlHvpNEa1aZ7bDwU20kNVhpuPQy8XKRL9TbFredO2RMCcfj451usZNCRSgZgoqhBh BY6fTrYJgGiwk5WO3uMpcRvWIcXbxoDGXxQxU7qh28UAVoH4USAVDokl7goteQsyjhd/ TR2aSSjGnpYIWZasxDtNVHDG53ZnLNRjiJcoeDGpql94f+nNLGrvJE/deglk5j41UgoQ i/Vw== 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; bh=ThTAGEqWouuiyKXnKOfOmPwCDBqTIkK+k/TmGWaAWKU=; b=aY4pTdDa/FlpUoCE+TDHY7aSDfI2MX4MppbxXTScLC7ftFJ7g0B7h8ZH/8qAX3IxCq kufTCwPSgtarG7H65tFWPWVicHQ2HO9tvhR3WiFJREOST3N7KstoXzVYvojynibI+peg 4ZTMm307hnS38h5km8nU7BZdBi8IMzBWRlG5ZANT55GEyiyEqYABeX1zsaJ/0UqBCW0x W6UUe5QNUpJt/c5vgquWjAwQbM4Oxw7hTd45y0gZaGvlpxS1TfQAFRIIeaLSMWpIQYzW ERF/Y+oXl/fbfJUu8dwmgrwJ+rkKN47LvZ+P7604bUDaZMCN9nVaXIKqJLcUv3aATztv thTA== X-Gm-Message-State: APjAAAUZLz51VBXzZpwAg7JtjW9aFxVY4a4xlfUXG1/LibO5BmFhtuE/ X0B6xJml9T3UC7U+8MmwGSUaaHDJVrs= X-Received: by 2002:a5d:540e:: with SMTP id g14mr11104908wrv.346.1561785810023; Fri, 28 Jun 2019 22:23:30 -0700 (PDT) Received: from apalos.lan (athedsl-4461147.home.otenet.gr. [94.71.2.75]) by smtp.gmail.com with ESMTPSA id g131sm2768887wmf.37.2019.06.28.22.23.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 28 Jun 2019 22:23:29 -0700 (PDT) From: Ilias Apalodimas To: netdev@vger.kernel.org, jaswinder.singh@linaro.org Cc: ard.biesheuvel@linaro.org, bjorn.topel@intel.com, magnus.karlsson@intel.com, brouer@redhat.com, daniel@iogearbox.net, ast@kernel.org, makita.toshiaki@lab.ntt.co.jp, jakub.kicinski@netronome.com, john.fastabend@gmail.com, davem@davemloft.net, maciejromanfijalkowski@gmail.com, Ilias Apalodimas Subject: [PATCH 0/3, net-next, v2] net: netsec: Add XDP Support Date: Sat, 29 Jun 2019 08:23:22 +0300 Message-Id: <1561785805-21647-1-git-send-email-ilias.apalodimas@linaro.org> X-Mailer: git-send-email 2.7.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This is a respin of https://www.spinics.net/lists/netdev/msg526066.html Since page_pool API fixes are merged into net-next we can now safely use it's DMA mapping capabilities. First patch changes the buffer allocation from napi/netdev_alloc_frag() to page_pool API. Although this will lead to slightly reduced performance (on raw packet drops only) we can use the API for XDP buffer recycling. Another side effect is a slight increase in memory usage, due to using a single page per packet. The second patch adds XDP support on the driver. There's a bunch of interesting options that come up due to the single Tx queue. Locking is needed(to avoid messing up the Tx queues since ndo_xdp_xmit and the normal stack can co-exist). We also need to track down the 'buffer type' for TX and properly free or recycle the packet depending on it's nature. Changes since RFC: - Bug fixes from Jesper and Maciej - Added page pool API to retrieve the DMA direction Changes since v1: - Use page_pool_free correctly if xdp_rxq_info_reg() failed Ilias Apalodimas (3): net: netsec: Use page_pool API net: page_pool: add helper function for retrieving dma direction net: netsec: add XDP support drivers/net/ethernet/socionext/Kconfig | 1 + drivers/net/ethernet/socionext/netsec.c | 473 ++++++++++++++++++++---- include/net/page_pool.h | 9 + 3 files changed, 416 insertions(+), 67 deletions(-) -- 2.20.1