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 4E75F44132; Sun, 2 Jun 2024 13:33:39 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 23BB340150; Sun, 2 Jun 2024 13:33:39 +0200 (CEST) Received: from mail.lysator.liu.se (mail.lysator.liu.se [130.236.254.3]) by mails.dpdk.org (Postfix) with ESMTP id AF6E940042 for ; Sun, 2 Jun 2024 13:33:37 +0200 (CEST) Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id 6327018E04 for ; Sun, 2 Jun 2024 13:33:37 +0200 (CEST) Received: by mail.lysator.liu.se (Postfix, from userid 1004) id 57C2C18D86; Sun, 2 Jun 2024 13:33:37 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on hermod.lysator.liu.se X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=ALL_TRUSTED,AWL, T_SCC_BODY_TEXT_LINE autolearn=disabled version=4.0.0 X-Spam-Score: -1.3 Received: from [192.168.1.59] (h-62-63-215-114.A163.priv.bahnhof.se [62.63.215.114]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id 7A53618D84; Sun, 2 Jun 2024 13:33:35 +0200 (CEST) Message-ID: <33500116-9294-46ff-bdd7-650c6a993b5a@lysator.liu.se> Date: Sun, 2 Jun 2024 13:33:35 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC v2] eal: provide option to use compiler memcpy instead of RTE To: Stephen Hemminger Cc: Bruce Richardson , =?UTF-8?Q?Mattias_R=C3=B6nnblom?= , dev@dpdk.org, =?UTF-8?Q?Morten_Br=C3=B8rup?= References: <20240527111151.188607-1-mattias.ronnblom@ericsson.com> <20240528074354.190779-1-mattias.ronnblom@ericsson.com> <738e376c-c5b6-44dc-ad51-00f40d2ea6b5@lysator.liu.se> <20240528075936.2110c31c@hermes.local> <20240531095050.7bae58b0@hermes.local> Content-Language: en-US From: =?UTF-8?Q?Mattias_R=C3=B6nnblom?= In-Reply-To: <20240531095050.7bae58b0@hermes.local> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV using ClamSMTP 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 2024-05-31 18:50, Stephen Hemminger wrote: > On Fri, 31 May 2024 07:19:41 +0200 > Mattias Rönnblom wrote: > >> On 2024-05-28 17:09, Bruce Richardson wrote: >>> On Tue, May 28, 2024 at 07:59:36AM -0700, Stephen Hemminger wrote: >>>> On Tue, 28 May 2024 10:19:15 +0200 >>>> Mattias Rönnblom wrote: >>>> >>>>>> >>>>> >>>>> I've tested this patch some with DSW micro benchmarks, and the result is >>>>> a 2.5% reduction of the DSW+testapp overhead with cc/libc memcpy. GCC 11.4. >>>>> >>>>> We've also run characteristic test suite of a large, real world app. >>>>> Here, we saw no effect. GCC 10.5. >>>>> >>>>> x86_64 in both cases (Skylake and Raptor Lake). >>>>> >>>>> Last time we did the same, there were a noticeable performance >>>>> degradation in both the above cases. >>>>> >>>>> This is not a lot of data points, but I think it we should consider >>>>> making the custom RTE memcpy() implementations optional in the next >>>>> release, and if no-one complains, remove the implementations in the next >>>>> release. >>>> >>>> Lets go farther. >>>> >>>> 1. Announce that rte_memcpy will be marked deprecated in 24.11 release >>>> >>>> 2. In 24.11 do a global replace of rte_memcpy on the tree. >>>> And mark rte_memcpy as deprecated. >>>> >>>> 3. In 25.11 it can go away. >>> >>> While I'd like us to be able to do so, I believe that to be premature. We >>> need to see where/if there are regressions first, and see about fixing >>> them. >>> >>> /Bruce >> >> Should I turn this RFC into a PATCH? >> >> Is use_cc_memcpy a good name for the configuration parameter? >> > > I did a slightly more direct test and found a couple of things: > 1. Ena driver is redefining memcpy as rte_memcpy, this should be removed and should have > been blocked during code review. Wouldn't that hack continue to work? Provided rte_memcpy() is a function, and the header is included prior to the memcpy redefinition. > 2. A couple of drivers are implicitly expecting simd vector routines to be available. > This works because rte_memcpy.h includes rte_vect.h. The fix is to have these > places include rte_vect.h > I noticed this as well. I'll add patches for those drivers.