These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / x86 / kernel / cpu / intel_pt.h
index 1c338b0..336878a 100644 (file)
  */
 #define TOPA_PMI_MARGIN 512
 
-/*
- * Table of Physical Addresses bits
- */
-enum topa_sz {
-       TOPA_4K = 0,
-       TOPA_8K,
-       TOPA_16K,
-       TOPA_32K,
-       TOPA_64K,
-       TOPA_128K,
-       TOPA_256K,
-       TOPA_512K,
-       TOPA_1MB,
-       TOPA_2MB,
-       TOPA_4MB,
-       TOPA_8MB,
-       TOPA_16MB,
-       TOPA_32MB,
-       TOPA_64MB,
-       TOPA_128MB,
-       TOPA_SZ_END,
-};
+#define TOPA_SHIFT 12
 
-static inline unsigned int sizes(enum topa_sz tsz)
+static inline unsigned int sizes(unsigned int tsz)
 {
-       return 1 << (tsz + 12);
+       return 1 << (tsz + TOPA_SHIFT);
 };
 
 struct topa_entry {
@@ -66,20 +45,26 @@ struct topa_entry {
        u64     rsvd4   : 16;
 };
 
-#define TOPA_SHIFT 12
-#define PT_CPUID_LEAVES 2
+#define PT_CPUID_LEAVES                2
+#define PT_CPUID_REGS_NUM      4 /* number of regsters (eax, ebx, ecx, edx) */
 
 enum pt_capabilities {
        PT_CAP_max_subleaf = 0,
        PT_CAP_cr3_filtering,
+       PT_CAP_psb_cyc,
+       PT_CAP_mtc,
        PT_CAP_topa_output,
        PT_CAP_topa_multiple_entries,
+       PT_CAP_single_range_output,
        PT_CAP_payloads_lip,
+       PT_CAP_mtc_periods,
+       PT_CAP_cycle_thresholds,
+       PT_CAP_psb_periods,
 };
 
 struct pt_pmu {
        struct pmu              pmu;
-       u32                     caps[4 * PT_CPUID_LEAVES];
+       u32                     caps[PT_CPUID_REGS_NUM * PT_CPUID_LEAVES];
 };
 
 /**