On Wed, Jan 17, 2018 at 11:07:48AM +0100, Christian Borntraeger wrote: > > > On 01/17/2018 10:57 AM, Ming Lei wrote: > > Hi Jianchao, > > > > On Wed, Jan 17, 2018 at 04:09:11PM +0800, jianchao.wang wrote: > >> Hi ming > >> > >> Thanks for your kindly response. > >> > >> On 01/17/2018 02:22 PM, Ming Lei wrote: > >>> This warning can't be removed completely, for example, the CPU figured > >>> in blk_mq_hctx_next_cpu(hctx) can be put on again just after the > >>> following call returns and before __blk_mq_run_hw_queue() is scheduled > >>> to run. > >>> > >>> kblockd_mod_delayed_work_on(blk_mq_hctx_next_cpu(hctx), &hctx->run_work, msecs_to_jiffies(msecs)) > >> We could use cpu_active in __blk_mq_run_hw_queue() to narrow the window. > >> There is a big gap between cpu_online and cpu_active. rebind_workers is also between them. > > > > This warning is harmless, also you can't reproduce it without help of your > > special patch, I guess, :-) So the window shouldn't be a big deal. > > FWIW, every WARN_ON is problematic since there are people running with panic_on_warn. > If a condition can happen we should not use WARN_ON but something else. Agree, printk() should be fine, IMO. -- Ming