From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754398AbdBNQSd (ORCPT ); Tue, 14 Feb 2017 11:18:33 -0500 Received: from bombadil.infradead.org ([65.50.211.133]:47507 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754173AbdBNQSS (ORCPT ); Tue, 14 Feb 2017 11:18:18 -0500 Date: Tue, 14 Feb 2017 17:18:09 +0100 From: Peter Zijlstra To: Sergey Senozhatsky Cc: Tony Lindgren , Petr Mladek , Steven Rostedt , Thomas Gleixner , linux-kernel@vger.kernel.org, Sergey Senozhatsky , "Rafael J. Wysocki" , linux-pm@vger.kernel.org Subject: Re: Regression in next with use printk_safe buffers in printk Message-ID: <20170214161809.GQ6500@twins.programming.kicks-ass.net> References: <20170213185956.GM3897@atomide.com> <20170214160140.GA401@tigerII.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170214160140.GA401@tigerII.localdomain> User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Feb 15, 2017 at 01:01:40AM +0900, Sergey Senozhatsky wrote: > > but I'm a bit confused by rt_b->rt_runtime_lock in this unsafe lock > scenario (so it's not ABBA, but ABAD) > > > lock(hrtimer_bases.lock); > > lock(&rt_b->rt_runtime_lock); > > lock(hrtimer_bases.lock); > > lock(tk_core); > > > > > > Chain exists of: > > > > tk_core --> &rt_b->rt_runtime_lock --> hrtimer_bases.lock > > > I'm lacking some knowledge here, sorry. where does the tk_core --> &rt_b->rt_runtime_lock > come from? rt_b->rt_runtime_lock is one of the scheduler locks, since we do printk() under tk_core, which does semaphore muck, which then includes the entire scheduler chain of locks.