Received: by 10.213.65.68 with SMTP id h4csp328969imn; Mon, 26 Mar 2018 23:08:37 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+mFNvK0CAS0NvS/bHwfXchyj2RswjiAk1WKZl315EGgQ/jgiNsbQQVV+6JNq7J9Dh9b7RO X-Received: by 10.99.4.214 with SMTP id 205mr2593796pge.375.1522130916945; Mon, 26 Mar 2018 23:08:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522130916; cv=none; d=google.com; s=arc-20160816; b=k16BbMxnaOTttff653makpgQoy6aTKfGe9qrS+9La2CgpAcoZ6oWXKpqg2L1PTXw6w s+c2Uodpri7kUwtfSwgbbDqQHHly6pd3NdSAFObPmguni3949j1YdzbeqifnTHkmW77D dNzblALW9L86v12P4v0f4vO0XZ26Si4F1Ml9g+lEYfVvvFTPR331WoIHK6UGfMzUkujp Ksk2QfatSkdrVoi+wZVB9W/pvKU7OxITHyriksZA1aoV16YsNqLmKE7P1+yliXGcOw+B Rdp+sRxgQWTMNJdj/OlsEe5DKOMRBhiLKw6x1iCQpnnO/jnq4oOVVJpq/OSIM3/OJLlj bWUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=bJLhGXp4EZDXUy4xha/4sx8evsZxIZ80I+3kx65SuE0=; b=ync6XfyFe5D04bQoazwwL6aZ+iTym+Ms7iVfatCZ63P+9PN8puAmgcSHvLCLr9tUzp mPuXjIYwaz6ypvXQ9KU7CgsJGywKFaHjy43o1TdCmG59phhC8qFuKNIgT1LrCdKAnCLt VGnv8hQaJkYeTVEG1VjcwpwQCARaUQNCqP4mbgpAbgU6l+JtVcJyt9HYi9HR5aHbEm3X JW18W9e6xw1bq9D+oyoj5gnFSrCfNvWxXPXYZ5MVkg9ptmJEntgUinyHdo476NGVUqkb 9H/oqgNQB1MTFtLzMjI8Ez4nv2RzbMIdrPpNRuRPOWY5nACnvAH/58UVgiw/nyneSBaP nGfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=qIg5Qkf1; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b18si466352pfl.100.2018.03.26.23.08.22; Mon, 26 Mar 2018 23:08:36 -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=fail header.i=@gmail.com header.s=20161025 header.b=qIg5Qkf1; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751981AbeC0GHB (ORCPT + 99 others); Tue, 27 Mar 2018 02:07:01 -0400 Received: from mail-wr0-f194.google.com ([209.85.128.194]:44223 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751152AbeC0GG7 (ORCPT ); Tue, 27 Mar 2018 02:06:59 -0400 Received: by mail-wr0-f194.google.com with SMTP id u46so21067919wrc.11 for ; Mon, 26 Mar 2018 23:06:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=bJLhGXp4EZDXUy4xha/4sx8evsZxIZ80I+3kx65SuE0=; b=qIg5Qkf1cjBHA/CRTJciA0Smp6HGKvHHRsFnzZ3Ppa5JLStumbRNgD56tzWD6PtvP5 5+2pdcsoc2+gg0/A8IKbRbYaIsfI/bvdVGuU/eUW50a0jafVpSrAkGCmahkwTRMinip2 2Dcvw3RAmOKKjQfQgXNzXdrLRHyVA8sMS+4vAp/OFFBXIsbEG59PN0ghOfkJo2CfRkO9 w8n3x7cRbB6el+nw1uPRIRIJMbvyDzlLwTgY9+ZX6pB1xq0fEkw+b57J2mtNU7d+wd8N fo+pwVDznPl1aKbe57llsoe4TZXLyA5W+l896G2m0Lkw6uAwdbFVZyUoyPXkA3SjwSOM T81g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=bJLhGXp4EZDXUy4xha/4sx8evsZxIZ80I+3kx65SuE0=; b=GE+iDbycM1fRbUz58l3tQBQ0JF85xFZNTHCYFttcBJYICAHTDM4Ckq2nKxSti7O6Xe slV2VLdgSONtxYiGhwzUptNGwOVXCBSr+IJU+Uu99mnznziRLZHDor4M4waf/ioSPBV/ aKz2Cgac0hJPWelF+FGQeCc2z3KcyM5rOO9B5gNe7pmCC5JVVW7H8wFrjcKrLdDbSK5/ 4z9eVtaqQh83gCCSEuXSwOp7jyTolPqrllnYQ48A+FNSUY2pcAjMTDbDfzkAEreT8bjv xJ1xb6t/0AYvPyVQfd9a0d8E0ZKbnJcGH3SZWXHb8Ri8Qy6M8gSttEWP975rYAzKCHIQ hvyg== X-Gm-Message-State: AElRT7GroAV56ag/WQ56LPPVgwHGZR8PzldT41F3Uk8zjviUs2r50k8K uChYR6MLSW2++0JrW8fOh9A= X-Received: by 10.223.227.11 with SMTP id b11mr1069210wrj.197.1522130818372; Mon, 26 Mar 2018 23:06:58 -0700 (PDT) Received: from gmail.com (2E8B0CD5.catv.pool.telekom.hu. [46.139.12.213]) by smtp.gmail.com with ESMTPSA id h20sm274877wrf.65.2018.03.26.23.06.57 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 26 Mar 2018 23:06:57 -0700 (PDT) Date: Tue, 27 Mar 2018 08:06:55 +0200 From: Ingo Molnar To: Waiman Long Cc: Ingo Molnar , Peter Zijlstra , linux-kernel@vger.kernel.org, Thomas Gleixner Subject: Re: [PATCH v2] locking/rwsem: Add DEBUG_RWSEMS to look for lock/unlock mismatches Message-ID: <20180327060655.25zjgqlgbfsp6b3p@gmail.com> References: <1522091848-18426-1-git-send-email-longman@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1522091848-18426-1-git-send-email-longman@redhat.com> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Waiman Long wrote: > For a rwsem, locking can either be exclusive or shared. The corresponding > exclusive or shared unlock must be used. Otherwise, the protected data > structures may get corrupted or the lock may be in an inconsistent state. > > In order to detect such anomaly, a new configuration option DEBUG_RWSEMS > is added which can be enabled to look for such mismatches and print > warnings that that happens. > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index 64155e3..0958192 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -1075,6 +1075,13 @@ config DEBUG_WW_MUTEX_SLOWPATH > even a debug kernel. If you are a driver writer, enable it. If > you are a distro, do not. > > +config DEBUG_RWSEMS > + bool "RW Semaphore debugging: basic checks" > + depends on DEBUG_KERNEL && RWSEM_SPIN_ON_OWNER > + help > + This feature allows mismatched rw semaphore locks and unlocks > + to be detected and reported. > + Makes sense - but this should also be integrated into the rest of lock debugging Kconfig hierarchy similar to DEBUG_MUTEXES: i.e. DEBUG_LOCK_ALLOC, PROVE_LOCKING, etc. should select this new lock debugging option as well. People generally are not supposed to know and configure the finer details, CONFIG_LOCK_DEBUGGING=y is a one-stop-shop in this regard. Thanks, Ingo