Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp1863725ybv; Fri, 14 Feb 2020 07:18:48 -0800 (PST) X-Google-Smtp-Source: APXvYqznHvBX70gTgr4SRAIIONcfHXINc8Y6XhFr54HnKq6LudqfYMhZVvxY+lLH85Jy8WR+AnRu X-Received: by 2002:a9d:4541:: with SMTP id p1mr2705149oti.199.1581693528184; Fri, 14 Feb 2020 07:18:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581693528; cv=none; d=google.com; s=arc-20160816; b=BEEwvs9+tLS+yhHG66IuV8wxqkDmsrxfpSqUaErbRaUMOtcPqdaitjkiyafYq2apEl P9sr/j/sO7QtgCiysP/+MDJBDZx7ZH3h+/EHcF7KXd1WyxMtwpPxmGOstlQL8Y4J5jfX UHqQSZrK6lavq7cEnvexz06bGFKHr0VI/7Af18gfbi5XsPwG5CzFzJWQta60pNq0tKwk CXirw8tRjgxaKLgdJZXaRZz954bZ2yd2NRkZojdkbPk0IC3MVfgYdUVtvqRNsds43UdH +h7+wIB6fTKb0V+p6s4EyOvlBgAUSLLrJ+f6BcWRG4N7ExGdoybCjBr1QCO1f+vfaXE7 R91Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:references:in-reply-to:message-id:date :subject:cc:from; bh=ZZ9bfPHVoie1jqzoXWeIjnicd1hlWisyWQMxo+oQOb0=; b=RXVvZomv3Wa3IooeiYhvY7zeRv5II9cSQYcCwCnyn2vV3exSHvUduukzfbzKJmV2tU OELj+fR7U6TC3z/w+En7sz2KpyZs/Kyvhyi4z9v1Jup1ooLCknkhIzubV3aNjw9iTKUW GunDQmSWxfZQcjwQI7tCDhJutTzBpCaXHTlHBAD9H35Bxfz9LentBaK/+ZSDh+EUVijH 8Tnc71TPFrcJmTFcM2PjQo3WAhTf3bAkrvs6eNg8yltQdd3+HaSIvZGXxBTYjmv5SLPI BbQqEsZZv66GsGul66FLdRTQbFDO2pV4yZcxFXOsZe+PCsdbOm5snn/lCCzBp2HjqNUs XHiw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t7si2908904otl.133.2020.02.14.07.18.34; Fri, 14 Feb 2020 07:18:48 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729535AbgBNPR5 (ORCPT + 99 others); Fri, 14 Feb 2020 10:17:57 -0500 Received: from out30-132.freemail.mail.aliyun.com ([115.124.30.132]:58961 "EHLO out30-132.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729434AbgBNPR5 (ORCPT ); Fri, 14 Feb 2020 10:17:57 -0500 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R171e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01f04428;MF=alex.shi@linux.alibaba.com;NM=1;PH=DS;RN=5;SR=0;TI=SMTPD_---0TpyfkW2_1581693462; Received: from localhost(mailfrom:alex.shi@linux.alibaba.com fp:SMTPD_---0TpyfkW2_1581693462) by smtp.aliyun-inc.com(127.0.0.1); Fri, 14 Feb 2020 23:17:42 +0800 From: Alex Shi Cc: Thomas Gleixner , Davidlohr Bueso , Ingo Molnar , Will Deacon , linux-kernel@vger.kernel.org Subject: [PATCH 2/2] locking/rtmutex: optimize rt_mutex_cmpxchgs Date: Fri, 14 Feb 2020 23:17:19 +0800 Message-Id: <1581693439-33092-2-git-send-email-alex.shi@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1581693439-33092-1-git-send-email-alex.shi@linux.alibaba.com> References: <87c1cdbc-6af0-3f56-e986-b9df894fe4da@linux.alibaba.com> <1581693439-33092-1-git-send-email-alex.shi@linux.alibaba.com> To: unlisted-recipients:; (no To-header on input) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Checking l->owner first to skip time cost cmpxchgs. Suggested-by: Davidlohr Bueso Signed-off-by: Alex Shi Cc: Thomas Gleixner Cc: Davidlohr Bueso Cc: Ingo Molnar Cc: Will Deacon Cc: linux-kernel@vger.kernel.org --- kernel/locking/rtmutex.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c index 7ad22eade1cc..e8df466af8ab 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -141,8 +141,10 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock) * set up. */ #ifndef CONFIG_DEBUG_RT_MUTEXES -# define rt_mutex_cmpxchg_acquire(l,c,n) (cmpxchg_acquire(&l->owner, c, n) == c) -# define rt_mutex_cmpxchg_release(l,c,n) (cmpxchg_release(&l->owner, c, n) == c) +# define rt_mutex_cmpxchg_acquire(l, c, n) \ + (l->owner == c && cmpxchg_acquire(&l->owner, c, n) == c) +# define rt_mutex_cmpxchg_release(l, c, n) \ + (l->owner == c && cmpxchg_release(&l->owner, c, n) == c) /* * Callers must hold the ->wait_lock -- which is the whole purpose as we force -- 1.8.3.1