• Pawan Gupta's avatar
    x86/msr: Define new bits in TSX_FORCE_ABORT MSR · 1348924b
    Pawan Gupta authored
    Intel client processors that support the IA32_TSX_FORCE_ABORT MSR
    related to perf counter interaction [1] received a microcode update that
    deprecates the Transactional Synchronization Extension (TSX) feature.
    The bit FORCE_ABORT_RTM now defaults to 1, writes to this bit are
    ignored. A new bit TSX_CPUID_CLEAR clears the TSX related CPUID bits.
    
    The summary of changes to the IA32_TSX_FORCE_ABORT MSR are:
    
      Bit 0: FORCE_ABORT_RTM (legacy bit, new default=1) Status bit that
      indicates if RTM transactions are always aborted. This bit is
      essentially !SDV_ENABLE_RTM(Bit 2). Writes to this bit are ignored.
    
      Bit 1: TSX_CPUID_CLEAR (new bit, default=0) When set, CPUID.HLE = 0
      and CPUID.RTM = 0.
    
      Bit 2: SDV_ENABLE_RTM (new bit, default=0) When clear, XBEGIN will
      always abort with EAX code 0. When set, XBEGIN will not be forced to
      abort (but will always abort in SGX enclaves). This bit is intended to
      be used on developer systems. If this bit is set, transactional
      atomicity correctness is not certain. SDV = Software Development
      Vehicle (SDV), i.e. developer systems.
    
    Performance monitoring counter 3 is usable in all cases, regardless of
    the value of above bits.
    
    Add support for a new CPUID bit - CPUID.RTM_ALWAYS_ABORT (CPUID 7.EDX[11])
     - to indicate the status of always abort behavior.
    
    [1] [ bp: Look for document ID 604224, "Performance Monitoring Impact
          of Intel Transactional Synchronization Extension Memory". Since
          there's no way for us to have stable links to documents... ]
    
     [ bp: Massage and extend commit message. ]
    Signed-off-by: default avatarPawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Reviewed-by: default avatarAndi Kleen <ak@linux.intel.com>
    Reviewed-by: default avatarTony Luck <tony.luck@intel.com>
    Tested-by: default avatarNeelima Krishnan <neelima.krishnan@intel.com>
    Link: https://lkml.kernel.org/r/9add61915b4a4eedad74fbd869107863a28b428e.1623704845.git-series.pawan.kumar.gupta@linux.intel.com
    1348924b
cpufeatures.h 27.7 KB