Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp926898ybt; Fri, 26 Jun 2020 15:17:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyzrWQKims0MOfxSwMSHedIvdbBISB2EDq2jM0nlm6+L6VNZjsLpFZhkEFguDk2hJuT4hsE X-Received: by 2002:a17:906:c1c3:: with SMTP id bw3mr3047675ejb.8.1593209868933; Fri, 26 Jun 2020 15:17:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593209868; cv=none; d=google.com; s=arc-20160816; b=hubstii8RnzEAoUoAsxUSVAfNt0mDhVqGnnIMxbgCgD2vzLcMvg3/IhujTQsIYwrs3 Skg4D+4HqYA/atcWsdihwA0HNNGVHQsDNNmL4xnyAqPSWVzUZxHl5U3EmdlI1ytLpPhx bReaKAbXNPvcDLhmsNFdUSlN43ANJPuFr7pOgCgsf8cZVV+I5XuMlRvkrwLuY5VZo/+k sWWM0o0fF3OLaWb9pVyt+i3/fiR3ii6w7L3K6Y8B9TSL02E29ougMD+plKeSVIyw59rz lY19KuyAppfGDBLQBLoqmI03zUElrAOo80BnB9CEXTkGNlD4qHPXkmlK0Tr7K1x7iUR7 FoNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date; bh=NA6oqJWrMNO3YBuCnJ2TgXjUXlZevLMcjt6v5EJkNdc=; b=E8HWCF7ufB+ivTkE4UGC61jfs+4Wqj0xOiwtIPSwWAMsQrqoAt0PgRsPDursEij0dr Or1TFY+0nyb5ZihhI//oJotCxSNEwf4Il/AaMryunyJ63VsjV6iVuRxDYvQg4vQUS6ia 2nbMht09keJwtIgz7lmRQG00QMBruRnspTmrLObkDzKjUIz71Nov4wSqXgUDCSZOTLOb 1UEl0cPzf1wHmloqUa7eFY5YpZP2M7/PVVFRkouquvNCfMQDxB2kYR6dUjmLNaEq3uBD khPXfYWVToxQPh2j9BHj6f0yEry1nGAiWTJ9RQSpFincHB/SGe5+ezOFdtpGNtKupaFH Ehyg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i18si1110067edr.67.2020.06.26.15.17.23; Fri, 26 Jun 2020 15:17:48 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725991AbgFZWPC (ORCPT + 99 others); Fri, 26 Jun 2020 18:15:02 -0400 Received: from mail.kernel.org ([198.145.29.99]:49274 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725971AbgFZWPC (ORCPT ); Fri, 26 Jun 2020 18:15:02 -0400 Received: from oasis.local.home (cpe-66-24-58-225.stny.res.rr.com [66.24.58.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3F9BE20663; Fri, 26 Jun 2020 22:14:57 +0000 (UTC) Date: Fri, 26 Jun 2020 18:14:55 -0400 From: Steven Rostedt To: Alexei Starovoitov Cc: Nicolas Boichat , LKML , Ingo Molnar , Andrew Morton , Kees Cook , Jason Gunthorpe , Daniel Vetter , Peter Zijlstra , Vinod Koul , Andy Shevchenko , Alexey Dobriyan , Tiezhu Yang , Thomas Gleixner , "Guilherme G . Piccoli" , Will Deacon , Douglas Anderson , Guenter Roeck , bpf@vger.kernel.org Subject: Re: [PATCH] kernel/trace: Add TRACING_ALLOW_PRINTK config option Message-ID: <20200626181455.155912d9@oasis.local.home> In-Reply-To: <20200625035913.z4setdowrgt4sqpd@ast-mbp.dhcp.thefacebook.com> References: <20200624084524.259560-1-drinkcat@chromium.org> <20200624120408.12c8fa0d@oasis.local.home> <20200625035913.z4setdowrgt4sqpd@ast-mbp.dhcp.thefacebook.com> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 24 Jun 2020 20:59:13 -0700 Alexei Starovoitov wrote: > > > > > > Nack. I nack your nack ;-) > > > The message is bogus. It's used in production kernels. > > > bpf_trace_printk() calls it. > > > > Interesting. BTW, the same information (trace_printk is for debugging > > only) is repeated all over the place, including where bpf_trace_printk > > is documented: > > https://elixir.bootlin.com/linux/latest/source/include/linux/kernel.h#L757 > > https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/bpf.h#L706 > > https://elixir.bootlin.com/linux/latest/source/kernel/trace/trace.c#L3157 > > > > Steven added that warning (2184db46e425c ("tracing: Print nasty banner > > when trace_printk() is in use")), so maybe he can confirm if it's > > still relevant. > > The banner is nasty and it's actively causing harm. And it's doing exactly what it was intended on doing! > Every few month I have to explain to users that it's absolulte ok to > ignore that banner. Nothing bad is happening with the kernel. > The kernel is still perfectly safe for production use. > It's not a debug kernel. > > What bpf_trace_printk() doc is saying that it's not recommended to use > this helper for production bpf programs. There are better alternatives. > It is absolutely fine to use bpf_trace_printk() to debug production and > experimental bpf programs on production servers, android phones and > everywhere else. Now I do have an answer for you that I believe is a great compromise. There's something you can call (and even call it from a module). It's called "trace_array_vprintk()". But has one caveat, and that is, you can not write to the main top level trace buffer with it (I have patches for the next merge window to enforce that). And that's what I've been trying to avoid trace_printk() from doing, as that's what it does by default. It writes to /sys/kernel/tracing/trace. Now what you can do, is have bpf create a /sys/kernel/tracing/instances/bpf_trace/ instance, and use trace_array_printk(), to print into that, and you will never have to see that warning again! It shows up in your own tracefs/instances/bpf_trace/trace file! If you need more details, let me know, and I can give you all you need to know to create you very own trace instance (that can enable events, kprobe events, uprobe events, function tracing, and soon function graph tracing). And the bonus, you get trace_array_vprintk() and no more complaining. :-) :-) :-) -- Steve