From patchwork Fri Nov 23 08:23:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafal Kozik X-Patchwork-Id: 48305 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BB92D1B4FE; Fri, 23 Nov 2018 09:23:07 +0100 (CET) Received: from mail-lj1-f196.google.com (mail-lj1-f196.google.com [209.85.208.196]) by dpdk.org (Postfix) with ESMTP id 47ACF1B4FC for ; Fri, 23 Nov 2018 09:23:06 +0100 (CET) Received: by mail-lj1-f196.google.com with SMTP id g11-v6so9965093ljk.3 for ; Fri, 23 Nov 2018 00:23:06 -0800 (PST) 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; bh=AvZIm1WBUyySaTKJyqKWtfkStnxcmYHfidQ+hHah/+w=; b=UoizZsEkL6DeaoZ3SDd345Li4qpZFIkvnTY3XDXSC6yJnrM/rPU452X7DKUTa48kPj BzLp0V17KoDtI6fPiWP2ysmo8+eWIsVh+s2Ba7+fpqG2X3BUQg7xezSri/TNkUpXBVbf T4Itu2nQIKVLBzz4FtVaes56Yef21mv7DmR+XZgPB1nRm7zyAR4bS1ZuPI20tRwkCpmE r5ZRKSWqNk1wXXDng9QZvebnwLAiEPnDmX/aGrlWr1BS5WHuJtYvdPnRt0OEvSwW9SNy cydi5MiE4Kq7GYWqW0zFgLMtrU2NMqIql4TQZkXCrz85sqE8tunOGr9vovvR6752JKyr Hdiw== 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=AvZIm1WBUyySaTKJyqKWtfkStnxcmYHfidQ+hHah/+w=; b=of5H7Yq7FiTtgvx6oYmYCwkDDWtrLmDBXV85QijcD8vwW+sSoi8QpSP79t7CmIj1FR ARX3CKNnZD/AqfnMRJpnaqPeJph71dfQFdOQvmnxDp62O8fRU5L9ddxS2AFAawjRyDEa M7c3fSHokSDG3wa9Kc1y802bZBmIH9Y7LxGpbg//ptt803xm3ChUjhjZP+XqdRU1sBBe tHjsoyNE1Ibf3mV+vzzdDDg3XklF6a8v2cPmz79BciQvP7fjBkL8FzeIMyr+jUuotOS5 4ExAgpk3QOfiQQQBmHd/ZMWSDOcKhGE1xMzwtoKf8ii/xX4PAQ5ycfVUGqSPm9gz4USJ tUkw== X-Gm-Message-State: AA+aEWYU2lJ/9xR98S02iupQcpmIDRWx6aLjafCoMZxAiDnyBYib8LPR /tlKRxCjoTDc4sULvmf6Za+Mp14i9F8= X-Google-Smtp-Source: AFSGD/W3dT4tLUeUkzefbl04+YgFUuRO3kLmloJETuMgiAoUbJzgPAKWjkDIij/23VeEYGhdH93+AQ== X-Received: by 2002:a2e:1b47:: with SMTP id b68-v6mr7926009ljb.104.1542961385483; Fri, 23 Nov 2018 00:23:05 -0800 (PST) Received: from rafalkozik.semihalf.local (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id a11sm5682378lfb.68.2018.11.23.00.23.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 23 Nov 2018 00:23:04 -0800 (PST) From: Rafal Kozik To: dev@dpdk.org, keith.wiles@intel.com Cc: mw@semihalf.com, mk@semihalf.com, gtzalik@amazon.com, evgenys@amazon.com, matua@amazon.com, igorch@amazon.com, Rafal Kozik Date: Fri, 23 Nov 2018 09:23:02 +0100 Message-Id: <1542961382-5234-1-git-send-email-rk@semihalf.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-dev] [PATCH] fix repopulation of tx_mbufs table 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" If in one TX cycle NIC does not send any packet, pktgen tries to allocate 0 mbufs from pool. In such case DPDK return error and packets will not be send. As no packet will be send in next iteration this situation will repeat. Checking if taking more mbufs is needed will prevent this situation. Fixes: f034b381d19f ("cleanup and fix for FVL NIC performance") Signed-off-by: Rafal Kozik --- app/pktgen.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/pktgen.c b/app/pktgen.c index 2d9ff59..b4d3dfe 100644 --- a/app/pktgen.c +++ b/app/pktgen.c @@ -1054,7 +1054,8 @@ pktgen_send_pkts(port_info_t *info, uint16_t qid, struct rte_mempool *mp) uint16_t saved = info->q[qid].tx_mbufs.len; uint16_t nb_pkts = info->tx_burst - saved; - rc = pg_pktmbuf_alloc_bulk(mp, + if (likely(nb_pkts > 0)) + rc = pg_pktmbuf_alloc_bulk(mp, &info->q[qid].tx_mbufs.m_table[saved], nb_pkts); if (rc == 0) { @@ -1070,7 +1071,8 @@ pktgen_send_pkts(port_info_t *info, uint16_t qid, struct rte_mempool *mp) uint16_t saved = info->q[qid].tx_mbufs.len; uint16_t nb_pkts = txCnt - saved; - rc = pg_pktmbuf_alloc_bulk(mp, + if (likely(nb_pkts > 0)) + rc = pg_pktmbuf_alloc_bulk(mp, &info->q[qid].tx_mbufs.m_table[saved], nb_pkts); if (rc == 0) {