Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759441AbbFBQOY (ORCPT ); Tue, 2 Jun 2015 12:14:24 -0400 Received: from mail-ig0-f182.google.com ([209.85.213.182]:35597 "EHLO mail-ig0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753814AbbFBQOQ (ORCPT ); Tue, 2 Jun 2015 12:14:16 -0400 MIME-Version: 1.0 In-Reply-To: References: <1432931068-4980-1-git-send-email-john.stultz@linaro.org> <1432931068-4980-4-git-send-email-john.stultz@linaro.org> <20150602103144.GB18714@midget.suse.cz> Date: Tue, 2 Jun 2015 09:14:15 -0700 Message-ID: Subject: Re: [RFC][PATCH 3/4] ntp: Use printk_deferred in leapsecond path From: John Stultz To: Jiri Kosina Cc: Jiri Bohac , lkml , Prarit Bhargava , Daniel Bristot de Oliveira , Richard Cochran , Jan Kara , Thomas Gleixner , Ingo Molnar , Shuah Khan Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1799 Lines: 46 On Tue, Jun 2, 2015 at 3:43 AM, Jiri Kosina wrote: > On Tue, 2 Jun 2015, Jiri Bohac wrote: > >> > Looking over the leapsecond code, I noticed the printk messages >> > reporting the leapsecond insertion in the second_overflow path >> > were not using the printk_deferred method. This was surprising >> > since the printk_deferred method was added in part to avoid >> > printk-ing while holding the timekeeping locks. >> > >> > See 6d9bcb621b0b (timekeeping: use printk_deferred when holding >> > timekeeping seqlock) for further rational. >> > >> > I can only guess that this omission was a git add -p oversight. >> >> second_overflow() is called from accumulate_nsecs_to_secs(). >> >> accumulate_nsecs_to_secs() is called from update_wall_time() >> - once directly >> - once via logarithmic_accumulation() >> Both calls are before write_seqcount_begin(&tk_core.seq). >> >> So it looks safe to use printk there. > > Couldn't we stuff a couple of > > !lockdep_is_held() > > assertions into printk() so that we don't have to keep rediscovering this > sort of problems over and over again? Yea. I was thinking if we could add something very early in printk before we disable lockdep where we lockdep_aquire/release a few of the locks we know printk might take, it would help close the gap on these sorts of call paths that surprise us. Lockdep is *such* a great tool, because it provides some confidence that changes don't cause locking regressions, so to have printk poke a hole in that confidence is frustrating. thanks -john -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/