Linux Guest OS reporting 'fast string operations disabled' despite 'enfstrg' being passed at the hardware/virtualization layer
search cancel

Linux Guest OS reporting 'fast string operations disabled' despite 'enfstrg' being passed at the hardware/virtualization layer

book

Article ID: 405779

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:

Linux Guest reports fast string are disabled:

[    0.016064] Disabled fast string operations
[    0.016064] Disabled fast string operations
[    0.016064] Disabled fast string operations
[    0.016064] Disabled fast string operations

Despite 'enfstrg' appearing to be enabled at the virtualization layer via...

[VM].vmx:

vmware.log:

EVC configuration:

Environment

VMware ESXi 7.x/8.x
VMware vCenter 7.x/8.x

Cause

For Linux Guest operating systems, fast string operations depend on the virtualization of the following CPUID bit:

MSR_MISC_ENABLE

While fast string operations have been supported since hardware version 9, we did not begin to virtualize the above MSR bit until the introduction of Intel Icelake CPUs, at which point Intel had also added the short string optimization for fast string operations, indicated by the presence of the FAST_SHORT_REPMOV CPUID bit.

Due to a bug within the linux kernel, we had to add the dependencies of both the FAST_SHORT_REPMOV and ENFSTRG bits to be present in order for the MSR_MISC_ENABLE.FAST_STRING to be enabled. Thus, fast string operations cannot be virtualized using vSphere with a CPU feature-set older than Intel Icelake.

Resolution

The following conditions must be satisfied for fast string operations to work within Linux-based operating systems vitualized by vSphere software:

  1) virtual hardware version must be 18 or greater,
  2) host cpu must be Ice Lake or newer
  3) if present, the EVC mode (cluster or perVM) must be Ice Lake or newer