Alexander Shishkin <[email protected]> writes: > Currently, the PT driver zeroes out the status register every time before > starting the event. However, all the writable bits are already taken care > of in pt_handle_status() function, except the new PacketByteCnt field, > which in new versions of PT contains the number of packet bytes written > since the last sync (PSB) packet. Zeroing it out before enabling PT forces > a sync packet to be written. This means that, with the existing code, a > sync packet (PSB and PSBEND, 18 bytes in total) will be generated every > time a PT event is scheduled in. > > To avoid these unnecessary syncs and save a WRMSR in the fast path, this > patch changes the default behavior to not clear PacketByteCnt field, so > that the sync packets will be generated with the period specified as > "psb_period" attribute config field. This has little impact on the trace > data as the other packets that are normally sent within PSB+ (between PSB > and PSBEND) have their own generation scenarios which do not depend on the > sync packets. > > One exception where we do need to force PSB like this when tracing starts, > so that the decoder has a clear sync point in the trace. For this purpose > we aready have hw::itrace_started flag, which we are currently using to > output PERF_RECORD_ITRACE_START. This patch moves setting itrace_started > from perf core to the pmu::start, where it should still be 0 on the very > first run. > > Signed-off-by: Alexander Shishkin <[email protected]> > > perf/x86/intel/pt: fixup with no force psb > > Signed-off-by: Alexander Shishkin <[email protected]>
Argh, it is not my day today. Regards, -- Alex -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

