kshark_entry contains all information from one trace record, needed in order to visualize the time-series of trace records. Here we reorganize the data fields of kshark_entry in order to make room for the unique identifier of the Data stream this entry belongs to. The Id is coded in 16 bits that are taken from the "event_id" field. So far "event_id" uses 32 bits but we found that it is coded with only 16 bits inside the kernel, so we still have 16 unused (spare) bits in it. Because the stream Id is coded with int8_t, we need to set an upper limit (127) for the total number of Data streams loaded. Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@xxxxxxxxx> --- src/libkshark.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libkshark.h b/src/libkshark.h index 9eecc2d0..7d8b53b0 100644 --- a/src/libkshark.h +++ b/src/libkshark.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1 */ /* - * Copyright (C) 2017 VMware Inc, Yordan Karadzhov <y.karadz@xxxxxxxxx> + * Copyright (C) 2017 VMware Inc, Yordan Karadzhov (VMware) <y.karadz@xxxxxxxxx> */ /** @@ -51,15 +51,18 @@ struct kshark_entry { */ uint16_t visible; + /** Data stream identifier. */ + int16_t stream_id; + + /** Unique Id of the trace event type. */ + int16_t event_id; + /** The CPU core of the record. */ int16_t cpu; /** The PID of the task the record was generated. */ int32_t pid; - /** Unique Id ot the trace event type. */ - int32_t event_id; - /** The offset into the trace file, used to find the record. */ int64_t offset; -- 2.25.1