From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752173AbcF0NFc (ORCPT ); Mon, 27 Jun 2016 09:05:32 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:33339 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751906AbcF0NEu (ORCPT ); Mon, 27 Jun 2016 09:04:50 -0400 Date: Mon, 27 Jun 2016 22:04:30 +0900 From: Sergey Senozhatsky To: Petr Mladek Cc: Sergey Senozhatsky , Sergey Senozhatsky , Andrew Morton , Tejun Heo , Jan Kara , Calvin Owens , linux-kernel@vger.kernel.org Subject: Re: [PATCH] printk: introduce should_ignore_loglevel() Message-ID: <20160627130430.GA566@swordfish> References: <20160623163302.761-1-sergey.senozhatsky@gmail.com> <20160624160533.GI29718@pathway.suse.cz> <20160625052237.GA580@swordfish> <20160627092645.GK29718@pathway.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160627092645.GK29718@pathway.suse.cz> User-Agent: Mutt/1.6.1 (2016-04-27) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On (06/27/16 11:26), Petr Mladek wrote: > On Sat 2016-06-25 14:22:37, Sergey Senozhatsky wrote: > > On (06/24/16 18:05), Petr Mladek wrote: > > [..] > > > > +static bool should_ignore_loglevel(int level) > > > > +{ > > > > + return (level >= console_loglevel && !ignore_loglevel); > > > > > > The patch looks fine. It is nice optimization. > > > > > > I was just quite confused by the name of this function. A function > > > called should_ignore_loglevel() should not return false when > > > ignore_loglevel variable is true. > > > > > > I would call it ignore_message() or ignore_message_on_console() or so. > > > > Hello Petr, you are right. > > > > I was thinking about > > > > s/should_ignore_loglevel/suppress_message/g > > or.... s/should_ignore_loglevel/suppress_message_by_level/g > > s/should_ignore_loglevel/suppress_message_printing/g > > > > suppress_message_printing() is probably fine. > > All variants look fine to me. After renaming, feel free to > add: > > Reviewed-by: Petr Mladek > thanks. > PS: The ignore_loglevel handling is a bit racy in some situations. > For example, uv_nmi_dump_state() or __handle_sysrq() set another > level, print some messages, and restore the original level. They > do not wait until all the printed messages appear on the console. > Also they do not synchronize against each other. > __handle_sysrq() also assumes that only cpu printk-s, so it does KERN_CONT printks in SMP mode. and there are billions of places that do things like this. as of deferred loglevel check, we probably can add "console_loglevel:3;" to 'struct printk_log' and `static struct cont', and keep there console_loglevel actual at the time the was appeneded to the log buffer. so then suppress_message_printing() will have one extra param bool suppress_message_printing(int leve, int cons_loglevel) { return (level >= cons_loglevel ...); } speaking of KERN_CONT, I've found one regression with async printk, and I think I now have some idea what's going on there, will post some-sort-of-a-patch today or tomorrow. > I am not sure if we have already discussed this. It is not critical > and it works well most of the time. I just want to make sure that > you know about it as you have more plans with the printk/console code. thanks, I'll put in on a list; not sure we discussed this either. -ss