From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932315AbdCFTGQ (ORCPT ); Mon, 6 Mar 2017 14:06:16 -0500 Received: from mx1.redhat.com ([209.132.183.28]:56076 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753330AbdCFTFz (ORCPT ); Mon, 6 Mar 2017 14:05:55 -0500 From: Waiman Long To: Ingo Molnar , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, Davidlohr Bueso , Waiman Long Subject: [PATCH-tip v2 0/3] locking/rwsem: Minor twists to improve rwsem performance Date: Mon, 6 Mar 2017 14:04:40 -0500 Message-Id: <1488827083-30078-1-git-send-email-longman@redhat.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Mon, 06 Mar 2017 19:04:57 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org v1->v2: - Replace trylock with a more light-weight raw_spin_is_locked() call to reduce overhead. - Run fio test in addition to rwsem microbenchmark. This patch set introduces minor changes to the rwsem code path to provide minor performance improvement especially with short critical sections. Patch 1 checks wait_list without lock when spinners are present. Patch 2 moves down the rwsem_down_read_failed() function after the optimistic spinning section so that functions in that section can be used. Patch 3 undoes active read lock ASAP when either the spinners are present or the wait_lock isn't free. Waiman Long (3): locking/rwsem: Check wait_list without lock if spinner present locking/rwsem: relocate rwsem_down_read_failed() locking/rwsem: Stop active read lock ASAP kernel/locking/rwsem-xadd.c | 129 ++++++++++++++++++++++++++------------------ 1 file changed, 76 insertions(+), 53 deletions(-) -- 1.8.3.1