Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp4488621imm; Mon, 25 Jun 2018 17:10:00 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKGKsKpVBd+NmRpiozqWp8oNBgPIMZedPbA1BdJqjC2yFIxVPzZBgx/vbcTDZSMedUes3FX X-Received: by 2002:a62:5991:: with SMTP id k17-v6mr15060003pfj.94.1529971800324; Mon, 25 Jun 2018 17:10:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529971800; cv=none; d=google.com; s=arc-20160816; b=x0Ez8Op4/BLbMrZfWbig1++W0tc9cz9Twf008xfbxQ5LJq7wJkFv/6hBsk7xu20mtn +aie3Q20dsFvgmdr6Mlos0K6eLWSlz5lhtDA+sM6zJJO8fOU1V4yLe6HKx/JqZv4q7yf YZTAY4/qTue+OE7jnqNC4Kl65YzZolqog5yADVWDs1cTdyBdTVOXvZK3b4LJ4cHnmHnQ qxIUAVuf8zckdOzEcx0yO8hi3FxDM4+7cXfxxAwucamuT5E+2xl4ZnJgpnXwggzW5nYl x2uU0WECdrZ7YPtgdEbnt1I/oeiAZRZedIjDjXB2BHGIRFt1uX53nDY7h3UF9DFPM0DU /0vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=pSV2NEgN9zEOPW5KG4nyzf276xloMwEH4f0E5/TFDKg=; b=OCCCXCRjYW9PeqTTtcrVoxAo0oVpYPAtJZ/bhZo3zQaAN72ekOKlQu2LM7C5Z8qPBL jbxeShApVTCbI24On55jbPk+cZtonrQnVN6Wvjkog5TdUM8UVla20Q01zAetHhOBueCc QdJuufs/jdQt53u5/cyFKaeGrqpYuiWM27h3ZDSLgihKAaxjgOfZOfqU8848F/ocGFzU BaH5Veun70+jqvXJ2KxBj8sE4tPtPgtttAY5sOXGEasOBHS3wxIgiJrXIDo7uJegkfsa ZpRdGHBn1AJ+CaubfvViG+Ed3v/lfzrbTNtfKVV96CU0ELD6aEVLf/pMuv9XOXalY0YQ 4ctQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=XUzklTF2; 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 44-v6si207847plb.376.2018.06.25.17.09.46; Mon, 25 Jun 2018 17:10:00 -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=@joelfernandes.org header.s=google header.b=XUzklTF2; 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 S935113AbeFZAIq (ORCPT + 99 others); Mon, 25 Jun 2018 20:08:46 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:47016 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933778AbeFZAIm (ORCPT ); Mon, 25 Jun 2018 20:08:42 -0400 Received: by mail-pf0-f194.google.com with SMTP id q1-v6so7199090pff.13 for ; Mon, 25 Jun 2018 17:08:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=from:to:cc:subject:date:message-id; bh=pSV2NEgN9zEOPW5KG4nyzf276xloMwEH4f0E5/TFDKg=; b=XUzklTF2hYBAE3Xl0rBhGcTfsP1qQjfNBst7xlJ26Ezlxv9dVw9+E75559VMFQQw8K YfymPdr/ZmZIl/u0S0ksxj/V4m6zH6BJNkau4Nl2q8iMQbqCcrKYABtDUXKPBpREPNOy NKJg/a+pyFU4RzwwvbkwEAWnPM8B3VAXmPSnc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=pSV2NEgN9zEOPW5KG4nyzf276xloMwEH4f0E5/TFDKg=; b=SU0K+HhMYBtkXIoBdk+pDrgonZaurTxjTGtII3O7myV+H8Wb+uwOZvPKDNZAMXuWxV 1qbA3tJtWbHxt1BwwcOo0e9zb1vtlAzcemhfOrB61ZHyWDMzOkdwYjegagCo90FoskV5 pHdR/ndPxSGWmY4ewJIUqt4xKU0z3u2WMwXW6oIksjk/uBvtElbnuTSQImqP2974mWjI wb7oQlD3DEFamkicHeLmZGcRapmjyOggsguoaiHF66JwWUb8I6MpsO/Qm5JbpiUrYFTs yMjE/5Gs4tJ0bT77rLudujOkq77G/Skj+qLNfywPQMzU29dbAIk/J4QFGyLtzCzsEs32 bYQQ== X-Gm-Message-State: APt69E2QNF50ikgt/c0o2h8pQ1Q2gmktFvRmnhKrMzGFBl+hA2LqWW4p t8GTmFhqEoxjsMPAoWbXr7KySVoJh2E= X-Received: by 2002:a62:ee01:: with SMTP id e1-v6mr14912574pfi.2.1529971721127; Mon, 25 Jun 2018 17:08:41 -0700 (PDT) Received: from joelaf.mtv.corp.google.com ([2620:0:1000:1600:3122:ea9c:d178:eb]) by smtp.gmail.com with ESMTPSA id z26-v6sm253359pfd.60.2018.06.25.17.08.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 25 Jun 2018 17:08:40 -0700 (PDT) From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: kernel-team@android.com, "Joel Fernandes (Google)" , jreck@google.com, tkjos@google.com, Steven Rostedt Subject: [PATCH] trace: Reorder display of TGID to be after PID Date: Mon, 25 Jun 2018 17:08:22 -0700 Message-Id: <20180626000822.113931-1-joel@joelfernandes.org> X-Mailer: git-send-email 2.18.0.rc2.346.g013aa6912e-goog Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Joel Fernandes (Google)" Currently ftrace displays data in trace output like so: _-----=> irqs-off / _----=> need-resched | / _---=> hardirq/softirq || / _--=> preempt-depth ||| / delay TASK-PID CPU TGID |||| TIMESTAMP FUNCTION | | | | |||| | | bash-1091 [000] ( 1091) d..2 28.313544: sched_switch: However Android's trace visualization tools expect a slightly different format due to an out-of-tree patch patch that was been carried for a decade, notice that the TGID and CPU fields are reversed: _-----=> irqs-off / _----=> need-resched | / _---=> hardirq/softirq || / _--=> preempt-depth ||| / delay TASK-PID TGID CPU |||| TIMESTAMP FUNCTION | | | | |||| | | bash-1091 ( 1091) [002] d..2 64.965177: sched_switch: From kernel v4.13 onwards, during which TGID was introduced, tracing with systrace on all Android kernels will break (most Android kernels have been on 4.9 with Android patches, so this issues hasn't been seen yet). From v4.13 onwards things will break. The chrome browser's tracing tools also embed the systrace viewer which uses the legacy TGID format and updates to that are known to be difficult to make. Considering this, I suggest we make this change to the upstream kernel and backport it to all Android kernels. I believe this feature is merged recently enough into the upstream kernel that it shouldn't be a problem. Also logically, IMO it makes more sense to group the TGID with the TASK-PID and the CPU after these. Fixes: 441dae8f2f29 ("tracing: Add support for display of tgid in trace output") Cc: jreck@google.com Cc: tkjos@google.com Signed-off-by: Joel Fernandes (Google) --- kernel/trace/trace.c | 8 ++++---- kernel/trace/trace_output.c | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index c9336e98ac59..5711ca3ba4c9 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -3364,8 +3364,8 @@ static void print_func_help_header(struct trace_buffer *buf, struct seq_file *m, print_event_info(buf, m); - seq_printf(m, "# TASK-PID CPU# %s TIMESTAMP FUNCTION\n", tgid ? "TGID " : ""); - seq_printf(m, "# | | | %s | |\n", tgid ? " | " : ""); + seq_printf(m, "# TASK-PID %s CPU# TIMESTAMP FUNCTION\n", tgid ? "TGID " : ""); + seq_printf(m, "# | | %s | | |\n", tgid ? " | " : ""); } static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file *m, @@ -3385,9 +3385,9 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file tgid ? tgid_space : space); seq_printf(m, "# %s||| / delay\n", tgid ? tgid_space : space); - seq_printf(m, "# TASK-PID CPU#%s|||| TIMESTAMP FUNCTION\n", + seq_printf(m, "# TASK-PID %sCPU# |||| TIMESTAMP FUNCTION\n", tgid ? " TGID " : space); - seq_printf(m, "# | | | %s|||| | |\n", + seq_printf(m, "# | | %s | |||| | |\n", tgid ? " | " : space); } diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index 90db994ac900..1c8e30fda46a 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c @@ -594,8 +594,7 @@ int trace_print_context(struct trace_iterator *iter) trace_find_cmdline(entry->pid, comm); - trace_seq_printf(s, "%16s-%-5d [%03d] ", - comm, entry->pid, iter->cpu); + trace_seq_printf(s, "%16s-%-5d ", comm, entry->pid); if (tr->trace_flags & TRACE_ITER_RECORD_TGID) { unsigned int tgid = trace_find_tgid(entry->pid); @@ -606,6 +605,8 @@ int trace_print_context(struct trace_iterator *iter) trace_seq_printf(s, "(%5d) ", tgid); } + trace_seq_printf(s, "[%03d] ", iter->cpu); + if (tr->trace_flags & TRACE_ITER_IRQ_INFO) trace_print_lat_fmt(s, entry); -- 2.18.0.rc2.346.g013aa6912e-goog