From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 77EFCA04DB; Thu, 10 Dec 2020 15:23:02 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 277E6C950; Thu, 10 Dec 2020 15:22:44 +0100 (CET) Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by dpdk.org (Postfix) with ESMTP id D9B2EBE75 for ; Thu, 10 Dec 2020 15:22:42 +0100 (CET) Received: by mail-pf1-f193.google.com with SMTP id f9so4201091pfc.11 for ; Thu, 10 Dec 2020 06:22:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pensando.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lhzpwiWMk45NcgJJyb6v9gU53GDy4s3mlu7Hoo2zPMk=; b=ML7aw/dLhQ7kiJj3Mu0SDoEjGOFpBJAqvmnfYuSoWjEKAxNQ4nzfByE+dId779wKzo jgNUZUH/a1nthzirNNtiVKGYp4WvMwb8xMCtM4WoE3JslcOANa2B1ZVbWRXyhM5a0BWu jhVrlPoKZ6oSCK5J3C3ydZsr1TaYAIVVP4rhZ9fzksK5a2RtllqY62L4hh3donPyxt9L oCCaw9F/KkvaaRlJV5tW0jpg63kmU+5ZvBKr93VR8YDNXgTJTmaRoqequJ4AJ71DS9oe v6sXGyppbESulOfVUHTajoHZeP7JDv33mjC0K7cnaPc1hhxVNi5zWiQtLWVo6TNQO9Oi iPfA== 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=lhzpwiWMk45NcgJJyb6v9gU53GDy4s3mlu7Hoo2zPMk=; b=bjj5zV/N/w2J3KG2tyiIUDILbaaERuLk8zS1cRtvOs0Y0O+Pyv5sjbZi39ajcHU4Pq q+GssByUHdAMOqVKF5j9USm4CnLYHhK1rAfJoKveGVB7cZDXCYJpICafK6wS1no5R56W fgC40VOS4JWQ43MRHEZR2+BMTY/GjQ27Jz8LZtZziuTjIxUFmrv8pkeQTmyAb5IZyLyL mglk9qKu+Q/CnhCIhZ/7gaA0775HTk79P5+DNb1ud0ezLq14HPnKKqomnyrIHJAZJCK9 2dRwWEgUGTyUSPo7zKgkt1aVftZNEjSwsSJQiNl/fXOOkDBpZhi+h70V0XijRJnmJoDu W4Zw== X-Gm-Message-State: AOAM5320c8TYShq2x0HKFCXbo6cfy1c2gpfoT8VMZZnuPJNeT/SAiT78 b8RNe9a5iILg5b6gCk7BZzuEaZnuvyrnJw== X-Google-Smtp-Source: ABdhPJwn5GRohg99OPT1gXgOTTNIUGt5RgB90xwMM7AmvIzOtXEwUk5nOLWIlvLOUC+QGI8+9YCgJA== X-Received: by 2002:a17:90a:b38d:: with SMTP id e13mr8051226pjr.214.1607610160812; Thu, 10 Dec 2020 06:22:40 -0800 (PST) Received: from driver-dev1.pensando.io ([12.226.153.42]) by smtp.gmail.com with ESMTPSA id n10sm6296983pge.92.2020.12.10.06.22.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Dec 2020 06:22:40 -0800 (PST) From: Andrew Boyer To: dev@dpdk.org Cc: Alfredo Cardigliano , Andrew Boyer Date: Thu, 10 Dec 2020 06:22:26 -0800 Message-Id: <20201210142231.63209-2-aboyer@pensando.io> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201210142231.63209-1-aboyer@pensando.io> References: <20201210142231.63209-1-aboyer@pensando.io> Subject: [dpdk-dev] [PATCH 1/6] net/ionic: preserve RSS state unless RETA size changes 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" This preserves settings across a stop/start. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 44 ++++++++++++++++------------------- drivers/net/ionic/ionic_lif.h | 1 + 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c index 28ae9dc8a..646c921b2 100644 --- a/drivers/net/ionic/ionic_lif.c +++ b/drivers/net/ionic/ionic_lif.c @@ -962,8 +962,6 @@ ionic_lif_rss_config(struct ionic_lif *lif, static int ionic_lif_rss_setup(struct ionic_lif *lif) { - size_t tbl_size = sizeof(*lif->rss_ind_tbl) * - lif->adapter->ident.lif.eth.rss_ind_tbl_sz; static const uint8_t toeplitz_symmetric_key[] = { 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, @@ -971,34 +969,35 @@ ionic_lif_rss_setup(struct ionic_lif *lif) 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, }; - uint32_t socket_id = rte_socket_id(); uint32_t i; - int err; + uint16_t tbl_sz = lif->adapter->ident.lif.eth.rss_ind_tbl_sz; IONIC_PRINT_CALL(); - lif->rss_ind_tbl_z = rte_eth_dma_zone_reserve(lif->eth_dev, - "rss_ind_tbl", - 0 /* queue_idx*/, tbl_size, IONIC_ALIGN, socket_id); - if (!lif->rss_ind_tbl_z) { - IONIC_PRINT(ERR, "OOM"); - return -ENOMEM; - } + lif->rss_ind_tbl_z = rte_eth_dma_zone_reserve(lif->eth_dev, + "rss_ind_tbl", 0 /* queue_idx */, + sizeof(*lif->rss_ind_tbl) * tbl_sz, + IONIC_ALIGN, rte_socket_id()); + if (!lif->rss_ind_tbl_z) { + IONIC_PRINT(ERR, "OOM"); + return -ENOMEM; + } - lif->rss_ind_tbl = lif->rss_ind_tbl_z->addr; - lif->rss_ind_tbl_pa = lif->rss_ind_tbl_z->iova; + lif->rss_ind_tbl = lif->rss_ind_tbl_z->addr; + lif->rss_ind_tbl_pa = lif->rss_ind_tbl_z->iova; + } - /* Fill indirection table with 'default' values */ - for (i = 0; i < lif->adapter->ident.lif.eth.rss_ind_tbl_sz; i++) - lif->rss_ind_tbl[i] = i % lif->nrxqcqs; + if (lif->rss_ind_tbl_nrxqcqs != lif->nrxqcqs) { + lif->rss_ind_tbl_nrxqcqs = lif->nrxqcqs; - err = ionic_lif_rss_config(lif, IONIC_RSS_OFFLOAD_ALL, - toeplitz_symmetric_key, NULL); - if (err) - return err; + /* Fill indirection table with 'default' values */ + for (i = 0; i < tbl_sz; i++) + lif->rss_ind_tbl[i] = i % lif->nrxqcqs; + } - return 0; + return ionic_lif_rss_config(lif, IONIC_RSS_OFFLOAD_ALL, + toeplitz_symmetric_key, NULL); } static void @@ -1578,9 +1577,6 @@ ionic_lif_start(struct ionic_lif *lif) uint32_t i; int err; - IONIC_PRINT(DEBUG, "Setting RSS configuration on port %u", - lif->port_id); - err = ionic_lif_rss_setup(lif); if (err) return err; diff --git a/drivers/net/ionic/ionic_lif.h b/drivers/net/ionic/ionic_lif.h index 8e2b42443..b80931c61 100644 --- a/drivers/net/ionic/ionic_lif.h +++ b/drivers/net/ionic/ionic_lif.h @@ -108,6 +108,7 @@ struct ionic_lif { uint8_t *rss_ind_tbl; rte_iova_t rss_ind_tbl_pa; const struct rte_memzone *rss_ind_tbl_z; + uint32_t rss_ind_tbl_nrxqcqs; uint32_t info_sz; struct ionic_lif_info *info; rte_iova_t info_pa; -- 2.17.1