From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7AAFEECE58F for ; Wed, 16 Oct 2019 00:04:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4E9462084B for ; Wed, 16 Oct 2019 00:04:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="wR0pnrLN" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387899AbfJPAEG (ORCPT ); Tue, 15 Oct 2019 20:04:06 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:34306 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726530AbfJPAEG (ORCPT ); Tue, 15 Oct 2019 20:04:06 -0400 Received: by mail-wr1-f68.google.com with SMTP id j11so25852158wrp.1 for ; Tue, 15 Oct 2019 17:04:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:in-reply-to:references :organization:mime-version:content-transfer-encoding; bh=u2sFG6u6ohRXSnAkcKzjorORqSIj1roXYbU4NUeLUDY=; b=wR0pnrLNBkakwMEcsKcwFQRYhBsg2MrkwrvJxsRG9KTF9uXyMr9c8Nvxr9TItOuO9v 63MWawNGqDzPPA8a3eVRIfZfjba5wKiDNpUVC2XAzOgKil6jdxVS/O8X6FWLgiDWWnn4 rZEEjN/5zCPzP5uUiD38ZzEO9wKBYqgFW5DjiWXdS8dFpRS/GHIC0GUoEB5t4SFFea93 88Nv6590DdI2tLCpsh4W1OvssKlbwbsQ48bjxdD89F8xZeE3ROAkNHnXttONK9T6zlWb ubxF/YFlr6uA6Rr1gAKSG79UGIlfMYTV62pTkjHU2y7knoeTCz21muWJSaijvZcDZs+v PY1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:organization:mime-version:content-transfer-encoding; bh=u2sFG6u6ohRXSnAkcKzjorORqSIj1roXYbU4NUeLUDY=; b=C2fmLBoS4QGGzI8Yy5hto024tq4iwP4iplgTXBIIHj7mgTeWZj7VSqCbm5lU0T0dY/ iFu4UazfHEc4DDmllGHjDh+L6zQNeKLXShNXOycKSB9/UB0y9wplfJYYe5SGk19mNwst ZkyssWeI0ZXwQTzwfMFYHPRH3kj4u/b9DE3KI5C2FzSy9HLbIyOI07KmHT3aiQGbsVuW cWJ0r0Y6BASev9zBoD8+mUS9rQq1tPQm/Lo2ZWLid/krlyYsWbjljtLge+26galbIUEB K/djxWboHWC20BpTj/xcLLuXdDYgwYEpA7sg8w6k7K9oFEnU7C3OD9eu/tD3yIHrP++O 34oA== X-Gm-Message-State: APjAAAVQlsUvNXb++jc2PJXJMeLReAOpB0UaEPKxSfghmc7108UWtYYq Y/sbOQPXf3gZWH+JFo5tZAfetA== X-Google-Smtp-Source: APXvYqxk0Dr1nRrypaAExNMGKBtlKtuwGSf3iTZtJWHSV+nK/DbSD9IkAZfKxBQtbbWvNA5V5vghbA== X-Received: by 2002:adf:e40c:: with SMTP id g12mr52838wrm.216.1571184242601; Tue, 15 Oct 2019 17:04:02 -0700 (PDT) Received: from cakuba.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id 63sm34968818wri.25.2019.10.15.17.03.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Oct 2019 17:04:02 -0700 (PDT) Date: Tue, 15 Oct 2019 17:03:53 -0700 From: Jakub Kicinski To: Lorenzo Bianconi Cc: netdev@vger.kernel.org, lorenzo.bianconi@redhat.com, davem@davemloft.net, thomas.petazzoni@bootlin.com, brouer@redhat.com, ilias.apalodimas@linaro.org, matteo.croce@redhat.com, mw@semihalf.com Subject: Re: [PATCH v3 net-next 7/8] net: mvneta: make tx buffer array agnostic Message-ID: <20191015170353.1f4fbbbb@cakuba.netronome.com> In-Reply-To: References: Organization: Netronome Systems, Ltd. MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Mon, 14 Oct 2019 12:49:54 +0200, Lorenzo Bianconi wrote: > Allow tx buffer array to contain both skb and xdp buffers in order to > enable xdp frame recycling adding XDP_TX verdict support > > Signed-off-by: Lorenzo Bianconi > --- > drivers/net/ethernet/marvell/mvneta.c | 66 +++++++++++++++++---------- > 1 file changed, 43 insertions(+), 23 deletions(-) > > diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c > index a79d81c9be7a..477ae6592fa3 100644 > --- a/drivers/net/ethernet/marvell/mvneta.c > +++ b/drivers/net/ethernet/marvell/mvneta.c > @@ -561,6 +561,20 @@ struct mvneta_rx_desc { > }; > #endif > > +enum mvneta_tx_buf_type { > + MVNETA_TYPE_SKB, > + MVNETA_TYPE_XDP_TX, > + MVNETA_TYPE_XDP_NDO, > +}; > + > +struct mvneta_tx_buf { > + enum mvneta_tx_buf_type type; I'd be tempted to try to encode type on the low bits of the pointer, otherwise you're increasing the cache pressure here. I'm not 100% sure it's worth the hassle, perhaps could be a future optimization. > + union { > + struct xdp_frame *xdpf; > + struct sk_buff *skb; > + }; > +};