From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751824AbdITHQb (ORCPT ); Wed, 20 Sep 2017 03:16:31 -0400 Received: from mga03.intel.com ([134.134.136.65]:34260 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751768AbdITHQ3 (ORCPT ); Wed, 20 Sep 2017 03:16:29 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,420,1500966000"; d="scan'208";a="137398275" From: Jin Yao To: acme@kernel.org, jolsa@kernel.org, peterz@infradead.org, mingo@redhat.com, alexander.shishkin@linux.intel.com Cc: Linux-kernel@vger.kernel.org, ak@linux.intel.com, kan.liang@intel.com, yao.jin@intel.com, Jin Yao Subject: [PATCH v1 2/6] perf Documentation: Update perf.data-file-format.txt Date: Wed, 20 Sep 2017 23:12:33 +0800 Message-Id: <1505920357-25561-3-git-send-email-yao.jin@linux.intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1505920357-25561-1-git-send-email-yao.jin@linux.intel.com> References: <1505920357-25561-1-git-send-email-yao.jin@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently the perf.data file starts with a perf_file_header, while in the document, it's perf_header. So update it by the new definition. It also adds the description for new fields first_sample_time and last_sample_time. The new fields will be used in perf record/script/... to slice the traces. Signed-off-by: Jin Yao --- tools/perf/Documentation/perf.data-file-format.txt | 27 +++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/tools/perf/Documentation/perf.data-file-format.txt b/tools/perf/Documentation/perf.data-file-format.txt index e90c59c..7c27403 100644 --- a/tools/perf/Documentation/perf.data-file-format.txt +++ b/tools/perf/Documentation/perf.data-file-format.txt @@ -14,17 +14,18 @@ format that does not rely on seeking to adjust data offsets. This format is described in "Pipe-mode data" section. The pipe data version can be augmented with additional events using perf inject. -The file starts with a perf_header: - -struct perf_header { - char magic[8]; /* PERFILE2 */ - uint64_t size; /* size of the header */ - uint64_t attr_size; /* size of an attribute in attrs */ - struct perf_file_section attrs; - struct perf_file_section data; - struct perf_file_section event_types; - uint64_t flags; - uint64_t flags1[3]; +The file starts with a perf_file_header: + +struct perf_file_header { + u64 magic; + u64 size; + u64 attr_size; + struct perf_file_section attrs; + struct perf_file_section data; + struct perf_file_section event_types; + DECLARE_BITMAP(adds_features, HEADER_FEAT_BITS); + u64 first_sample_time; + u64 last_sample_time; }; The magic number identifies the perf file and the version. Current perf versions @@ -416,6 +417,10 @@ An array bound by the perf_file_section size. ids points to a array of uint64_t defining the ids for event attr attr. +first_sample_time and last_sample_time record the timestmaps of first sample +and last sample. In later, perf record will fetch the time from perf file +header and use them to slice the traces for parallelization. + Pipe-mode data Pipe-mode avoid seeks in the file by removing the perf_file_section and flags -- 2.7.4