From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jia He Subject: Re: [PATCH] ring: guarantee ordering of cons/prod loading when doing enqueue/dequeue Date: Fri, 3 Nov 2017 10:55:40 +0800 Message-ID: References: <2601191342CEEE43887BDE71AB9772585FAAB570@IRSMSX103.ger.corp.intel.com> <3e580cd7-2854-d855-be9c-7c4ce06e3ed5@gmail.com> <20171020054319.GA4249@jerin> <20171023100617.GA17957@jerin> <20171025132642.GA13977@jerin> <20171031111433.GA21742@jerin> <69adfb00-4582-b362-0540-d1d9d6bcf6aa@gmail.com> <20171101190420.GA21407@jerin> <8bc4095d-301e-3e99-9644-27848d97e9bc@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Cc: "Ananyev, Konstantin" , "Zhao, Bing" , Olivier MATZ , "dev@dpdk.org" , "jia.he@hxt-semitech.com" , "jie2.liu@hxt-semitech.com" , "bing.zhao@hxt-semitech.com" , "Richardson, Bruce" , jianbo.liu@arm.com, hemant.agrawal@nxp.com To: Jerin Jacob Return-path: Received: from mail-pg0-f42.google.com (mail-pg0-f42.google.com [74.125.83.42]) by dpdk.org (Postfix) with ESMTP id 639741B670 for ; Fri, 3 Nov 2017 03:55:50 +0100 (CET) Received: by mail-pg0-f42.google.com with SMTP id b192so1316628pga.2 for ; Thu, 02 Nov 2017 19:55:50 -0700 (PDT) In-Reply-To: <8bc4095d-301e-3e99-9644-27848d97e9bc@gmail.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Jerin On 11/2/2017 4:57 PM, Jia He Wrote: > > Hi, Jerin > please see my performance test below > On 11/2/2017 3:04 AM, Jerin Jacob Wrote: > [...] >> Should it be like instead? >> >> +#else >> +        *old_head = __atomic_load_n(&r->cons.head, __ATOMIC_ACQUIRE); >> +        const uint32_t prod_tail = __atomic_load_n(&r->prod.tail, >> __ATOMIC_ACQUIRE); >> It would be nice to see how much overhead it gives.ie back to back >> __ATOMIC_ACQUIRE. > I can NOT test ring_perf_autotest in our server because of the > something wrong in PMU counter. > All the return value of rte_rdtsc is 0 with and without your provided > ko module. I am still > investigating the reason. > Hi Jerin As for the root cause of rte_rdtsc issue, it might be due to the pmu counter frequency is too low in our arm64 server("Amberwing" from qualcom) [586990.057779] arch_timer_get_cntfrq()=20000000 Only 20MHz instead of 100M/200MHz, and CNTFRQ_EL0 is not even writable in kernel space. Maybe the code in ring_perf_autotest needs to be changed? e.g.     printf("SC empty dequeue: %.2F\n",             (double)(sc_end-sc_start) / iterations);     printf("MC empty dequeue: %.2F\n",             (double)(mc_end-mc_start) / iterations); Otherwise it is always 0 if the time difference divides by iterations. -- Cheers, Jia