Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753915AbbLOOYy (ORCPT ); Tue, 15 Dec 2015 09:24:54 -0500 Received: from mail-ob0-f174.google.com ([209.85.214.174]:36859 "EHLO mail-ob0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751257AbbLOOYx (ORCPT ); Tue, 15 Dec 2015 09:24:53 -0500 From: Boqun Feng To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: Peter Zijlstra , Ingo Molnar , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Thomas Gleixner , Will Deacon , "Paul E. McKenney" , Waiman Long , Davidlohr Bueso , Boqun Feng Subject: [PATCH powerpc/next v6 0/4] atomics: powerpc: Implement relaxed/acquire/release variants Date: Tue, 15 Dec 2015 22:24:13 +0800 Message-Id: <1450189457-10589-1-git-send-email-boqun.feng@gmail.com> X-Mailer: git-send-email 2.6.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2492 Lines: 77 Hi all, This is v6 of the series. Link for v1: https://lkml.org/lkml/2015/8/27/798 Link for v2: https://lkml.org/lkml/2015/9/16/527 Link for v3: https://lkml.org/lkml/2015/10/12/368 Link for v4: https://lkml.org/lkml/2015/10/14/670 Link for v5: https://lkml.org/lkml/2015/10/26/141 Changes since v5: * rebase on the next branch of powerpc. * pull two fix and one testcase patches out, which are already sent separately * some clean up or code format fixing. Paul, Peter and Will, thank you for your comments and suggestions in the review of previous versions. From this version on, This series is against the next branch of powerpc tree, because most of the code touch arch/powerpc/*. Relaxed/acquire/release variants of atomic operations {add,sub}_return and {cmp,}xchg are introduced by commit: "atomics: add acquire/release/relaxed variants of some atomic operations" and {inc,dec}_return has been introduced by commit: "locking/asm-generic: Add _{relaxed|acquire|release}() variants for inc/dec atomics" By default, the generic code will implement a relaxed variant as a full ordered atomic operation and release/acquire a variant as a relaxed variant with a necessary general barrier before or after. On PPC, which has a weak memory order model, a relaxed variant can be implemented more lightweightly than a full ordered one. Further more, release and acquire variants can be implemented with arch-specific lightweight barriers. Therefore this patchset implements the relaxed/acquire/release variants based on PPC memory model and specific barriers. The patchset consists of 4 parts: 1. Allow architectures to define their own __atomic_op_*() helpers to build other variants based on relaxed. 2. Implement atomic{,64}_{add,sub,inc,dec}_return_* variants 3. Implement xchg_* and atomic{,64}_xchg_* variants 4. Implement cmpxchg_* atomic{,64}_cmpxchg_* variants This patchset is against: git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next commit 5f337e3e5b04b32793fd51adab438d46df99c933 and has been tested by 0day. I also have run build and boot tests of this in both guest(pseries) and host(powernv) environments. Looking forward to any suggestion, question and comment ;-) Regards, Boqun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/