From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Date: Thu, 19 Jul 2018 10:16:00 +0000 Subject: [PATCH v3 1/2] console: Replace #if 0 with atomic var 'ignore_console_lock_warning' Message-Id: <20180719101601.25076-2-tzimmermann@suse.de> List-Id: References: <20180719101601.25076-1-tzimmermann@suse.de> In-Reply-To: <20180719101601.25076-1-tzimmermann@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: rostedt@goodmis.org, pmladek@suse.com, linux-fbdev@vger.kernel.org, sergey.senozhatsky@gmail.com, b.zolnierkie@samsung.com, dri-devel@lists.freedesktop.org, hdegoede@redhat.com, akpm@linux-foundation.org, sergey.senozhatsky.work@gmail.com Cc: Thomas Zimmermann The macro WARN_CONSOLE_UNLOCKED prints a warning when a thread enters the console's critical section without having acquired the console lock. The console lock can be ignored when debugging the console using printk, but this makes WARN_CONSOLE_UNLOCKED generate unnecessary warnings. The variable ignore_console_lock_warning temporarily disables WARN_CONSOLE_UNLOCKED. Developers interested in debugging the console's critical sections should increment it before entering the CS and decrement it after leaving the CS. Setting ignore_console_lock_warning is only for debugging. Regular operation should not manipulate it. Acknoledgements: This patch is based on an earlier version by Steven Rostedt. The use of atomic increment/decrement was suggested by Petr Mladek. Link: http://lkml.kernel.org/r/717e6337-e7a6-7a92-1c1b-8929a25696b5@suse.de Signed-off-by: Thomas Zimmermann --- include/linux/console.h | 14 +++++++++----- kernel/printk/printk.c | 3 +++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/include/linux/console.h b/include/linux/console.h index f59f3dbca65c..a3307bcab947 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -14,6 +14,7 @@ #ifndef _LINUX_CONSOLE_H_ #define _LINUX_CONSOLE_H_ 1 +#include #include struct vc_data; @@ -201,11 +202,14 @@ void vcs_make_sysfs(int index); void vcs_remove_sysfs(int index); /* Some debug stub to catch some of the obvious races in the VT code */ -#if 1 -#define WARN_CONSOLE_UNLOCKED() WARN_ON(!is_console_locked() && !oops_in_progress) -#else -#define WARN_CONSOLE_UNLOCKED() -#endif +#define WARN_CONSOLE_UNLOCKED() \ + WARN_ON(!atomic_read(&ignore_console_lock_warning) && \ + !is_console_locked() && !oops_in_progress) +/* + * Increment ignore_console_lock_warning if you need to quiet + * WARN_CONSOLE_UNLOCKED() for debugging purposes. + */ +extern atomic_t ignore_console_lock_warning; /* VESA Blanking Levels */ #define VESA_NO_BLANKING 0 diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 3f041e7cbfc9..7d32a86758cd 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -66,6 +66,9 @@ int console_printk[4] = { CONSOLE_LOGLEVEL_DEFAULT, /* default_console_loglevel */ }; +atomic_t ignore_console_lock_warning __read_mostly = ATOMIC_INIT(0); +EXPORT_SYMBOL(ignore_console_lock_warning); + /* * Low level drivers may need that to know if they can schedule in * their unblank() callback or not. So let's export it. -- 2.18.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v3 1/2] console: Replace #if 0 with atomic var 'ignore_console_lock_warning' Date: Thu, 19 Jul 2018 12:16:00 +0200 Message-ID: <20180719101601.25076-2-tzimmermann@suse.de> References: <20180719101601.25076-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 716466EC00 for ; Thu, 19 Jul 2018 10:16:06 +0000 (UTC) In-Reply-To: <20180719101601.25076-1-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: rostedt@goodmis.org, pmladek@suse.com, linux-fbdev@vger.kernel.org, sergey.senozhatsky@gmail.com, b.zolnierkie@samsung.com, dri-devel@lists.freedesktop.org, hdegoede@redhat.com, akpm@linux-foundation.org, sergey.senozhatsky.work@gmail.com Cc: Thomas Zimmermann List-Id: dri-devel@lists.freedesktop.org VGhlIG1hY3JvIFdBUk5fQ09OU09MRV9VTkxPQ0tFRCBwcmludHMgYSB3YXJuaW5nIHdoZW4gYSB0 aHJlYWQgZW50ZXJzCnRoZSBjb25zb2xlJ3MgY3JpdGljYWwgc2VjdGlvbiB3aXRob3V0IGhhdmlu ZyBhY3F1aXJlZCB0aGUgY29uc29sZQpsb2NrLiBUaGUgY29uc29sZSBsb2NrIGNhbiBiZSBpZ25v cmVkIHdoZW4gZGVidWdnaW5nIHRoZSBjb25zb2xlIHVzaW5nCnByaW50aywgYnV0IHRoaXMgbWFr ZXMgV0FSTl9DT05TT0xFX1VOTE9DS0VEIGdlbmVyYXRlIHVubmVjZXNzYXJ5Cndhcm5pbmdzLgoK VGhlIHZhcmlhYmxlIGlnbm9yZV9jb25zb2xlX2xvY2tfd2FybmluZyB0ZW1wb3JhcmlseSBkaXNh YmxlcwpXQVJOX0NPTlNPTEVfVU5MT0NLRUQuIERldmVsb3BlcnMgaW50ZXJlc3RlZCBpbiBkZWJ1 Z2dpbmcgdGhlIGNvbnNvbGUncwpjcml0aWNhbCBzZWN0aW9ucyBzaG91bGQgaW5jcmVtZW50IGl0 IGJlZm9yZSBlbnRlcmluZyB0aGUgQ1MgYW5kCmRlY3JlbWVudCBpdCBhZnRlciBsZWF2aW5nIHRo ZSBDUy4gU2V0dGluZyBpZ25vcmVfY29uc29sZV9sb2NrX3dhcm5pbmcKaXMgb25seSBmb3IgZGVi dWdnaW5nLiBSZWd1bGFyIG9wZXJhdGlvbiBzaG91bGQgbm90IG1hbmlwdWxhdGUgaXQuCgpBY2tu b2xlZGdlbWVudHM6IFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gYW4gZWFybGllciB2ZXJzaW9uIGJ5 IFN0ZXZlbgpSb3N0ZWR0LiBUaGUgdXNlIG9mIGF0b21pYyBpbmNyZW1lbnQvZGVjcmVtZW50IHdh cyBzdWdnZXN0ZWQgYnkgUGV0cgpNbGFkZWsuCgpMaW5rOiBodHRwOi8vbGttbC5rZXJuZWwub3Jn L3IvNzE3ZTYzMzctZTdhNi03YTkyLTFjMWItODkyOWEyNTY5NmI1QHN1c2UuZGUKU2lnbmVkLW9m Zi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+Ci0tLQogaW5jbHVk ZS9saW51eC9jb25zb2xlLmggfCAxNCArKysrKysrKystLS0tLQoga2VybmVsL3ByaW50ay9wcmlu dGsuYyAgfCAgMyArKysKIDIgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NvbnNvbGUuaCBiL2luY2x1ZGUv bGludXgvY29uc29sZS5oCmluZGV4IGY1OWYzZGJjYTY1Yy4uYTMzMDdiY2FiOTQ3IDEwMDY0NAot LS0gYS9pbmNsdWRlL2xpbnV4L2NvbnNvbGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2NvbnNvbGUu aApAQCAtMTQsNiArMTQsNyBAQAogI2lmbmRlZiBfTElOVVhfQ09OU09MRV9IXwogI2RlZmluZSBf TElOVVhfQ09OU09MRV9IXyAxCiAKKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CiAjaW5jbHVkZSA8 bGludXgvdHlwZXMuaD4KIAogc3RydWN0IHZjX2RhdGE7CkBAIC0yMDEsMTEgKzIwMiwxNCBAQCB2 b2lkIHZjc19tYWtlX3N5c2ZzKGludCBpbmRleCk7CiB2b2lkIHZjc19yZW1vdmVfc3lzZnMoaW50 IGluZGV4KTsKIAogLyogU29tZSBkZWJ1ZyBzdHViIHRvIGNhdGNoIHNvbWUgb2YgdGhlIG9idmlv dXMgcmFjZXMgaW4gdGhlIFZUIGNvZGUgKi8KLSNpZiAxCi0jZGVmaW5lIFdBUk5fQ09OU09MRV9V TkxPQ0tFRCgpCVdBUk5fT04oIWlzX2NvbnNvbGVfbG9ja2VkKCkgJiYgIW9vcHNfaW5fcHJvZ3Jl c3MpCi0jZWxzZQotI2RlZmluZSBXQVJOX0NPTlNPTEVfVU5MT0NLRUQoKQotI2VuZGlmCisjZGVm aW5lIFdBUk5fQ09OU09MRV9VTkxPQ0tFRCgpCQkJCQkJXAorCVdBUk5fT04oIWF0b21pY19yZWFk KCZpZ25vcmVfY29uc29sZV9sb2NrX3dhcm5pbmcpICYmCQlcCisJCSFpc19jb25zb2xlX2xvY2tl ZCgpICYmICFvb3BzX2luX3Byb2dyZXNzKQorLyoKKyAqIEluY3JlbWVudCBpZ25vcmVfY29uc29s ZV9sb2NrX3dhcm5pbmcgaWYgeW91IG5lZWQgdG8gcXVpZXQKKyAqIFdBUk5fQ09OU09MRV9VTkxP Q0tFRCgpIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCisgKi8KK2V4dGVybiBhdG9taWNfdCBpZ25v cmVfY29uc29sZV9sb2NrX3dhcm5pbmc7CiAKIC8qIFZFU0EgQmxhbmtpbmcgTGV2ZWxzICovCiAj ZGVmaW5lIFZFU0FfTk9fQkxBTktJTkcgICAgICAgIDAKZGlmZiAtLWdpdCBhL2tlcm5lbC9wcmlu dGsvcHJpbnRrLmMgYi9rZXJuZWwvcHJpbnRrL3ByaW50ay5jCmluZGV4IDNmMDQxZTdjYmZjOS4u N2QzMmE4Njc1OGNkIDEwMDY0NAotLS0gYS9rZXJuZWwvcHJpbnRrL3ByaW50ay5jCisrKyBiL2tl cm5lbC9wcmludGsvcHJpbnRrLmMKQEAgLTY2LDYgKzY2LDkgQEAgaW50IGNvbnNvbGVfcHJpbnRr WzRdID0gewogCUNPTlNPTEVfTE9HTEVWRUxfREVGQVVMVCwJLyogZGVmYXVsdF9jb25zb2xlX2xv Z2xldmVsICovCiB9OwogCithdG9taWNfdCBpZ25vcmVfY29uc29sZV9sb2NrX3dhcm5pbmcgX19y ZWFkX21vc3RseSA9IEFUT01JQ19JTklUKDApOworRVhQT1JUX1NZTUJPTChpZ25vcmVfY29uc29s ZV9sb2NrX3dhcm5pbmcpOworCiAvKgogICogTG93IGxldmVsIGRyaXZlcnMgbWF5IG5lZWQgdGhh dCB0byBrbm93IGlmIHRoZXkgY2FuIHNjaGVkdWxlIGluCiAgKiB0aGVpciB1bmJsYW5rKCkgY2Fs bGJhY2sgb3Igbm90LiBTbyBsZXQncyBleHBvcnQgaXQuCi0tIAoyLjE4LjAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=