Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp498006pxf; Wed, 31 Mar 2021 08:33:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyGBvwkkObMLsT9dc7yslXrAWk/kvXxdKFnpa4MrpXmdN+kuLvwKbLgOYUNSqP/UyyeNg/E X-Received: by 2002:a17:906:2c44:: with SMTP id f4mr4012844ejh.508.1617204800375; Wed, 31 Mar 2021 08:33:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617204800; cv=none; d=google.com; s=arc-20160816; b=nzHvI3Nu4zZtgVQHL4jFmSonL4p6t23mXZ+WqbaWe48zekIGnADPmyV1RHFx+yLpUS mpRcdFb9O+tUeIHndkh+FnGFfdFX84zSopyqbVWBnrIrEyYgfp/npYfqJpJa9mCjQbOQ Rk1nGL1JvE/SfZGh+4WC+ru4vxdH5MMphA+Tp2G+SK5zVy5xKYLgTZ41Wcupmih89QGh 7aIajyzjMVv6suCA0SvYtC7u6Uor4ofKYbBH8Mk9c/d635v7KbuKzRx+wyWzvBLDBvdb 0FR3zGI1p8jHl9VEoq1HlYxzirvig8p26XwBpQzE7V7+DFvPwqGdy4UGJAwEqs0IUq0d X+cw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:ironport-sdr:ironport-sdr; bh=rJXnjCM55jJaMLzxkKWzFmvoU5RQ4qDKxkqPa2apIzI=; b=FO2PGugzZ8Vp9bOf33cE05dS9D/JhHprixMEAIUnpBG9xKoE0uHGxuS30Tk6Gwhda+ 01FtdDLpU2ljj69pCJjCaVITeWEhHW9j4KyxeCFskvZ5oZe3qlpSlSLuEZD+D1DXxhDV dBhXZwXZPLiEwMcvr2yCfP8Pr02ghbxOq1HGZGljMrtBsIPtdZG7oOgJLpdNmCWCkS4L PwQbjt8HVAxfEBOp0nPTZ1SuDHoHICWJCYPCPzTp4xXq8UNUCcpZOqd6o8BXk5aUmNVE W53pN741d0JyWVrYsglTFCILVBRBt9XWPeQVXD0oyiH06Z5LdRKrVO/wftmPMozfr+f/ 3z1g== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id mh2si1785893ejb.107.2021.03.31.08.32.57; Wed, 31 Mar 2021 08:33:20 -0700 (PDT) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235540AbhCaPcA (ORCPT + 99 others); Wed, 31 Mar 2021 11:32:00 -0400 Received: from mga06.intel.com ([134.134.136.31]:10013 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235420AbhCaPbm (ORCPT ); Wed, 31 Mar 2021 11:31:42 -0400 IronPort-SDR: ix/TbFdwhqexlKDLzcSimdpnwqJy5k9ySxCYjUqlJ0+cbqK3u3U3HQbj+V79dN+DR1PyFljj/j S3N+iLVHSAFg== X-IronPort-AV: E=McAfee;i="6000,8403,9940"; a="253363775" X-IronPort-AV: E=Sophos;i="5.81,293,1610438400"; d="scan'208";a="253363775" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Mar 2021 08:31:38 -0700 IronPort-SDR: t2ElSMhwnt8Hm7hqczZh4uqwTpjrT0CnReQGioO25F9+uRM8nZaJ0EiW3QO6AW0NUOZbkxvh/h y9c5DTJJe8Yg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,293,1610438400"; d="scan'208";a="455537071" Received: from glass.png.intel.com ([10.158.65.59]) by orsmga001.jf.intel.com with ESMTP; 31 Mar 2021 08:31:32 -0700 From: Ong Boon Leong To: Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , "David S . Miller" , Jakub Kicinski , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend Cc: Maxime Coquelin , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , KP Singh , netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, Ong Boon Leong Subject: [PATCH net-next v3 0/6] stmmac: Add XDP support Date: Wed, 31 Mar 2021 23:35:41 +0800 Message-Id: <20210331153541.1892-1-boon.leong.ong@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, This is the v3 patch series for adding XDP support to stmmac driver. Summary of the changes in v3 (per feedback from Jakub Kicinski):- 4/6: Factor in XDP buffer header and tail adjustment by XDP prog. 5/6: Added 'nq->trans_start = jiffies' to avoid TX time-out for XDP_TX. 6/6: Added 'nq->trans_start = jiffies' to avoid TX time-out for ndo_xdp_xmit. I retested this patch series on all the test steps listed in v1 and the results look good as expected. I also used xdp_adjust_tail test app in samples/bpf for checking out XDP head and tail adjustment introduced in 4/6 and the result below looks correct too. ######################################################################## DUT > root@intel-corei7-64:~ $ ./xdp_adjust_tail -i eth0 -P 400 -N ========================== icmp "packet too big" sent: 0 pkts icmp "packet too big" sent: 0 pkts icmp "packet too big" sent: 0 pkts icmp "packet too big" sent: 0 pkts icmp "packet too big" sent: 1 pkts icmp "packet too big" sent: 1 pkts icmp "packet too big" sent: 1 pkts icmp "packet too big" sent: 2 pkts icmp "packet too big" sent: 4 pkts icmp "packet too big" sent: 6 pkts icmp "packet too big" sent: 8 pkts icmp "packet too big" sent: 9 pkts icmp "packet too big" sent: 10 pkts icmp "packet too big" sent: 10 pkts LP > root@intel-corei7-64:~# ping 169.254.1.11 -s 300 PING 169.254.1.11 (169.254.1.11) 300(328) bytes of data. 308 bytes from 169.254.1.11: icmp_seq=1 ttl=64 time=1.17 ms 308 bytes from 169.254.1.11: icmp_seq=2 ttl=64 time=0.575 ms 308 bytes from 169.254.1.11: icmp_seq=3 ttl=64 time=0.582 ms 308 bytes from 169.254.1.11: icmp_seq=4 ttl=64 time=0.595 ms 308 bytes from 169.254.1.11: icmp_seq=5 ttl=64 time=0.585 ms 308 bytes from 169.254.1.11: icmp_seq=6 ttl=64 time=0.591 ms 308 bytes from 169.254.1.11: icmp_seq=7 ttl=64 time=0.599 ms ^C --- 169.254.1.11 ping statistics --- 7 packets transmitted, 7 received, 0% packet loss, time 6103ms rtt min/avg/max/mdev = 0.575/0.670/1.166/0.202 ms LP > root@intel-corei7-64:~# ping 169.254.1.11 -s 500 PING 169.254.1.11 (169.254.1.11) 500(528) bytes of data. From 169.254.1.11 icmp_seq=1 Frag needed and DF set (mtu = 436) From 169.254.1.11 icmp_seq=2 Frag needed and DF set (mtu = 436) From 169.254.1.11 icmp_seq=3 Frag needed and DF set (mtu = 436) From 169.254.1.11 icmp_seq=4 Frag needed and DF set (mtu = 436) From 169.254.1.11 icmp_seq=5 Frag needed and DF set (mtu = 436) From 169.254.1.11 icmp_seq=6 Frag needed and DF set (mtu = 436) ######################################################################## History of the previous patch series: v2: https://patchwork.kernel.org/project/netdevbpf/list/?series=457757 v1: https://patchwork.kernel.org/project/netdevbpf/list/?series=457139 It will be great if community can help to test or review the v3 patch series on your platform and provide me any new feedback if any. Thank you very much. Boon Leong Ong Boon Leong (6): net: stmmac: set IRQ affinity hint for multi MSI vectors net: stmmac: make SPH enable/disable to be configurable net: stmmac: arrange Tx tail pointer update to stmmac_flush_tx_descriptors net: stmmac: Add initial XDP support net: stmmac: Add support for XDP_TX action net: stmmac: Add support for XDP_REDIRECT action drivers/net/ethernet/stmicro/stmmac/Makefile | 1 + drivers/net/ethernet/stmicro/stmmac/stmmac.h | 35 +- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 529 +++++++++++++++--- .../net/ethernet/stmicro/stmmac/stmmac_xdp.c | 40 ++ .../net/ethernet/stmicro/stmmac/stmmac_xdp.h | 12 + 5 files changed, 537 insertions(+), 80 deletions(-) create mode 100644 drivers/net/ethernet/stmicro/stmmac/stmmac_xdp.c create mode 100644 drivers/net/ethernet/stmicro/stmmac/stmmac_xdp.h -- 2.25.1