Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp1371156ybe; Fri, 6 Sep 2019 16:52:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqxUCC3QzAT731BsEi9dUV3+7WmAG4vq3xzLejLRO1RvbE2LAbanFdCzdbIkAHmWv67KNwPf X-Received: by 2002:a17:90a:ad98:: with SMTP id s24mr9921019pjq.36.1567813930230; Fri, 06 Sep 2019 16:52:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567813930; cv=none; d=google.com; s=arc-20160816; b=XT5kVrYmHLT3ST3T95qaM77eW/epAGnFbv9z0qf8Jfmwu8OwiFgdU9q9Z8uHr8Ij4k HO831SEYjWXxKWQpxvXtTKZ/yF3RVgZfasA955tXCk4TCWi78PZ4VBzdpVnVYAk71T6a ADrhSJyfw5+qI3fjDKz2El0aFy/E+8a3nQhh5AaywNLqk1bfj6YcRIUQ1RXtCZ/CHWDZ J7UTAWyuQt5rLi/jr/dGU02WWRqNWeJt9vWsodqTAK1HzuNdkdt9X55zbCh670RHwKsu 0hyRzr27Hp+QIBJ8iWUbk8lap4r0KcY3yU4sMWxNpOqXP98y+ORPgU+Y8G7j3GCy4rvS 6huA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=peXzu7cyZAonDSML5otyeKEgwl5QShmzeuiQQvGMBwE=; b=KHkpbrdwJ4YUoaA0w7GYTouOPz1zcTbCunCHAfmllblV+psibGrxurHZcq4RQGgdpY Hxww4G9GR0d8ZcbQsX82SNCfA1BohOyEWFMT6qbfmwHojKE526ugtcUF1XbKzWjW3q7k /EjUEF0TuiJrIlrd3LleaIX6vj2E7e8Ca1yPz5M/HbMjyaGK5/7MO91vIYLaYHoWmMl/ +ySLuWXKpKzeSoL1scfwlnU0cUEGBm1qkEobKGEqhlmI0mXphB70nGzzfkhztwUqlOTS Bo/dtt8QD1FAOc8xyJKNcER2UIV1F5Vvem3AR3khg1Nfho+FSGPD3EddqCnL2q5zEEHV BZIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2019-08-05 header.b=kjR3U9gO; 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 3si6150024plu.15.2019.09.06.16.51.55; Fri, 06 Sep 2019 16:52:10 -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-2019-08-05 header.b=kjR3U9gO; 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 S2405517AbfIFOfP (ORCPT + 99 others); Fri, 6 Sep 2019 10:35:15 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:40722 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731943AbfIFOfP (ORCPT ); Fri, 6 Sep 2019 10:35:15 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x86EYClt062427; Fri, 6 Sep 2019 14:34:17 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 : mime-version : content-transfer-encoding; s=corp-2019-08-05; bh=peXzu7cyZAonDSML5otyeKEgwl5QShmzeuiQQvGMBwE=; b=kjR3U9gOh9RbYvyqyHSPVgPCbi7DfpdvCKkxoY7iStF8GJbnzPtL5ca0svsGC8b845t+ Idjwc/5/dZIeRgvNDFuNQFPN1MtFA4CH7CKOSaUOKDEzRgQ+trRQPu9nR1J+MLLmh5nk /GofPeUJmIOTyUuSoN7DPUE65hJgvtLuqZKvOvqzB5Flo5xfDJDD/fHF+KeYYZFbz+de 93lNqWTBF8CRimudoWS4bYHRg3k0f+auVhkH8sAi6gwwrmswyqgYSoJlMU27YtxXWj99 ys96VvA94VSA/Qe0vKP85sJM5LPXEMvdqMcDIrzaWLWL6P7yZRPjMuPeey3sAn9c3Q4h 4Q== Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by userp2120.oracle.com with ESMTP id 2uus6qg1rq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 06 Sep 2019 14:34:17 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x86EY2gb097666; Fri, 6 Sep 2019 14:34:17 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userp3020.oracle.com with ESMTP id 2uum4h4r5s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 06 Sep 2019 14:34:16 +0000 Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x86EWrIn027221; Fri, 6 Sep 2019 14:32:53 GMT Received: from neelam.us.oracle.com (/10.152.128.16) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 06 Sep 2019 07:32:53 -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 v4 1/5] locking/qspinlock: Rename arch_mcs_spin_unlock_contended to arch_mcs_pass_lock and make it more generic Date: Fri, 6 Sep 2019 10:25:37 -0400 Message-Id: <20190906142541.34061-2-alex.kogan@oracle.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190906142541.34061-1-alex.kogan@oracle.com> References: <20190906142541.34061-1-alex.kogan@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9372 signatures=668685 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-1906280000 definitions=main-1909060153 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9372 signatures=668685 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-1906280000 definitions=main-1909060154 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The new 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 when passing the lock 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..f3f9efdcd2ca 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_pass_lock(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..84327ca21650 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_pass_lock(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_pass_lock(&next->locked, 1); } #endif /* __LINUX_MCS_SPINLOCK_H */ diff --git a/kernel/locking/qspinlock.c b/kernel/locking/qspinlock.c index 2473f10c6956..c3dfcb689400 100644 --- a/kernel/locking/qspinlock.c +++ b/kernel/locking/qspinlock.c @@ -549,7 +549,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_pass_lock(&next->locked, 1); pv_kick_node(lock, next); release: -- 2.11.0 (Apple Git-81)