Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1688553pxa; Thu, 20 Aug 2020 18:40:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzgZVFMcR8eDbCOQ99yegxNfmMBRzMEwVm8B5KnWT2G1YMztPNegUPQCecCHkXwch9p4eiW X-Received: by 2002:a05:6402:c12:: with SMTP id co18mr527319edb.297.1597974037773; Thu, 20 Aug 2020 18:40:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597974037; cv=none; d=google.com; s=arc-20160816; b=DWbeVB8ApNgbcL43xi+z9MMJpyd9DYj3VTb2YB5OXKniFn+3FNi3ovavFsLRhzxDw2 fzS9pn6ii955CILfsvIZ2ROgizsOQHMwXcbPtijGw4M40t2C0d3JGz0tbP1uxTumcmWW vlAsk/PZ4yFjYgbKLubwxpGlgMG0xMjJ8kylm3V6ZqXSmVkz6IojHu1UcYNSOq7/sNXf mO/rvS27i3YE8yrjN1aLukMQjqthl8BlSAWAQtPiCG0Fx4WkDuqRgv+x7SvW1X4GhpGV Y2Jnr/13DFs8flVKV57TLHHWU56rHQpg2IQ96F8jmcHguDoVrhf5yCfEtjNlUJ58G+ZO bqew== 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 :in-reply-to:references:mime-version:dkim-signature; bh=mYhfQVGQv2L9AAT3zv6RHMzgR14goIa2TqteKXtO4h8=; b=RleLpoi79nKFi47Cc3zSutScfXZDqvjfECo7lmq14tHnJbTCfNNd8GAyUQce4W3wud 4RWQSLzyngJ7FlO0oBfXrcNLQpkkKuxrOluviqEvkswl6IKEWeUg44Kwj28uYPs/GgEw tYSzyOFodqDpvJHunDaM7GGIQ5EZb6DzvWTFK62e/Rt9UTKpiEzz9DWtzaJvOXNsEXzp 4loqmLkOvgl5xcsTwemu3/RxiItthMJBwjPFg2xzHrD49keAYl2x2LGAk8qTcxfc0k78 yX/cuc99V+49COjMlor1l9PCzM1SO0k6Cjt0Ta4kUbB2XNML0Z4imlTUhNPErQSGzXhD eL+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=l9tUm6Zx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x36si253066ede.105.2020.08.20.18.40.11; Thu, 20 Aug 2020 18:40:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=l9tUm6Zx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726870AbgHUBjg (ORCPT + 99 others); Thu, 20 Aug 2020 21:39:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726819AbgHUBjd (ORCPT ); Thu, 20 Aug 2020 21:39:33 -0400 Received: from mail-vk1-xa43.google.com (mail-vk1-xa43.google.com [IPv6:2607:f8b0:4864:20::a43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E2235C061386 for ; Thu, 20 Aug 2020 18:39:32 -0700 (PDT) Received: by mail-vk1-xa43.google.com with SMTP id x142so100120vke.0 for ; Thu, 20 Aug 2020 18:39:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=mYhfQVGQv2L9AAT3zv6RHMzgR14goIa2TqteKXtO4h8=; b=l9tUm6ZxQ1aEm0XHA/GfgsZB3oFioaAFFJ1boYEsC8BOPyrxF+wxlxx/W9UNWgQQcu KvMW3NbUeZ3qwPdp3kHHW74HKcjNVYLlXOsNoU1kSK+cgIdcEi0Us2Ht9Q/yN3P2oeh9 RtCNWnfmcQFN68wxrVR0DM8Mp3ePfsnEXgbSI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=mYhfQVGQv2L9AAT3zv6RHMzgR14goIa2TqteKXtO4h8=; b=Klu8+UKge6g7AaKw7Gco4/IKa8FEExKhpbsx1/tsHbAs1PSYWSl+di7IgwzRQQBAn+ +TQ+Z/GJ1lw8S+sjqiU6vL6Hdwk4wjadKYEs/738+8TM85k3isaCDj78rKcBVJtppg9Z ibWpk30ISyyaJ+tb5k9ERKLRuIkdGuuUaX/mgwYR3mbzNBtO+Caz4MyL5KSSBjEXi9J6 o+x21b71p9lQNydZmpuzu61TIUS9nGsVLPXCsdAIiCQagVMOoCvKUhSQ2ODj1on8/8n1 fquv8JU7OOLVJfrmLLAmMNzZDrTcCJMbNoYHUBTprRfRtX7l1E2VDxCxpgaF6ltnNzWm FO9A== X-Gm-Message-State: AOAM5337RXm+Dy26IJ3Hog+auAfrIFRKbJK9kb0wjFbzQecRHdbWLDiM gkjYq1UWWiqEXaNq9Nj5DIJG8Jf3+0bRhQ31tlqxMPXIRyc= X-Received: by 2002:a1f:9bc6:: with SMTP id d189mr426867vke.54.1597973970647; Thu, 20 Aug 2020 18:39:30 -0700 (PDT) MIME-Version: 1.0 References: <20200820170951.v4.1.Ia54fe801f246a0b0aee36fb1f3bfb0922a8842b0@changeid> <20200820170951.v4.3.I066d89f39023956c47fb0a42edf196b3950ffbf7@changeid> <20200820102347.15d2f610@oasis.local.home> <20200820203601.4f70bf98@oasis.local.home> In-Reply-To: <20200820203601.4f70bf98@oasis.local.home> From: Nicolas Boichat Date: Fri, 21 Aug 2020 09:39:19 +0800 Message-ID: Subject: Re: [PATCH v4 3/3] media: atomisp: Only use trace_printk if allowed To: Steven Rostedt Cc: Mauro Carvalho Chehab , Greg Kroah-Hartman , Andy Shevchenko , Sakari Ailus , devel@driverdev.osuosl.org, lkml , Linux Media Mailing List , Peter Zijlstra , Thomas Gleixner , Josh Poimboeuf , Douglas Anderson , Guenter Roeck 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 Fri, Aug 21, 2020 at 8:36 AM Steven Rostedt wrote: > > On Fri, 21 Aug 2020 08:13:00 +0800 > Nicolas Boichat wrote: > > > On Thu, Aug 20, 2020 at 10:23 PM Steven Rostedt wrote: > > > > > > On Thu, 20 Aug 2020 17:14:12 +0800 > > > Nicolas Boichat wrote: > > > > > > > Technically, we could only initialize the trace_printk buffers > > > > when the print env is switched, to avoid the build error and > > > > unconditional boot-time warning, but I assume this printing > > > > framework will eventually get removed when the driver moves out > > > > of staging? > > > > > > Perhaps this should be converting into a trace event. Look at what bpf > > > did for their bpf_trace_printk(). > > > > > > The more I think about it, the less I like this series. > > > > To make it clear, the primary goal of this series is to get rid of > > trace_printk sprinkled in the kernel by making sure some randconfig > > builds fail. Since my v2, there already has been one more added (the > > one that this patch removes), so I'd like to land 2/3 ASAP to prevent > > even more from being added. > > > > Looking at your reply on 1/3, I think we are aligned on that goal? Is > > there some other approach you'd recommend? > > > > Now, I'm not pretending my fixes are the best possible ones, but I > > would much rather have the burden of converting to trace events on the > > respective driver maintainers. (btw is there a short > > documentation/tutorial that I could link to in these patches, to help > > developers understand what is the recommended way now?) > > > > I like the goal, but I guess I never articulated the problem I have > with the methodology. > > trace_printk() is meant to be a debugging tool. Something that people > can and do sprinkle all over the kernel to help them find a bug in > areas that are called quite often (where printk() is way too slow). > > The last thing I want them to deal with is adding a trace_printk() with > their distro's config (or a config from someone that triggered the bug) > only to have the build to fail, because they also need to add a config > value. > > I add to the Cc a few developers I know that use trace_printk() in this > fashion. I'd like to hear their view on having to add a config option > to make trace_printk work before they test a config that is sent to > them. Gotcha, thanks. I have also used trace_printk in the past, as uncommitted changes (and understand the usefulness ,-)). And in Chrome OS team here, developers have also raised this concern: how do we make the developer flow convenient so that we can add trace_printk to our code for debugging, without having to flip back that config option, and _yet_ make sure that no trace_printk ever makes it into our production kernels. We have creative ways of making that work (portage USE flags and stuff). But I'm not sure about other flows, and your concern is totally valid... Some other approaches/ideas: 1. Filter all lkml messages that contain trace_printk. Already found 1 instance, and I can easily reply to those with a semi-canned answer, if I remember to check that filter regularly (not sustainable in the long run...). 2. Integration into some kernel test robot? (I will not roll my own for this ,-)) It may be a bit difficult as some debug config options do enable trace_printk, and that's ok. 3. In Chromium OS, I can add a unit test (i.e. something outside of the normal kernel build system), but that'll only catch regressions downstream (or when we happen to backport patches). Down the line, #3 catches what I care about the most (Chromium OS issues: we had production kernels for a few days/weeks showing that splat on boot), but it'd be nice to have something upstream that benefits everyone. Thanks, > > -- Steve