Skip to content

x86-splitlock-2021-04-26

  Newer CPUs provide a second mechanism to detect operations with lock
  prefix which go accross a cache line boundary. Such operations have to
  take bus lock which causes a system wide performance degradation when
  these operations happen frequently.

  The new mechanism is not using the #AC exception. It triggers #DB and is
  restricted to operations in user space. Kernel side split lock access can
  only be detected by the #AC based variant. Contrary to the #AC based
  mechanism the #DB based variant triggers _after_ the instruction was
  executed. The mechanism is CPUID enumerated and contrary to the #AC
  version which is based on the magic TEST_CTRL_MSR and model/family based
  enumeration on the way to become architectural.
Assets 2
Loading