Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp780357imm; Wed, 11 Jul 2018 10:49:23 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdH5or/QM6VEBbYAsN17poFsR5jOAl5LpLtH+ZrCDRrbwfUs8H3dvCabKwW0N9yE8IPBFJF X-Received: by 2002:a62:aa02:: with SMTP id e2-v6mr30820461pff.211.1531331363562; Wed, 11 Jul 2018 10:49:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531331363; cv=none; d=google.com; s=arc-20160816; b=wkta3JspIbhQ7umo4mqIX4eMea4E0KFsiCVzdKbr/Qp1wQubGDGC5NQdBsFI/c5XNv z8IByt1q5CmACP3kyzWzX/xzS0W77h1q+IEl86Qp/Y8xoi5HBQ23rp6Ay3Fk2weENJbP MtPtO6sSne/8YDmLzHTUP7OqJwJyJ/tedIGC+tvVN+WqKT0aldufknpD64OSXQoouMli Ewx6yH5jyWI3uJpIHhSGXCEqZJ3F/3DIhRhpbaKwtdF9i1HGpX2Ye12P7UxNfqMHCyo8 kCrD6K1SVBKr3P1+jTai37tGv/r7kFValOjT/PWIUiQRpGcqZ5ZmekdRZQ3wr7ds3xUg DMyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=/p/FujXAlVAfzl1DhropUH1JrlbwXQHd8p19l7aNhwA=; b=af/+zAk35e/xaukq0r7/EV9uOQds9itYWwRyVHZHMiUPPARMOWZdy5USArqqky1csQ 6XsCqmbx6Oc/4UNqYPxEtqKkrkzSzzUPgh+KF8oTF0WBgJrGQU/NM7Gvk1C3qicF1cEW Wzr6WFAYSAr+8/JXx4/SmlW9Wt0xMwmhjfErBhHydRoJLvh+Kixw9gMiSGMzWJDUMBcn nVT+eFVT4LOJjB1QNkdZj9zHdPhiciy5yixsaEpMKYOak+LmDLQyqS0j5UW9ivY1drQg wzDa2JzfriKD9I1t18iv80I1NhhZ9nJuzd81tbA6quqAuMxAdqoJIrMFWGGDVu4ID0eo CTJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b="SR7Vb/+n"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a4-v6si21193285pfk.253.2018.07.11.10.49.07; Wed, 11 Jul 2018 10:49:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b="SR7Vb/+n"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389163AbeGKPd0 (ORCPT + 99 others); Wed, 11 Jul 2018 11:33:26 -0400 Received: from mail-io0-f193.google.com ([209.85.223.193]:42192 "EHLO mail-io0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733203AbeGKPdZ (ORCPT ); Wed, 11 Jul 2018 11:33:25 -0400 Received: by mail-io0-f193.google.com with SMTP id r24-v6so23988380ioh.9 for ; Wed, 11 Jul 2018 08:28:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=/p/FujXAlVAfzl1DhropUH1JrlbwXQHd8p19l7aNhwA=; b=SR7Vb/+nkdIgaCeqwOIlS1o6f22+K3xAbPpdNIkAv7A8G5S4kLnZUoem1sbsna3v39 FELDmOna5eZTx6w8LGRJhiM0jJeM86T/o/pjRE2i2Ejg27G/BwCvjBzudY9xX5hzXRNm r0bgo+M1okNiMk12VL2z6k9dcdETmGe0EFG9M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=/p/FujXAlVAfzl1DhropUH1JrlbwXQHd8p19l7aNhwA=; b=qC7JOYWm3fYcjfcRTmzO45qBukyXmVUiof33iY57HDgaiwGdVbtWCUtq0lXRAk2raV 8Ohhcr49isXD2sjTA4ZEboGPVFD+HQ3t+WrGke3egmqrP3FTS1ecY2JioSw8SAlUgUS2 XUnSmoHl8+Wsv5yovxJNGIOlrRg+dVrzLA6Ap9l0lYZT74IqYwLWJNTo2mo+gUe3ihoZ 5Su+bsgDUAQGYx4zJ4/Bi7cOs99b4vXM9tUZ2Ke4IHuj83aT6TU6DpDe7IIx6AR+HiEr c/7npQZxnjGodCt8QO6Hm6EAcafYkM7ysSKyzv8V9jy0YjknQlk/AZOr2aujE2dWrPtd gL4g== X-Gm-Message-State: AOUpUlEYcAAFVJK18Giy5rrRKNZoHsuRIo8RIaqrGA1N/cmmjsTy8Axw c3Swaj0fGaV1t60rVXs0bH4fc3Da6xmHpUFAaboC/A== X-Received: by 2002:a6b:f418:: with SMTP id i24-v6mr25833518iog.34.1531322914446; Wed, 11 Jul 2018 08:28:34 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4f:e492:0:0:0:0:0 with HTTP; Wed, 11 Jul 2018 08:28:33 -0700 (PDT) X-Originating-IP: [2a02:168:5628:0:496f:7dc5:66d7:a057] In-Reply-To: References: <20180628090351.15581-1-hdegoede@redhat.com> <20180628090351.15581-3-hdegoede@redhat.com> <717e6337-e7a6-7a92-1c1b-8929a25696b5@suse.de> <20180711105255.32803a3c@gandalf.local.home> <7ec11c96-7dd5-ec12-548e-7c1fa9b883e8@suse.de> From: Daniel Vetter Date: Wed, 11 Jul 2018 17:28:33 +0200 X-Google-Sender-Auth: V0BQ30nUZ4pcOGAcMzAatxPt0Xk Message-ID: Subject: Re: [PATCH v5 2/3] fbcon: Call WARN_CONSOLE_UNLOCKED() where applicable To: Hans de Goede Cc: Thomas Zimmermann , Steven Rostedt , Petr Mladek , Linux Fbdev development list , Bartlomiej Zolnierkiewicz , Linux Kernel Mailing List , dri-devel , Sergey Senozhatsky Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 11, 2018 at 5:14 PM, Hans de Goede wrote: > Hi, > > On 11-07-18 17:07, Thomas Zimmermann wrote: >> >> Hi >> >> Am 11.07.2018 um 16:52 schrieb Steven Rostedt: >>> >>> >>> What if you make lockless_register_fb visible to fbcon, and then we can >>> have a macro: >> >> >> There are more of these macro invocations under drivers/tty/vt, which >> also mess up the log during debugging. > > > Hmm, so this option is already broken (in a way) then, my first reaction > to your mail was that we should just remove that option. But that seemed > a bit harsh to me so I've been working on a fix for the last 10 minutes > or so. > > But if it is already broken I'm tempted to just remove the option and > be done with it. We really need less cruft in the fbdev/fbcon code not > more. Please don't remove it, it makes debugging kms driver issues on initial modeset (which is usually run from framebuffer_register, while hodling the console_lock) impossible. -Daniel >> WARN_CONSOLE_UNLOCKED is already protected by an '#ifdef 1 ... #else >> ...' construct [1]. I thought about turning this into a config option. > > > Ah I noticed the #if but I did not notice that it was a "#if 1". > > If you want to fix lockless_register_fb it really should be replaced > with a runtime check, not a Kconfig option. This would require having > some lockless variable in the console code itself, which then gets > set by the fbdev code during init based on its lockless_register_fb > setting. > > But as said I think we should seriously consider just removing > lockless_register_fb. > > Regards, > > Hans > > > > > > > >> >> Best regards >> Thomas >> >> [1] >> >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/console.h#n203 >> >>> >>> #define WARN_FB_CONSOLE_UNLOCKED() \ >>> do { \ >>> if (unlikely(!lockless_register_fb)) \ >>> WARN_CONSOLE_UNLOCKED(); \ >>> } while (0) >>> >>> And use that instead? >>> >>> -- Steve >>> >>> >>>> Best regards >>>> Thomas >>>> >>>>> Acked-by: Steven Rostedt (VMware) >>>>> Reviewed-by: Daniel Vetter >>>>> Reviewed-by: Sergey Senozhatsky >>>>> Signed-off-by: Hans de Goede >>>>> --- >>>>> Changes in v3: >>>>> -New patch in v3 of this patchset >>>>> >>>>> Changes in v4: >>>>> -Keep the comments about which fbcon functions need locks in place >>>>> --- >>>>> drivers/video/fbdev/core/fbcon.c | 11 +++++++++++ >>>>> 1 file changed, 11 insertions(+) >>>>> >>>>> diff --git a/drivers/video/fbdev/core/fbcon.c >>>>> b/drivers/video/fbdev/core/fbcon.c >>>>> index c910e74d46ff..cd8d52a967aa 100644 >>>>> --- a/drivers/video/fbdev/core/fbcon.c >>>>> +++ b/drivers/video/fbdev/core/fbcon.c >>>>> @@ -828,6 +828,8 @@ static int set_con2fb_map(int unit, int newidx, int >>>>> user) >>>>> struct fb_info *oldinfo = NULL; >>>>> int found, err = 0; >>>>> + WARN_CONSOLE_UNLOCKED(); >>>>> + >>>>> if (oldidx == newidx) >>>>> return 0; >>>>> @@ -3044,6 +3046,8 @@ static int fbcon_fb_unbind(int idx) >>>>> { >>>>> int i, new_idx = -1, ret = 0; >>>>> + WARN_CONSOLE_UNLOCKED(); >>>>> + >>>>> if (!fbcon_has_console_bind) >>>>> return 0; >>>>> @@ -3094,6 +3098,8 @@ static int fbcon_fb_unregistered(struct fb_info >>>>> *info) >>>>> { >>>>> int i, idx; >>>>> + WARN_CONSOLE_UNLOCKED(); >>>>> + >>>>> idx = info->node; >>>>> for (i = first_fb_vc; i <= last_fb_vc; i++) { >>>>> if (con2fb_map[i] == idx) >>>>> @@ -3131,6 +3137,9 @@ static int fbcon_fb_unregistered(struct fb_info >>>>> *info) >>>>> static void fbcon_remap_all(int idx) >>>>> { >>>>> int i; >>>>> + >>>>> + WARN_CONSOLE_UNLOCKED(); >>>>> + >>>>> for (i = first_fb_vc; i <= last_fb_vc; i++) >>>>> set_con2fb_map(i, idx, 0); >>>>> @@ -3177,6 +3186,8 @@ static int fbcon_fb_registered(struct fb_info >>>>> *info) >>>>> { >>>>> int ret = 0, i, idx; >>>>> + WARN_CONSOLE_UNLOCKED(); >>>>> + >>>>> idx = info->node; >>>>> fbcon_select_primary(info); >>>>> >>>> >>>> >>> >> > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch