Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp4654771ybi; Mon, 15 Jul 2019 12:28:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqxm5hJU/DR3Ivc1TCfi4KPFmMzAzHXZYCE/VWY9f39IpYuu/1z2QtTVRVBq+n3c5Cm62ez9 X-Received: by 2002:a63:4c46:: with SMTP id m6mr29372882pgl.59.1563218880092; Mon, 15 Jul 2019 12:28:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563218880; cv=none; d=google.com; s=arc-20160816; b=dfKAw5Ywtqt5LlsHUtvY2wy6NcVxULxfVpNxW2v0fPvCpY4JNUrjsntDGkonfJfENu v9qhouB0QiAiMRutulo8RVP38XMhPNAviUEaO4k8by7GiTBCUKQcLSRVq1j1lJbUr1gB x/DOfNIOuhRbJRoBWgf1vUf1dkAS1ONH1DBwH1yJCnqzgFuttbAK7fOXsBGMxO5fBw5j H8OKw2k7+5FLzjpzqr4M9nt1qfznlvkLrWeHnztvJnrVzNAV9JevQYyLW3TNoBwOZdoq wu+sT7eyPBu6HLEWTdgb0VT1DehklMv5B9WEy05obEoE/cyx/jFdgKZtFrRdi6Fk5H7Y GVwQ== 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=7F+Rx8LNf0wBjAbBG8cbbgL6UUfScXRntxKBK6+mpR4=; b=zSWErbqBJsk+pZciaGbXo5y/GKnYPy4MWed9NOsqTa6/03XX0B0wHeeEENt7d7Yxkz qcA8OS+0/8q0QJNL2Dmny+az5BfM7q055SnIrtjr6Z752WyCtTzC+h2rAcQ26a8fKxE6 LojtMCqoknvkGA/0cUzoim3Bz4wsbrOFUKf7UzMYeiTkyfk4Dkb70Es7PBOjYbmym8dz tI0GDnTFZ9zvdYhzUTrcW82e2sV8/G9qWnRfEtjcz0M4b4aTqNeSo+npnTiHIRj8OQkq LPA/Og5YrOwnL95K7BFm5/RlNodlWkjz/d9UdtSwFyCZ4A+cC637ub3FchEyfBdSz6nk CBhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2018-07-02 header.b=KrfyfL7s; 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 g15si16018867plo.239.2019.07.15.12.27.43; Mon, 15 Jul 2019 12:28:00 -0700 (PDT) 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=KrfyfL7s; 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 S1730587AbfGOT1P (ORCPT + 99 others); Mon, 15 Jul 2019 15:27:15 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:49204 "EHLO aserp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730322AbfGOT1M (ORCPT ); Mon, 15 Jul 2019 15:27:12 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x6FJP3SU107276; Mon, 15 Jul 2019 19:26:01 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=7F+Rx8LNf0wBjAbBG8cbbgL6UUfScXRntxKBK6+mpR4=; b=KrfyfL7sYWL62GWK7TzzvUuYHknnkhhWMH3xvBbathLSj+tEwec4Z0DIVMs0HgDQ8P/Y k8JldnJhYWQUYgio0iS+Cnc84TCgLjeBOMwDEcex0SZiJSjGUX1fX799weN59qCbTCX4 aUGolZbxVU49RxUUT1bhUObTV06Eh9QQqw9JdmE/9z0Ap9e+QAKE3dlGjP53JVZYF5sA Hysb5fVjUhc+lK8BmxutyLyE60u/AWlCWExiuHxRobFWdHsuguJj0L1wi1DHuyOpyVbe c6bN3qsqSDmob7jxtQdhNYbuyRA1kJsalvQ+37pTvI/LlhjGcqSROKcu3Q/dnfMRe0n9 jg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2120.oracle.com with ESMTP id 2tq78pgecs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 15 Jul 2019 19:26:01 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x6FJMdSn056313; Mon, 15 Jul 2019 19:26:01 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserp3020.oracle.com with ESMTP id 2tq742prtj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 15 Jul 2019 19:26:01 +0000 Received: from abhmp0013.oracle.com (abhmp0013.oracle.com [141.146.116.19]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x6FJPrkx007773; Mon, 15 Jul 2019 19:25:53 GMT Received: from ol-bur-x5-4.us.oracle.com (/10.152.128.37) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 15 Jul 2019 12:25:52 -0700 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, tglx@linutronix.de, bp@alien8.de, hpa@zytor.com, x86@kernel.org, guohanjun@huawei.com, jglauber@marvell.com 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 v3 1/5] locking/qspinlock: Make arch_mcs_spin_unlock_contended more generic Date: Mon, 15 Jul 2019 15:25:32 -0400 Message-Id: <20190715192536.104548-2-alex.kogan@oracle.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190715192536.104548-1-alex.kogan@oracle.com> References: <20190715192536.104548-1-alex.kogan@oracle.com> X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9319 signatures=668688 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907150221 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9319 signatures=668688 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-1907150222 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 e14b32c69639..961781624638 100644 --- a/kernel/locking/qspinlock.c +++ b/kernel/locking/qspinlock.c @@ -558,7 +558,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)