From patchwork Wed Nov 14 09:59:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafal Kozik X-Patchwork-Id: 48062 X-Patchwork-Delegate: ferruh.yigit@amd.com 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 064075424; Wed, 14 Nov 2018 10:59:56 +0100 (CET) Received: from mail-ed1-f67.google.com (mail-ed1-f67.google.com [209.85.208.67]) by dpdk.org (Postfix) with ESMTP id 862B95398 for ; Wed, 14 Nov 2018 10:59:55 +0100 (CET) Received: by mail-ed1-f67.google.com with SMTP id d3so12513367edx.7 for ; Wed, 14 Nov 2018 01:59:55 -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=Xp6QlNjmA7v7QY3O3ZR57qkzO5djhiG28aBt2CoMOtU=; b=gCvlwNKDdMdHxxDnydZ+kZpSA1sv40NgRdf2sg6Fv6zI9v+miylmrUHyrv9/TG1AJL a99jH2MQXbz+ZdCq8NY6T3umJ22QYShHa4LUFWVWuZK35oLsYWSkA6Lgfp9cz4gGRWr5 7abcSOLzcZVjc7SHJvNfw/C3PRvfuZGwkXde1BKmp+w0+uNnsZ7heGyGTFDKi6ZslFtt fFNFEPE8WRyYUbVZLZDwOP4wsC+N3VF6zjgDvr0CLuyw3nU6Cf7lELXTIxsoJc29R0jD e7izQgnOm+8MhdMD3LCganAO36NuWxY/fXYwZ518huugWcgp/piKaPiTpAK9CcTiAvt8 wBfA== 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=Xp6QlNjmA7v7QY3O3ZR57qkzO5djhiG28aBt2CoMOtU=; b=tgnYIY/eH3Zbeus4bDkskZeU4CNqJqsQgHBpU+XONBLNTm3NwFRJF9q2rPylyyz6Rm cL4QQNJ6l3aB8ftwUDsZ8rvxdgbV6VZllQCvOeZvxF6+L+w3gH/dk/BYdFec9yR5cweV +mp0Ab67O+u6AM1oQiN+MT/ofUxzuwherYiCXUg3rnoMEqHb0ycP3lAG1zMRpBZPlNkO iCsAa8Jq3cz+deu171MkUA90r1knHLTNYwLzALAB19ZnghgyQxC/90SL/hfoMrBBp8nE rT6uSJcfvmHwtF6YAjEXkXzayCZbvYIL9bRZbWlvYQmeA/5g3UG/m66daL25NfgW/mbE yblA== X-Gm-Message-State: AGRZ1gKvYxx8j/jftEH3ltXgD92BTHeCha+3kbj3Z45EpVsAcwau2blh s+nagmr1m6W2h916e26ySQpKUFy07So= X-Google-Smtp-Source: AJdET5cdd5M9BL3LsdmJdC2AJJs1OIvusgELna06/wcAq55339JwZPC/2PsAEvvitbSVYP+ZCIPcOA== X-Received: by 2002:a17:906:d144:: with SMTP id br4-v6mr1333911ejb.18.1542189594860; Wed, 14 Nov 2018 01:59:54 -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 p30sm3284615eda.68.2018.11.14.01.59.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 14 Nov 2018 01:59:54 -0800 (PST) From: Rafal Kozik To: dev@dpdk.org Cc: mw@semihalf.com, mk@semihalf.com, gtzalik@amazon.com, evgenys@amazon.com, matua@amazon.com, igorch@amazon.com, Rafal Kozik Date: Wed, 14 Nov 2018 10:59:45 +0100 Message-Id: <1542189585-19307-1-git-send-email-rk@semihalf.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-dev] [PATCH] net/ena: cleaning HW IO rings configuration 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" When queues are stoped release tx buffers. During start initialize array of empty tx/rx reqs with default values. Fixes: df238f84c0a2 ("net/ena: recreate HW IO rings on start and stop") Signed-off-by: Rafal Kozik Acked-by: Michal Krawczyk --- drivers/net/ena/ena_ethdev.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c index 05a4fbe..3690afe 100644 --- a/drivers/net/ena/ena_ethdev.c +++ b/drivers/net/ena/ena_ethdev.c @@ -1096,6 +1096,7 @@ static int ena_create_io_queue(struct ena_ring *ring) { ENA_ADMIN_PLACEMENT_POLICY_HOST, 0, 0, 0, 0, 0 }; uint16_t ena_qid; + unsigned int i; int rc; adapter = ring->adapter; @@ -1106,10 +1107,14 @@ static int ena_create_io_queue(struct ena_ring *ring) ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_TX; ctx.mem_queue_type = ena_dev->tx_mem_queue_type; ctx.queue_size = adapter->tx_ring_size; + for (i = 0; i < ring->ring_size; i++) + ring->empty_tx_reqs[i] = i; } else { ena_qid = ENA_IO_RXQ_IDX(ring->id); ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_RX; ctx.queue_size = adapter->rx_ring_size; + for (i = 0; i < ring->ring_size; i++) + ring->empty_rx_reqs[i] = i; } ctx.qid = ena_qid; ctx.msix_vector = -1; /* interrupts not used */ @@ -1152,6 +1157,8 @@ static void ena_free_io_queues_all(struct ena_adapter *adapter) for (i = 0; i < nb_txq; ++i) { ena_qid = ENA_IO_TXQ_IDX(i); ena_com_destroy_io_queue(ena_dev, ena_qid); + + ena_tx_queue_release_bufs(&adapter->tx_ring[i]); } for (i = 0; i < nb_rxq; ++i) {