On 07.08.2019 09:59, Chao Gao wrote:
On Mon, Aug 05, 2019 at 12:11:01PM +, Jan Beulich wrote:
On 01.08.2019 12:22, Chao Gao wrote:
@@ -439,12 +440,37 @@ static int do_microcode_update(void *patch)
return ret;
}
+static int microcode_nmi_callback(const struct cpu_user_regs *reg
On Mon, Aug 05, 2019 at 12:11:01PM +, Jan Beulich wrote:
>On 01.08.2019 12:22, Chao Gao wrote:
>> @@ -439,12 +440,37 @@ static int do_microcode_update(void *patch)
>> return ret;
>> }
>>
>> +static int microcode_nmi_callback(const struct cpu_user_regs *regs, int cpu)
>> +{
>> +bo
On 01.08.2019 12:22, Chao Gao wrote:
> @@ -439,12 +440,37 @@ static int do_microcode_update(void *patch)
> return ret;
> }
>
> +static int microcode_nmi_callback(const struct cpu_user_regs *regs, int cpu)
> +{
> +bool print = false;
> +
> +/* The first thread of a core is to load
register an nmi callback. And this callback does busy-loop on threads
which are waiting for loading completion if 'loading_ucode' is true.
Signed-off-by: Chao Gao
---
Changes in v8:
- new
---
xen/arch/x86/microcode.c | 29 +
1 file changed, 29 insertions(+)
diff --g