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 9C9DCA057B; Thu, 2 Apr 2020 14:36:43 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E55C22BCE; Thu, 2 Apr 2020 14:36:42 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id D09542BAF for ; Thu, 2 Apr 2020 14:36:41 +0200 (CEST) IronPort-SDR: +0DfScrpmwmLt3uBY098BroVKdgcPW96PqNjtQi7s6EELlMDKQ2rMPrd4Oo+M6Kp5FQP62/HUE poMSWuiwYX9Q== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Apr 2020 05:36:40 -0700 IronPort-SDR: df2Vr0Pjdx2rkn3lx4jMtMjgMkTikEWPnLI7FAPRJYWTTRZjmX/fWY6hZ1WCTLJC+e4crgW0Io Ut8O0zvJEgAQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,335,1580803200"; d="scan'208";a="273545685" Received: from fyigit-mobl.ger.corp.intel.com (HELO [10.252.4.50]) ([10.252.4.50]) by fmsmga004.fm.intel.com with ESMTP; 02 Apr 2020 05:36:38 -0700 To: Michal Krawczyk , dev@dpdk.org Cc: mw@semihalf.com, mba@semihalf.com, gtzalik@amazon.com, evgenys@amazon.com, igorch@amazon.com References: <20200401142127.13715-1-mk@semihalf.com> <20200401142127.13715-5-mk@semihalf.com> From: Ferruh Yigit Autocrypt: addr=ferruh.yigit@intel.com; prefer-encrypt=mutual; keydata= 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 cA== Message-ID: Date: Thu, 2 Apr 2020 13:36:38 +0100 MIME-Version: 1.0 In-Reply-To: <20200401142127.13715-5-mk@semihalf.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH v2 04/29] net/ena/base: set default hash key 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" On 4/1/2020 3:21 PM, Michal Krawczyk wrote: > The RSS hash key was present in the device, but it wasn't exposed to > the user. The other key still cannot be set, but now it can be accessed > if one needs to do that. What is 'the other key'? > > By default, the random hash key is used and it is generated only once > when requested for the first time. It looks like this patch does 1- setting default rss hash key (generated randomly) 2- Separate 'ena_com_get_hash_function()' and 'ena_com_get_hash_key()' - I didn't get the motivation of this seperation, new function not called 3- Minor fixes, like 'key' check in 'ena_com_fill_hash_function()', in 'ENA_ADMIN_TOEPLITZ' case, ... 4- remove 'ena_com_ind_tbl_convert_from_device()' What to you think seperating above ones if they are logically seperate? > > Signed-off-by: Michal Krawczyk > Reviewed-by: Igor Chauskin > Reviewed-by: Guy Tzalik <...> > @@ -1032,6 +1032,24 @@ static int ena_com_get_feature(struct ena_com_dev *ena_dev, > feature_ver); > } > > +int ena_com_get_current_hash_function(struct ena_com_dev *ena_dev) > +{ > + return ena_dev->rss.hash_func; > +} This function is not called, who is the intendent consumer of the function? Commit log mentions exposing to user, is the intention this function to be called by application, if so it shoudln't, applications doesn't call driver fucntions directly. <...> > @@ -1266,30 +1284,6 @@ static int ena_com_ind_tbl_convert_to_device(struct ena_com_dev *ena_dev) > return 0; > } > > -static int ena_com_ind_tbl_convert_from_device(struct ena_com_dev *ena_dev) > -{ > - u16 dev_idx_to_host_tbl[ENA_TOTAL_NUM_QUEUES] = { (u16)-1 }; > - struct ena_rss *rss = &ena_dev->rss; > - u8 idx; > - u16 i; > - > - for (i = 0; i < ENA_TOTAL_NUM_QUEUES; i++) > - dev_idx_to_host_tbl[ena_dev->io_sq_queues[i].idx] = i; > - > - for (i = 0; i < 1 << rss->tbl_log_size; i++) { > - if (rss->rss_ind_tbl[i].cq_idx > ENA_TOTAL_NUM_QUEUES) > - return ENA_COM_INVAL; > - idx = (u8)rss->rss_ind_tbl[i].cq_idx; > - > - if (dev_idx_to_host_tbl[idx] > ENA_TOTAL_NUM_QUEUES) > - return ENA_COM_INVAL; > - > - rss->host_rss_ind_tbl[i] = dev_idx_to_host_tbl[idx]; > - } > - > - return 0; > -}> - This function and where it is called seems removed, is this related to this patch, "setting default hash key"? <...> > case ENA_ADMIN_TOEPLITZ: > - if (key_len > sizeof(hash_key->key)) { > - ena_trc_err("key len (%hu) is bigger than the max supported (%zu)\n", > - key_len, sizeof(hash_key->key)); > - return ENA_COM_INVAL; > + if (key) { > + if (key_len != sizeof(hash_key->key)) { > + ena_trc_err("key len (%hu) doesn't equal the supported size (%zu)\n", > + key_len, sizeof(hash_key->key)); > + return ENA_COM_INVAL; > + } > + memcpy(hash_key->key, key, key_len); > + rss->hash_init_val = init_val; > + hash_key->keys_num = key_len >> 2; I am aware this is copy/paste, but here '>> 2' is "/ sizeof(unit2_t)", would it be better to use that way instead of hardcoded value? <...> > @@ -256,6 +256,23 @@ static const struct eth_dev_ops ena_dev_ops = { > .reta_query = ena_rss_reta_query, > }; > > +void ena_rss_key_fill(void *key, size_t size) > +{ > + static bool key_generated; > + static uint8_t default_key[ENA_HASH_KEY_SIZE]; If there are multiple 'ena' devices in the platform, using 'static' variables will cause each device use same rss key, I just want to double check this is the intention.