1 #ifndef THIRD_PARTY_PERF_DATA_CONVERTER_QUIPPER_HUGE_PAGE_DEDUCER_H_ 2 #define THIRD_PARTY_PERF_DATA_CONVERTER_QUIPPER_HUGE_PAGE_DEDUCER_H_ 3 4 #include "compat/proto.h" 5 6 namespace quipper { 7 8 // Walks through all the perf events in |*events| and deduces correct |pgoff| 9 // and |filename| values for MMAP events. 10 // 11 // This may not correctly handle perf data that has been processed to remove 12 // MMAPs that contain no sample events, since one or more of the mappings 13 // necessary to resolve the huge pages mapping could have been discarded. The 14 // result would be that the huge pages mapping would remain as "//anon" and the 15 // other mappings would remain unchanged. 16 void DeduceHugePages(RepeatedPtrField<PerfDataProto::PerfEvent>* events); 17 18 // Walks through all the perf events in |*events| and searches for split 19 // mappings. Combines these split mappings into one and replaces the split 20 // mapping events. Modifies the events vector stored in |*events|. 21 void CombineMappings(RepeatedPtrField<PerfDataProto::PerfEvent>* events); 22 23 } // namespace quipper 24 25 #endif // THIRD_PARTY_PERF_DATA_CONVERTER_QUIPPER_HUGE_PAGE_DEDUCER_H_ 26