From patchwork Thu Jan 10 16:14:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafal Kozik X-Patchwork-Id: 49624 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 2752C1B93F; Thu, 10 Jan 2019 17:14:27 +0100 (CET) Received: from mail-lj1-f193.google.com (mail-lj1-f193.google.com [209.85.208.193]) by dpdk.org (Postfix) with ESMTP id 3612F1B933 for ; Thu, 10 Jan 2019 17:14:25 +0100 (CET) Received: by mail-lj1-f193.google.com with SMTP id x85-v6so10227848ljb.2 for ; Thu, 10 Jan 2019 08:14:25 -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:in-reply-to:references; bh=Mj9Dpo3Yq/eDtRSH3MNJBYSMy9iKYe0jBxns12R441w=; b=Qxw17zPPmYNL5OPZ7JbAHTVa0QQJFvOjy9Cwo3T7sGHX6NDqkMqyIoAFX2vAOtWmNl n3Ts10EyFsTFTAdBQatuvIwPoEPXclnMpVAhp7UZ4omC6J8TSxubwh0IWmm7SKpPB9UC PUu7s+6xP0cBACX8wDMc35DUzBolSinre1hBauUL/OnPXhF5JcCHFDNtaTVZepjLQhnw iw5w8oBWImFvpQCmmeCnKj/1d5ejxJ8+NmVNI/ujq+4SjliyWOZhUhCCKWnvNs1mgqxZ WDTzJOfP2W4gM2opweq1fRPKwB8aMlhuJ+5hoqI0fkSkYiTUcEFgDyavL2PmdHw54KIk PcIg== 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; bh=Mj9Dpo3Yq/eDtRSH3MNJBYSMy9iKYe0jBxns12R441w=; b=m8IE7+ZeDJk175l6jUiufj+IiBlXizQucvbee7LgiwYxHX+n2IKifqjqRQ0t9cPxV9 JOC+M1/UMK+pidv9HYcU8tcPnN847HHDc0irTEbGaq3WBaL6tBWroIbzRzgde3TGvt6w 2QFhTD832trXIAM+BkkZuHYS6OQCz81g0o2qbWGWkG/o2KY7XquVlR7PskB7moSJDYv+ fOG3DTVs8ig52zgxH5xjddZo5Tz0wz7HPG+pDz/6RKpeeCOrHHB7mzLRlR0q4VO0v+18 QCJM1sMZ/cRHwsAWH7XGpNhZML1Yh5lwnljkJvaF8aH/n8TImERcrlpIXL639ySdjRaD gUQg== X-Gm-Message-State: AJcUukf4MFo/xkQxtg3bu263W9IjqxFqacvw+mzSRxJaPMh5qneiaE+v Th15s9nU6TkqR1ndcteBjet1+MJ9jfM= X-Google-Smtp-Source: ALg8bN6XPzPgE930UMCNZ13v38dL66uTZBwTvIREKbZ1KZNU+yTP5vrTrYUsz/vLTlshYEnfXg3pyQ== X-Received: by 2002:a2e:5747:: with SMTP id r7-v6mr6209899ljd.141.1547136864487; Thu, 10 Jan 2019 08:14:24 -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 y81-v6sm15558112lje.30.2019.01.10.08.14.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 10 Jan 2019 08:14:23 -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: Thu, 10 Jan 2019 17:14:06 +0100 Message-Id: <1547136846-23319-6-git-send-email-rk@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1547136846-23319-1-git-send-email-rk@semihalf.com> References: <1547136846-23319-1-git-send-email-rk@semihalf.com> Subject: [dpdk-dev] [PATCH 5/5] [pktgen] fix cleanup of not sent packets 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" Not sent packets are copied to the beginning of array to be reused in next iteration. But as in some cases more than half of mbuf could not be sent, source and destination locations would overlap. In such case rte_memcpy cannot be used. One of side effects is double sending the same mbuf and as a consequence double returning it to the mempool. Fixes: 2bf1eecea240 ("fixup code for 18.05 and cleanup") Signed-off-by: Rafal Kozik --- app/pktgen.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/pktgen.c b/app/pktgen.c index f7eee07..c1039a6 100644 --- a/app/pktgen.c +++ b/app/pktgen.c @@ -272,11 +272,10 @@ _send_burst_fast(port_info_t *info, uint16_t qid) { struct mbuf_table *mtab = &info->q[qid].tx_mbufs; struct rte_mbuf **pkts; - uint32_t ret, cnt, sav, retry; + uint32_t ret, cnt, retry, i; cnt = mtab->len; mtab->len = 0; - sav = cnt; pkts = mtab->m_table; @@ -299,8 +298,8 @@ _send_burst_fast(port_info_t *info, uint16_t qid) } } if (cnt) { - rte_memcpy(&mtab->m_table[0], &mtab->m_table[sav - cnt], - sizeof(char *) * cnt); + for (i = 0; i < cnt; i++) + mtab->m_table[i] = pkts[i]; mtab->len = cnt; } }