Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp3319714ybd; Tue, 25 Jun 2019 00:08:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqz0HKeIN/AXWjG2+WE+kH0OCWC3iCc4ZKsdBKKWajXXcxUbFuemPDhbSD1SF6iKFulRpHVY X-Received: by 2002:a63:130c:: with SMTP id i12mr2127507pgl.316.1561446524519; Tue, 25 Jun 2019 00:08:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561446524; cv=none; d=google.com; s=arc-20160816; b=0KrSNLr8O5pU3GFTsjQKbhRfIYrfcZJfgXKaF/V7nDFkWKpjcScucsLPVJjO9JYssz uIrXS+GyhWG3fpFUZO7n0XVn7a3fTQXZT8IAGJsu/gc6YnhHLtFQ0dZbS/gEoHP3iBI5 tDMowLURsac0YQSSJR+5/JdgT+SnF2FauUycmY0zns8eJOlKWf8Hm1pYRBK3sdpM/WXj LLbk/eKYurzQYRA/LG6pvZ1mN4/D4AilC2otFihhRE5Yc5KX2Sie32Aa+Sakld+Nnwn8 DMSd+6zW1XuhlgN1dk4dVJkYHDaCFY2vi/+8ihVbUO6sJhhyBLyoEDLMVvHe7ux9xPTR Lijg== 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 :dkim-signature; bh=/w382t/5YAfN1mYB0oz8HWM/i+3V98Xf5nwbwUBY9Jw=; b=X6ygL2okfn4RQMw+UvybtAPYveqNvoTH771RcLNjVmLEqemYbb2Sh9fVzv9AzPTNCt KPs4R8DaeTlJc3+RexE544SbqP+H3Cy6rHQdSoZtla8b0pbX93osE2dVsz4OOzekvXHU 4MqZauTSQWb/FZMGwYMPnSrBjSdi4izmsEqpA1IHmm8z0tyT+iaXToyOoBEvdQUgPQo6 Kepm8j+NQou9vdK06h6ZqXOYmDr5jmBlgPTPYNjroNCbUDy+9zdSOJO2gXrHI5S5fcfg 05ZnwengvcHCAyEPbjMylqp1mlfzqgL7RugtYc0Y3Hqe2/V2+4iG/fdMGltFp3ZCj6nn pn4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=RGtoeTPM; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d5si2047523pju.62.2019.06.25.00.08.28; Tue, 25 Jun 2019 00:08:44 -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=pass header.i=@kernel.org header.s=default header.b=RGtoeTPM; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727521AbfFYFAK (ORCPT + 99 others); Tue, 25 Jun 2019 01:00:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:53866 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726804AbfFYFAK (ORCPT ); Tue, 25 Jun 2019 01:00:10 -0400 Received: from devnote2 (NE2965lan1.rev.em-net.ne.jp [210.141.244.193]) (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 A644420659; Tue, 25 Jun 2019 05:00:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1561438809; bh=aB5r1ZagktSRmLc89A+Xb2Jth9eFmW+RiLkyQLLqbGE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=RGtoeTPMzumtf379vXk/ggzjUgrxyuZLm14CBA2BnvoaW0xQjSIuDEF9Lpdg1SPbF xr5+KebdKFCqNrbn44IZCApBNQdAM4oPbaxN8QN65Of2WQ1TCot820YyXUvCb768ne aBXWEA2r2e/1ogrri6+mXy3WMS34NGhyw+kY7lj8= Date: Tue, 25 Jun 2019 14:00:04 +0900 From: Masami Hiramatsu To: Frank Rowand Cc: Steven Rostedt , Rob Herring , Tom Zanussi , Ingo Molnar , Namhyung Kim , Jiri Olsa , Arnaldo Carvalho de Melo , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: Re: [RFC PATCH 00/11] tracing: of: Boot time tracing using devicetree Message-Id: <20190625140004.a74443238596b297a558a66f@kernel.org> In-Reply-To: References: <156113387975.28344.16009584175308192243.stgit@devnote2> <20190624115223.db1e53549a15c6548bfa1fa1@kernel.org> X-Mailer: Sylpheed 3.5.1 (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 Hi Frank, On Mon, 24 Jun 2019 15:31:07 -0700 Frank Rowand wrote: > >>> Currently, kernel support boot-time tracing using kernel command-line > >>> parameters. But that is very limited because of limited expressions > >>> and limited length of command line. Recently, useful features like > >>> histogram, synthetic events, etc. are being added to ftrace, but it is > >>> clear that we can not expand command-line options to support these > >>> features. > >> > >> "it is clear that we can not expand command-line options" needs a fuller > >> explanation. And maybe further exploration. > > > > Indeed. As an example of tracing settings in the first mail, even for simple > > use-case, the trace command is long and complicated. I think it is hard to > > express that as 1-liner kernel command line. But devicetree looks very good > > for expressing structured data. That is great and I like it :) > > But you could extend the command line paradigm to meet your needs. But the kernel command line is a command line. Would you mean encoding the structured setting in binary format with base64 and pass it? :( > >> Devicetree is NOT for configuration information. This has been discussed > >> over and over again in mail lists, at various conferences, and was also an > >> entire session at plumbers a few years ago: > >> > >> https://elinux.org/Device_tree_future#Linux_Plumbers_2016_Device_Tree_Track > > > > Thanks, I'll check that. I found following discussion in etherpad log, https://elinux.org/Device_tree_plumbers_2016_etherpad ---- If you have data that the kernel does not have a good way to get, that's OK to put into DT. Operating points are OK - but should still be structured well. ---- This sounds like if it is structured well, and there are no other way, we will be able to use DT as a channel. > >> > >> There is one part of device tree that does allow non-hardware description, > >> which is the "chosen" node which is provided to allow communication between > >> the bootloader and the kernel. > > > > Ah, "chosen" will be suit for me :) > > No. This is not communicating boot loader information. Hmm, it's a kind of communication with the operator of the boot loader, since there is an admin or developer behind it. I think the comminication is to communicate with that human. Then if they intend to trace boot process, that is a kind of communication. [...] > >>> - Can we use devicetree for configuring kernel dynamically? > >> > >> No. Sorry. > >> > >> My understanding of this proposal is that it is intended to better > >> support boot time kernel and driver debugging. As an alternate > >> implementation, could you compile the ftrace configuration information > >> directly into a kernel data structure? It seems like it would not be > >> very difficult to populate the data structure data via a few macros. > > > > No, that is not what I intended. My intention was to trace boot up > > process "without recompiling kernel", but with a structured data. > > That is debugging. Or if you want to be pedantic, a complex performance > measurement of the boot process (more than holding a stopwatch in your > hand). Yeah, that's right. > Recompiling a single object file (containing the ftrace command data) > and re-linking the kernel is not a big price in that context). No, if I can use DT, I can choose one of them while boot up. That will be a big difference. (Of course for that purpose, I should work on boot loader to support DT overlay) > Or if > you create a new communication channel, you will have the cost of > creating that data object (certainly not much different than compiling > a devicetree) and have the bootloader provide the ftrace data object > to the kernel. Yes, and for me, that sounds like just a reinvention of the wheel. If I can reuse devicetree infrastructure, it is easily done (as I implemented in this series. It's just about 500LOC (and YAML document) I can clone drivers/of/ code only for that new communication channel, but that makes no one happy. :( > > For such purpose, we have to implement a tool to parse and pack the > > data and a channel to load it at earlier stage in bootloader. And > > those are already done by devicetree. Thus I thought I could get a > > piggyback on devicetree. > > Devicetree is not the universal dumping ground for communicating > information to a booting kernel. Please create another communication > channel. Why should we so limit the availability of even a small corner of existing open source software...? Thank you, -- Masami Hiramatsu