From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jia He Subject: [PATCH v6] guarantee load/load order in enqueue and dequeue Date: Fri, 10 Nov 2017 03:30:41 +0000 Message-ID: <1510284642-7442-1-git-send-email-hejianet@gmail.com> References: <1510278669-8489-1-git-send-email-hejianet@gmail.com> Cc: konstantin.ananyev@intel.com, bruce.richardson@intel.com, jianbo.liu@arm.com, hemant.agrawal@nxp.com, Jia He To: jerin.jacob@caviumnetworks.com, dev@dpdk.org, olivier.matz@6wind.com Return-path: Received: from mail-pg0-f67.google.com (mail-pg0-f67.google.com [74.125.83.67]) by dpdk.org (Postfix) with ESMTP id 359611B236 for ; Fri, 10 Nov 2017 04:31:05 +0100 (CET) Received: by mail-pg0-f67.google.com with SMTP id s11so963543pgc.5 for ; Thu, 09 Nov 2017 19:31:04 -0800 (PST) In-Reply-To: <1510278669-8489-1-git-send-email-hejianet@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" From: Jia He We watched a rte panic of mbuf_autotest in our qualcomm arm64 server (Amberwing) due to a possible race condition. To fix this race condition, rmb() is needed to add between the 2 loads. Already fuctionally tested on the machines as follows: - on X86 - on arm64 --- Changelog V6: improve the text description and fix the checkpatch warnings V5: split it into 2 patchset due to the milestone concerns, this is the 1st one V4: split into small patches V3: arch specific implementation for enqueue/dequeue barrier V2: let users choose whether using load_acquire/store_release V1: rte_smp_rmb() between 2 loads Jia He (1): ring: guarantee load/load order in enqueue and dequeue lib/librte_ring/rte_ring.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) -- 2.7.4