7826d1
Older RHEL 7 kernels try to early load microcode even inside virtual
7826d1
machine, which may lead to panic on some hypervisors.  In order to circumvent
7826d1
that, microcode is installed into a kernel-version-specific directory (which
7826d1
is not scanned by the dracut script, that constructs early microcode binary
7826d1
in initramfs, by default), and path to microcode files provided only in case
7826d1
initramfs is generated for the kernel version that properly handles early
7826d1
microcode inside a virtual machine (i.e. do not attempts yo load it).
7826d1
The versions of the kernel package that properly handle early microcode load
7826d1
inside a virtual machine are as follows:
7826d1
 * RHEL 7.6 onwards: kernel-3.10.0-930 or newer;
7826d1
 * RHEL 7.5: kernel-3.10.0-862.14.1 or newer;
7826d1
 * RHEL 7.4: kernel-3.10.0-693.38.1 or newer;
7826d1
 * RHEL 7.3: kernel-3.10.0-514.57.1 or newer;
7826d1
 * RHEL 7.2: kernel-3.10.0-327.73.1 or newer.
7826d1
RHEL 8 kernels are not affected.
7826d1
7826d1
If you want to avoid early load of microcode for a specific kernel, please
7826d1
create "disallow-early-intel" file inside /lib/firmware/<kernel_version>
7826d1
directory and run dracut -f --kver "<kernel_version>":
7826d1
7826d1
    touch /lib/firmware/3.10.0-862.9.1/disallow-early-intel
7826d1
    dracut -f --kver 3.10.0-862.9.1
7826d1
7826d1
If you want to avoid early load of microcode for all kernels, please create
7826d1
"disallow-early-intel" file inside the "/etc/microcode_ctl/ucode_with_caveats"
7826d1
directory and run dracut -f --regenerate-all:
7826d1
7826d1
    mkdir -p /etc/microcode_ctl/ucode_with_caveats
7826d1
    touch /etc/microcode_ctl/ucode_with_caveats/disallow-early-intel
7826d1
    dracut -f --regenerate-all
7826d1
7826d1
If you want to enforce early load of microcode for a specific kernel, please
7826d1
create "force-early-intel" file inside /lib/firmware/<kernel_version> directory
7826d1
and run dracut -f --kver "<kernel_version>":
7826d1
7826d1
    touch /lib/firmware/3.10.0-862.9.1/force-early-intel
7826d1
    dracut -f --kver 3.10.0-862.9.1
7826d1
7826d1
If you want to enforce early load of microcode for all kernels, please create
7826d1
"force-early-intel" file inside /etc/microcode_ctl/ucode_with_caveats
7826d1
directory and run dracut -f --kver "<kernel_version>":
7826d1
7826d1
    mkdir -p /etc/microcode_ctl/ucode_with_caveats
7826d1
    touch /etc/microcode_ctl/ucode_with_caveats/force-early-intel
7826d1
    dracut -f --regenerate-all
7826d1
7826d1
In order to override the late load behaviour, the "early" part of file names
7826d1
should be replaced with "late" (and there is no need to call dracut
7826d1
in that case).
7826d1
7826d1
7826d1
Please refer to /usr/share/doc/microcode_ctl/README.caveats for additional
7826d1
information.