wallace added inline comments.

================
Comment at: lldb/docs/lldb-gdb-remote.txt:455
+//    }],
+//    "tsc_conversion"?: Optional<{
+//      "kind": <string>,
----------------
The ? After the key name makes Optional<> redundant. Just keep the ?


================
Comment at: lldb/docs/lldb-gdb-remote.txt:457
+//      "kind": <string>,
+//           Timestamp counter conversion rate kind, e.g. perf.
+//           The kind strings can be found in the overriden toJSON method
----------------
perf-linux might be a better name


================
Comment at: lldb/docs/lldb-gdb-remote.txt:458
+//           Timestamp counter conversion rate kind, e.g. perf.
+//           The kind strings can be found in the overriden toJSON method
+//           of each TimestampCounterRate subclass. The kind determines
----------------
All the supported kinds must be present below in the documentation, so no need 
to mention c++ classes here


================
Comment at: lldb/include/lldb/Target/TraceCursor.h:193
+  // TODO: add docs and rename once naming convention is agreed upon
+  virtual llvm::Optional<uint64_t> GetNanos() = 0;
+
----------------
What about just naming it GetTimestamp and return std::chrono::nanoseconds? 
That way we use c++ time conversion libraries and we don't include the time 
granularity in the name


================
Comment at: lldb/include/lldb/Utility/TraceIntelPTGDBRemotePackets.h:46
+// TODO: update after naming convention is agreed upon
+class TimestampCounterRate {
+  public:
----------------
This class is generic, so better not enforce the meaning of the zero tsc. Each 
trace plugin might be opinionated regarding this timestamp 


================
Comment at: lldb/include/lldb/Utility/TraceIntelPTGDBRemotePackets.h:64
+      m_time_mult(time_mult), m_time_shift(time_shift), m_time_zero(time_zero) 
{}
+    uint64_t ToNanos(uint64_t tsc) override;
+    llvm::json::Value toJSON() override;
----------------
Return a std:: Chrono type. You might want rename this to ToWallTime


================
Comment at: lldb/source/Plugins/Process/Linux/IntelPTManager.h:53
+
+} // namespace resource_handle
+
----------------
Nice


================
Comment at: lldb/source/Plugins/Process/Linux/IntelPTManager.h:223
+  ///     \a The timestamp counter rate if one exists, \a nullptr if no 
conversion exists.
+  static TimestampCounterRateSP GetTscRate(lldb::pid_t pid);
+
----------------
Now that we don't have caching, try to move this method to Process Linux, as an 
static, so that others can use that method more easily. 


================
Comment at: lldb/source/Plugins/Process/Linux/IntelPTManager.h:253
+  /// Server-side cache of timestamp counter rate
+  static llvm::Optional<TimestampCounterRateSP> g_tsc_rate;
+
----------------
We don't need caching anymore. Just calculate it every time we request the 
state, following the information that David gave that the rate might change 
over time. 


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D120595/new/

https://reviews.llvm.org/D120595

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to