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 EF7F4A0547; Mon, 24 May 2021 10:49:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 713604003E; Mon, 24 May 2021 10:49:33 +0200 (CEST) Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) by mails.dpdk.org (Postfix) with ESMTP id D873F4003C for ; Mon, 24 May 2021 10:49:32 +0200 (CEST) Received: by mail-ej1-f48.google.com with SMTP id f18so10405246ejq.10 for ; Mon, 24 May 2021 01:49:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=HZhlWg18ubx3vFZZNhrpNVzYWZkTt6gnFTS8RmD6k6M=; b=jQDRbHgqTDXZ2TwOF6M8nfwKRCsEZWOORNGmoC40QaXqrxn8uTfuK/hhPgy5CMMAQn C55hBnJ9p0XFYeXa+NL2TRmeQLz+H6JNLAQmOY+nn2vM35Ro82v3D4xXk/Ks6mH31Bvy /Zteq7qtPE/es3JHXQbM2VjolNK90oFIX31DnPimS5iPMzTlvNvM6+CbsaMhFwrb5fs1 5IvbrLD7L/dCWjIEx3uSvdDixPDlyg5G/W2kTbgRNfzb5wsmbKC28BQsBga0sOrnPohd iRRKgATLkW05968GUYqsywvUX5QvQjW6x+OgWIqSTUm7SxaoiGQAzQAoSm37ROJu4UQu 8abA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=HZhlWg18ubx3vFZZNhrpNVzYWZkTt6gnFTS8RmD6k6M=; b=KqolH85jLlo1DizH7IQeI2jMfA9dF/pvsNbp7zE16u2Kt5DZzeW5y36UjD13iCy8Nx FtXd65H7HzZD2IhEPE8plz8SbPrYbZU3Sk5gBYF5nk3VM/im3Ux269gTkaGp67Y/Jh8G Q1Mcr7f075cLHstR1WClv5HydTUb8nRLs7jfNc6TOGMFPaxU+973/wDcqABcLnGAvQLh OYdT2dhx1DDZafOk+w/3QXrzbr/+H8MaxpdrgsfFQMALcQ/BqipYfwOxkCX8g63XQxRJ HbHeBw6RL2xjN6wIbbQg/TXXer1yMk2HDg8eeednZ0lLje36ANjGlQ5sGjJMPEAzvJ8S 7l2g== X-Gm-Message-State: AOAM531NiSxl3hcfe2Zbekez/wpliArAC48W2CbdFl8KPu1k1aDJRPYv wEe+0lu0Y87T35D8PzzR5rHqp12oyWweX4yER1OMhwnDpd3OTJ68 X-Google-Smtp-Source: ABdhPJx7chlQow0+ezQMxZIz7CW270Zp9Zq5ZJe1rwGui5U0GaB3kYiyf1NFTlfSndf+jGXdvMuH4FBG2aDfuhUhBdU= X-Received: by 2002:a17:906:1997:: with SMTP id g23mr22585577ejd.168.1621846172408; Mon, 24 May 2021 01:49:32 -0700 (PDT) MIME-Version: 1.0 From: Manish Sharma Date: Mon, 24 May 2021 14:19:21 +0530 Message-ID: To: dev@dpdk.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [dpdk-dev] rte_memcpy 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 Sender: "dev" I am looking at the source for rte_memcpy (this is a discussion only for x64-64) For one of the cases, when aligned correctly, it uses /** * Copy 64 bytes from one location to another, * locations should not overlap. */ static __rte_always_inline void rte_mov64(uint8_t *dst, const uint8_t *src) { __m512i zmm0; zmm0 = _mm512_loadu_si512((const void *)src); _mm512_storeu_si512((void *)dst, zmm0); } I had some questions about this: 1. What I dont see is any use of x86 fence(rmb,wmb) instructions. Is that not required in this case and if not, why isnt it needed? 2. Are the mm512_loadu_si512 and _mm512_storeu_si512 non temporal? 3. Why isn't the code using stream variants, _mm512_stream_load_si512 and friends? 4. Do the _mm512_stream_load_si512 need fence instructions? TIA, Manish