From patchwork Fri Mar 27 10:17:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 67275 X-Patchwork-Delegate: andrew.rybchenko@oktetlabs.ru Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id F0910A0589; Fri, 27 Mar 2020 11:29:20 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 67FFC1C08E; Fri, 27 Mar 2020 11:29:13 +0100 (CET) Received: from mail-lj1-f195.google.com (mail-lj1-f195.google.com [209.85.208.195]) by dpdk.org (Postfix) with ESMTP id D8FB81C029 for ; Fri, 27 Mar 2020 11:29:11 +0100 (CET) Received: by mail-lj1-f195.google.com with SMTP id w1so9615839ljh.5 for ; Fri, 27 Mar 2020 03:29:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uKwrko1vKJTbWihDMGGAXsh6+ATWl/XADKanZvKUjoY=; b=Az9BnLQUet8ZP8LJxUpIJVMQ9eaUMtsSQsYFqhtBQlvrAVSg5ykGbC8K7vzccz2lJj vKAvIlSLCB7h5FBSAdsA8v/Xg3i3pOn6+tWceRL1bpTwK/UQSddPTA+meLMuECtTVhO8 t9eGmY8n86zFmbePFQcfNbN1KrnfIcbOrJtvyNrYhvikxX9hlBLf4oOrAJpqpCGIgo7Z Q8a2u5nRtm/obGWd8OtKAFFqqs4jtMSvxTmjZWfYGndpkCI1WPX0NvnNowWVM2cujKvu mjZWu5/AkS8kFEa+pozWF6IKqTJ6ea/4UZdOs7+zg2fdX4LrFwuZa2Ai0tq6s0/qdxpT P1rg== 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:mime-version:content-transfer-encoding; bh=uKwrko1vKJTbWihDMGGAXsh6+ATWl/XADKanZvKUjoY=; b=dUzD6SYF6b6lRJ663G8N+FdTCAku9HKZAv11HbRA8G4QSaZmJ2nIzNRGWkMFPjpr+f ORpl2fBeQfNRRw/xziSI+Kog5/bSaduJExCyuZVZ9tlTZMxlJ5DbM29jTVdHsf9oT1tQ 0fdjjvX51psvSOmxcDblhEuBE7LzBzFzFbWkP6VUjanKPmU/5wzW8IbrRVwxICqlqAQM cEf+DwzYmIGscaqQXMC5Yc318tyFdZAqAwzfR1l2SIde7qhVNdAGO6KU9Jj6vzEbZSoj uLog7bs9fcs2pb1GuhNgdjFGbKjGFFClu+awOSBp1+hQXgcTY5vTkhOgG9F5yFlT/nzS 2hAQ== X-Gm-Message-State: AGi0PuZTEwlUVeOCJRimtPWFObEQGGf/TR+IsOWpboUdXi17gwPzr+zB 7IJHx94lMCbmiEPL7YeFa1qKgJAkEuM= X-Google-Smtp-Source: APiQypKU/l3hvf2bJGIvuh1RY0fCMnP9gj8K2Vz5gtyLH03SQMoASqPpgAYptu+H2/FotT2aIV98Kw== X-Received: by 2002:a2e:9710:: with SMTP id r16mr4791340lji.109.1585304951113; Fri, 27 Mar 2020 03:29:11 -0700 (PDT) Received: from localhost.localdomain (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id i11sm2789587lfo.84.2020.03.27.03.29.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Mar 2020 03:29:10 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: mw@semihalf.com, mba@semihalf.com, gtzalik@amazon.com, evgenys@amazon.com, igorch@amazon.com, Michal Krawczyk Date: Fri, 27 Mar 2020 11:17:55 +0100 Message-Id: <20200327101823.12646-2-mk@semihalf.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200327101823.12646-1-mk@semihalf.com> References: <20200327101823.12646-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 01/29] net/ena: check if size of buffer is at least 1400B X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Some of the ENA devices can't handle buffers which are smaller than a 1400B. Because of this limitation, size of the buffer is being checked and limited during the Rx queue setup. If it's below the allowed value, PMD won't finish it's configuration successfully.. Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/ena_ethdev.c | 12 ++++++++++++ drivers/net/ena/ena_ethdev.h | 1 + 2 files changed, 13 insertions(+) diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c index 665afee4f0..a8f8784a9f 100644 --- a/drivers/net/ena/ena_ethdev.c +++ b/drivers/net/ena/ena_ethdev.c @@ -1282,6 +1282,7 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev, { struct ena_adapter *adapter = dev->data->dev_private; struct ena_ring *rxq = NULL; + size_t buffer_size; int i; rxq = &adapter->rx_ring[queue_idx]; @@ -1309,6 +1310,17 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev, return -EINVAL; } + /* ENA isn't supporting buffers smaller than 1400 bytes */ + buffer_size = mp->elt_size - sizeof(struct rte_mbuf) - + RTE_PKTMBUF_HEADROOM; + if (buffer_size < ENA_RX_BUF_MIN_SIZE) { + PMD_DRV_LOG(ERR, + "Unsupported size of RX buffer: %zu (min size: %d)\n", + buffer_size, ENA_RX_BUF_MIN_SIZE); + return -EINVAL; + } + printf("mempool size: %ld\n", buffer_size); + rxq->port_id = dev->data->port_id; rxq->next_to_clean = 0; rxq->next_to_use = 0; diff --git a/drivers/net/ena/ena_ethdev.h b/drivers/net/ena/ena_ethdev.h index af5eeea280..c1457defeb 100644 --- a/drivers/net/ena/ena_ethdev.h +++ b/drivers/net/ena/ena_ethdev.h @@ -20,6 +20,7 @@ #define ENA_MIN_FRAME_LEN 64 #define ENA_NAME_MAX_LEN 20 #define ENA_PKT_MAX_BUFS 17 +#define ENA_RX_BUF_MIN_SIZE 1400 #define ENA_MIN_MTU 128