From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754777AbdCWMLK (ORCPT ); Thu, 23 Mar 2017 08:11:10 -0400 Received: from mx2.suse.de ([195.135.220.15]:36067 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751105AbdCWMLJ (ORCPT ); Thu, 23 Mar 2017 08:11:09 -0400 Date: Thu, 23 Mar 2017 13:11:06 +0100 From: Petr Mladek To: Sergey Senozhatsky Cc: Steven Rostedt , Andrew Morton , Linus Torvalds , Peter Zijlstra , "Rafael J . Wysocki" , linux-kernel@vger.kernel.org, Sergey Senozhatsky Subject: Re: [RFC][PATCH 2/4] printk: offload printing from wake_up_klogd_work_func() Message-ID: <20170323121106.GI4008@pathway.suse.cz> References: <20170306124554.828-1-sergey.senozhatsky@gmail.com> <20170306124554.828-3-sergey.senozhatsky@gmail.com> <20170317121944.GO3977@pathway.suse.cz> <20170318095738.GA398@jagdpanzerIV.localdomain> <20170320160928.GT3977@pathway.suse.cz> <20170323090042.GA376@jagdpanzerIV.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170323090042.GA376@jagdpanzerIV.localdomain> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu 2017-03-23 18:00:42, Sergey Senozhatsky wrote: > On (03/20/17 17:09), Petr Mladek wrote: > [..] > > > > BTW: wake_up_klogd_work does not need to be per-CPU as well. > > irq_work infrastructure heavily uses per-CPU variables. > > But a global struct irq_work is safe, see irq_work_claim(). > > so I have a patch that turns wake_up_klogd_work into a global variable, > out of curiosity, but I'm not entire sure about it. the sort of a problem > is that queued irq_works still go into a per-CPU run_lists. per-CPU > wake_up_klogd_work permits us to queue irq work on several CPUs so we > might have better chances to execute wake_up_klogd_work_func(), while > global wake_up_klogd_work will be only in one run_list. this can defer > wake_up_klogd_work processing until that particular single CPU handles > its interrupt and calls irq_work_run_list(). what do you think? Good question! I personally think that it should not cause a big harm but I am not completely sure. It might need some more testing. Let's postpone this change and do it alone in the future. Best Regards, Petr