Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp6625917imu; Wed, 30 Jan 2019 19:15:12 -0800 (PST) X-Google-Smtp-Source: ALg8bN7Hz6da+Cwa5CbimSgafFEUlhpLpkIU7ZcVYlp7LBAhuaHUbd4Igk0hI3NIaFUzCOlXP6T8 X-Received: by 2002:a62:6303:: with SMTP id x3mr34012509pfb.110.1548904512638; Wed, 30 Jan 2019 19:15:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548904512; cv=none; d=google.com; s=arc-20160816; b=lODuteN9/KoVAqDvRdhw3/YoAhEDMe9H4U5sJFaw21EBYtPPN6/oqPqFo0QxM3aEq2 MAnTg+6AixPpNjcCnIO800RAS0rIgdqEry+Y/H9wSahIu+Nh6pgmmJR1jqbYJSZMfbW4 CBIvxtqkibjz1jBkaHPlApHWhhjHDabH3/Biu/dxO1bq3r8Cl4LOHwQhGyvzykuszhzW xSHnFOckXRsqipIYjeb7it4MftcE2ZwuAiTlDfzpsn4pAPIe5rTbKn7p2XFNBwoUnA00 773PKRJAe4OrGXDHk2vvL90sFpzCTTHqBd6J4Hwsz6nnIPW1je+xr7WBWlgSSJ+EU8NX x8wg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=ZplTQZzydafeBnPD4u24Dgisox98ztxk94cpluzKZc8=; b=O8OSIlmYXIaz0xSzKSvxnDgFRMEX8UN7yoYmfObIPLM3jUUgaDQjv8rg1T0th6+YfD CO57lVMvXJoouXRCrH5GfQV2bqj0c18VLjdeIB/15CjtVq/Y8Vi/RR1iz3nkv0DDeeFI nV5BB/pwmcN8QwUHDhVEg4qRGTnCWuJVMBDz9YbMKeKLqH0cz/EVIf3n9Okz/mMtJ3Jc vnJmZP+Lwrq7RPdZ9eCEWaJAHpb7NYeWE/bwPwl0B0Oa6nF/9BZsi4fAqY1HbmVN+isR QAWA57ipebwuKgR650HTiYf9/vaOEAHgJDOpRU6sZn4uwKx19dmhfzqOHeWdmq1hOZXa LYFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2018-07-02 header.b=h9BgMiMj; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p9si343839pll.63.2019.01.30.19.14.57; Wed, 30 Jan 2019 19:15:12 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2018-07-02 header.b=h9BgMiMj; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726906AbfAaDMx (ORCPT + 99 others); Wed, 30 Jan 2019 22:12:53 -0500 Received: from aserp2130.oracle.com ([141.146.126.79]:32964 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725535AbfAaDMx (ORCPT ); Wed, 30 Jan 2019 22:12:53 -0500 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id x0V346KH038858; Thu, 31 Jan 2019 03:12:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=corp-2018-07-02; bh=ZplTQZzydafeBnPD4u24Dgisox98ztxk94cpluzKZc8=; b=h9BgMiMj62/58rCk8HoDR4fSLSmqUCgwgBpYJPMT1U0Luqc0fB1krarFGfn4c/R6XeyH zwMkhd5kPg5qfJfHoFpr4AWLHzlhbVRuq877nGipTFMKKJpWL/pqAHKbG3UxVikCk2Em UBSs1blCyN1wwR0jPUnpCQTVgZARJ+ZHkq9ec+3yyPr8q5Wn2isRb+ilwDE5vMLU/wS8 DPaSapjLYYziRncp/GfOs3vqFGdMpyHguWgMvTwLxuOqbKEGGVeqPxjuVEx30TME8n2q 08Klpo7eK/chdjoFovj4XRT+MVcOp4Fbhb1GkvG36H2wQCQ3wASC0zSF90Mq3rsK3rrV /A== Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by aserp2130.oracle.com with ESMTP id 2q8d2eebcf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 31 Jan 2019 03:12:18 +0000 Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserv0021.oracle.com (8.14.4/8.14.4) with ESMTP id x0V3CIDd031689 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 31 Jan 2019 03:12:18 GMT Received: from abhmp0016.oracle.com (abhmp0016.oracle.com [141.146.116.22]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x0V3CHiG017729; Thu, 31 Jan 2019 03:12:17 GMT Received: from ol-bur-x5-4.us.oracle.com (/10.152.128.37) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 30 Jan 2019 19:12:17 -0800 From: Alex Kogan To: linux@armlinux.org.uk, peterz@infradead.org, mingo@redhat.com, will.deacon@arm.com, arnd@arndb.de, longman@redhat.com, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: steven.sistare@oracle.com, daniel.m.jordan@oracle.com, alex.kogan@oracle.com, dave.dice@oracle.com, rahul.x.yadav@oracle.com Subject: [PATCH 1/3] locking/qspinlock: Make arch_mcs_spin_unlock_contended more generic Date: Wed, 30 Jan 2019 22:01:33 -0500 Message-Id: <20190131030136.56999-2-alex.kogan@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190131030136.56999-1-alex.kogan@oracle.com> References: <20190131030136.56999-1-alex.kogan@oracle.com> X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9152 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901310023 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The arch_mcs_spin_unlock_contended macro should accept the value to be stored into the lock argument as another argument. This allows using the same macro in cases where the value to be stored is different from 1. Signed-off-by: Alex Kogan Reviewed-by: Steve Sistare --- arch/arm/include/asm/mcs_spinlock.h | 4 ++-- kernel/locking/mcs_spinlock.h | 6 +++--- kernel/locking/qspinlock.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm/include/asm/mcs_spinlock.h b/arch/arm/include/asm/mcs_spinlock.h index 529d2cf4d06f..ae6d763477f4 100644 --- a/arch/arm/include/asm/mcs_spinlock.h +++ b/arch/arm/include/asm/mcs_spinlock.h @@ -14,9 +14,9 @@ do { \ wfe(); \ } while (0) \ -#define arch_mcs_spin_unlock_contended(lock) \ +#define arch_mcs_spin_unlock_contended(lock, val) \ do { \ - smp_store_release(lock, 1); \ + smp_store_release(lock, (val)); \ dsb_sev(); \ } while (0) diff --git a/kernel/locking/mcs_spinlock.h b/kernel/locking/mcs_spinlock.h index 5e10153b4d3c..bc6d3244e1af 100644 --- a/kernel/locking/mcs_spinlock.h +++ b/kernel/locking/mcs_spinlock.h @@ -41,8 +41,8 @@ do { \ * operations in the critical section has been completed before * unlocking. */ -#define arch_mcs_spin_unlock_contended(l) \ - smp_store_release((l), 1) +#define arch_mcs_spin_unlock_contended(l, val) \ + smp_store_release((l), (val)) #endif /* @@ -115,7 +115,7 @@ void mcs_spin_unlock(struct mcs_spinlock **lock, struct mcs_spinlock *node) } /* Pass lock to next waiter. */ - arch_mcs_spin_unlock_contended(&next->locked); + arch_mcs_spin_unlock_contended(&next->locked, 1); } #endif /* __LINUX_MCS_SPINLOCK_H */ diff --git a/kernel/locking/qspinlock.c b/kernel/locking/qspinlock.c index 8a8c3c208c5e..fc88e9685bdf 100644 --- a/kernel/locking/qspinlock.c +++ b/kernel/locking/qspinlock.c @@ -545,7 +545,7 @@ void queued_spin_lock_slowpath(struct qspinlock *lock, u32 val) if (!next) next = smp_cond_load_relaxed(&node->next, (VAL)); - arch_mcs_spin_unlock_contended(&next->locked); + arch_mcs_spin_unlock_contended(&next->locked, 1); pv_kick_node(lock, next); release: -- 2.11.0 (Apple Git-81)