From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932256AbcCHKUq (ORCPT ); Tue, 8 Mar 2016 05:20:46 -0500 Received: from mail-pf0-f193.google.com ([209.85.192.193]:33732 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753468AbcCHKUc (ORCPT ); Tue, 8 Mar 2016 05:20:32 -0500 Date: Tue, 8 Mar 2016 19:21:52 +0900 From: Sergey Senozhatsky To: Tejun Heo Cc: Sergey Senozhatsky , Jan Kara , Sergey Senozhatsky , Tetsuo Handa , akpm@linux-foundation.org, jack@suse.com, pmladek@suse.com, linux-kernel@vger.kernel.org Subject: Re: [RFC][PATCH v2 1/2] printk: Make printk() completely async Message-ID: <20160308102152.GB457@swordfish> References: <201603061618.GED43232.MtOQOFSLOFHJFV@I-love.SAKURA.ne.jp> <20160306093530.GA26055@swordfish> <201603062006.IJD17667.OOQFLtMVHOFSJF@I-love.SAKURA.ne.jp> <20160306132703.GA927@swordfish> <20160307082230.GB5201@quack.suse.cz> <20160307101233.GA10690@swordfish> <20160307105248.GF5201@quack.suse.cz> <20160307121625.GG5201@quack.suse.cz> <20160307151047.GA578@swordfish> <20160307154936.GB7065@htj.duckdns.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160307154936.GB7065@htj.duckdns.org> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Tejun, On (03/07/16 10:49), Tejun Heo wrote: > On Tue, Mar 08, 2016 at 12:10:47AM +0900, Sergey Senozhatsky wrote: > > A new version. Switched to [printk] kthread. > > There are some benefits to using a percpu workqueue with CPU_INTENSIVE > set or an unbound workqueue. It'd need WQ_RESCUER so it'd still > create a dedicated thread which is used under heavy memory pressure > but workqueue will usaully give you local (cpu or node) worker. One > reason to use kthread directly tho is minimizing the amount of > dependency which is pretty important for printk. If we decide to use > kthread instead of workqueue, let's please do it for the right reason. thanks. I'd personally prefer to go with the "less dependency" option -- a dedicated kthread, I think. mostly for the sake of simplicity. I agree with the point that console_unlock() has unpredictable execution time, and in general case we would have a busy kworker (or sleeping in console_lock() or doing cond_resched()) and an idle extra WQ_RESCUER kthread, with activation rules that don't depend on printk. printk with dedicated printk-kthread seems easier to control. how does it sound? -ss