From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id F192641C95; Tue, 14 Feb 2023 14:39:43 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 883C1410EF; Tue, 14 Feb 2023 14:39:43 +0100 (CET) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 87CD0410D1 for ; Tue, 14 Feb 2023 14:39:41 +0100 (CET) Received: from [192.168.38.17] (aros.oktetlabs.ru [192.168.38.17]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id AD61267; Tue, 14 Feb 2023 16:39:40 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru AD61267 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1676381980; bh=Loy0GIEw1oHTm5ApkHK80J3SYMmMtCmAGQevSnJ0ir8=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=ww+1XYujMcw+41xQUes9AcJ7a3XGZoU993Pz/jlyBAC5Ui/KAnBlbd5d8j+yQewWA tsEb6Ke95LI2XwmQBoRVRZ7Di5mvV22pJUS+ZbC6Gv2SlTT8IAu88Oo/+wYLcpYh+U s2i0CyhDWygu4QeQ0q4abIOz05V3iwqgL5yaaFsA= Message-ID: Date: Tue, 14 Feb 2023 16:39:39 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: [PATCH] net/sfc: avoid unnecessary flow pattern item traversal Content-Language: en-US To: Ivan Malov , dev@dpdk.org Cc: Viacheslav Galaktionov , Andy Moreton References: <20230214132728.7553-1-ivan.malov@arknetworks.am> From: Andrew Rybchenko Organization: OKTET Labs In-Reply-To: <20230214132728.7553-1-ivan.malov@arknetworks.am> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 2/14/23 16:27, Ivan Malov wrote: > Currently, the code tries to look up a user-provided item > by traversing those known to the PMD. Avoid the traversal > since it is easier to access items directly by their IDs, > with necessary checks to avoid reading past the buffer. > > Signed-off-by: Ivan Malov > Reviewed-by: Viacheslav Galaktionov > Reviewed-by: Andy Moreton > --- > drivers/net/sfc/sfc_flow.c | 60 +++++++++++--------------------------- > drivers/net/sfc/sfc_flow.h | 1 - > drivers/net/sfc/sfc_mae.c | 39 +++++++++---------------- > 3 files changed, 30 insertions(+), 70 deletions(-) > > diff --git a/drivers/net/sfc/sfc_flow.c b/drivers/net/sfc/sfc_flow.c > index fe1f5ba55f..9e1b746d51 100644 > --- a/drivers/net/sfc/sfc_flow.c > +++ b/drivers/net/sfc/sfc_flow.c > @@ -1130,96 +1130,84 @@ sfc_flow_parse_pppoex(const struct rte_flow_item *item, > } > > static const struct sfc_flow_item sfc_flow_items[] = { > - { > - .type = RTE_FLOW_ITEM_TYPE_VOID, > + [RTE_FLOW_ITEM_TYPE_VOID] = { Doesn't it make these arrays sparse and potentially too big? I'd like to see mitigation of the question in the changeset description.