From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D04FBC4338F for ; Tue, 10 Aug 2021 09:37:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id BA32761076 for ; Tue, 10 Aug 2021 09:37:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239193AbhHJJhf (ORCPT ); Tue, 10 Aug 2021 05:37:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51874 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229447AbhHJJhe (ORCPT ); Tue, 10 Aug 2021 05:37:34 -0400 Received: from mail-pj1-x102e.google.com (mail-pj1-x102e.google.com [IPv6:2607:f8b0:4864:20::102e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A9EAAC0613D3 for ; Tue, 10 Aug 2021 02:37:12 -0700 (PDT) Received: by mail-pj1-x102e.google.com with SMTP id pj14-20020a17090b4f4eb029017786cf98f9so4422600pjb.2 for ; Tue, 10 Aug 2021 02:37:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=1Yr15xQvfPLBcizpYjWCLJ6EZ81n3gfhy5YO2ARrcAM=; b=fQevwuQRRKpb8Tj+B339RveKG4yf93jjcGw/baNTvnPDdvw+PfgUlSIib/8M4c/tlB qNT9RnKi67EiY88UAQl87D6uEPGAv9R9aL0xxm2S9ohOIE7Ta1gEJuOONglRydLIYPE1 gE/LkVaJ5KqlKFvmucJSLzi2SlJRRKG+kYOe0hVobfULo0mOvS7ylviCyaiy6dTiDRPt hS0KKzmzAlw7+kIxhYJMfHho6iny+007sVYuGWfinyZC1Zf4K9xGlMC2R7T+NHJeHil5 672O4nzmrfMmzRvMdJniTjJbTKK/hyisJsWmqRhZ9Hf6qDFrOeMr4BWk48iw+7vg1F1X YQcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=1Yr15xQvfPLBcizpYjWCLJ6EZ81n3gfhy5YO2ARrcAM=; b=m7wzgPxN70kivqtnizwdbiPAZO7n7eY3ltAXvUw48p/bpBi/fxQHrxNjvGlUcLrh8V 06/Djrn+8pWP/vhKT3KkoyT5NgSQpKoSa896HriWMpewRlR6ovX+tGq6kIqVlHmRMxOG fCDRMUV//mBwQJFoa2iSUenzDdXDsyH++jwLmK+nxpvfQFwoztEDKF66o2J2hiI2aoJM +TA6MJUQPJpHLs/mfBvymdsCwlA1ltASNE0jw7hddCZs+vlYsvSjjLuo7PTxS5lbFe/i FzoONCRuNgnPoTRE042BpkxAzvDE/G3J3lt9ek/bgGF5VccUSGB49u8E4A+Ul65YIvsZ Rywg== X-Gm-Message-State: AOAM530DgLfRHMeebnleetsFiYUM0rB7ETbrLDO9miQ4eX8Rr+Ma4gPk i2CROc1YQq6WIpNPvRM3eT0= X-Google-Smtp-Source: ABdhPJzIsNB1TmeTtt2ixisFb6DOib379NfBgaVJVfPwikjWT1RCUp83f7lEOkAlN1B6V9O7V3zj6w== X-Received: by 2002:a63:c14a:: with SMTP id p10mr168379pgi.311.1628588232226; Tue, 10 Aug 2021 02:37:12 -0700 (PDT) Received: from [192.168.1.22] (amarseille-551-1-7-65.w92-145.abo.wanadoo.fr. [92.145.152.65]) by smtp.gmail.com with ESMTPSA id r10sm22568343pff.7.2021.08.10.02.37.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 10 Aug 2021 02:37:11 -0700 (PDT) Subject: Re: [RFC PATCH net-next 2/4] net: dsa: remove the "dsa_to_port in a loop" antipattern from the core To: Vladimir Oltean , netdev@vger.kernel.org, Jakub Kicinski , "David S. Miller" Cc: Andrew Lunn , Vivien Didelot , Vladimir Oltean , Kurt Kanzenbach , Woojung Huh , UNGLinuxDriver@microchip.com, Sean Wang , Landen Chao , DENG Qingfang , Matthias Brugger , Claudiu Manoil , Alexandre Belloni , George McCollister References: <20210809190320.1058373-1-vladimir.oltean@nxp.com> <20210809190320.1058373-3-vladimir.oltean@nxp.com> From: Florian Fainelli Message-ID: <30cef704-7703-7e91-6f00-7a92f678a916@gmail.com> Date: Tue, 10 Aug 2021 02:37:05 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: <20210809190320.1058373-3-vladimir.oltean@nxp.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On 8/9/2021 12:03 PM, Vladimir Oltean wrote: > Ever since Vivien's conversion of the ds->ports array into a dst->ports > list, and the introduction of dsa_to_port, iterations through the ports > of a switch became quadratic whenever dsa_to_port was needed. > > dsa_to_port can either be called directly, or indirectly through the > dsa_is_{user,cpu,dsa,unused}_port helpers. > > Introduce a basic switch port iterator macro, dsa_switch_for_each_port, > that works with the iterator variable being a struct dsa_port *dp > directly, and not an int i. It is an expensive variable to go from i to > dp, but cheap to go from dp to i. > > This macro iterates through the entire ds->dst->ports list and filters > by the ports belonging just to the switch provided as argument. > > While at it, provide some more flavors of that macro which filter for > specific types of ports: at the moment just user ports and CPU ports. > > Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli -- Florian