• Ashok Raj's avatar
    x86/microcode: Update late microcode in parallel · 93946a33
    Ashok Raj authored
    Microcode update was changed to be serialized due to restrictions after
    Spectre days. Updating serially on a large multi-socket system can be
    painful since it is being done on one CPU at a time.
    
    Cloud customers have expressed discontent as services disappear for
    a prolonged time. The restriction is that only one core (or only one
    thread of a core in the case of an SMT system) goes through the update
    while other cores (or respectively, SMT threads) are quiesced.
    
    Do the microcode update only on the first thread of each core while
    other siblings simply wait for this to complete.
    
     [ bp: Simplify, massage, cleanup comments. ]
    Signed-off-by: default avatarAshok Raj <ashok.raj@intel.com>
    Signed-off-by: default avatarMihai Carabas <mihai.carabas@oracle.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jon Grimm <Jon.Grimm@amd.com>
    Cc: kanth.ghatraju@oracle.com
    Cc: konrad.wilk@oracle.com
    Cc: patrick.colp@oracle.com
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/1566506627-16536-2-git-send-email-mihai.carabas@oracle.com
    93946a33
core.c 19.3 KB