Re: [PATCH] x86: serialize LVTT and TSC_DEADLINE write
From: Shaohua Li
Date: Wed Sep 09 2015 - 00:14:31 EST
On Tue, Sep 08, 2015 at 08:39:37PM -0700, Andi Kleen wrote:
> > Hmm, I didn't mean mfence can't serialize the instructions. For a true
> > IO, a serialization can't guarantee device finishes the IO, we generally
> > read some safe IO registers to wait IO finish. I completely don't know
> > if this case fits here though.
>
> Sorry for the late answer. We (Intel) analyzed this case in detail and
> can confirm that the following sequence
>
> 1. Memory-mapped write to LVT Timer Register, setting bits 18:17 to 10b.
> 23. MFENCE.
> 4. WRMSR to the IA32_TSC_DEADLINE MSR the desired deadline.
>
> has the same effect as the loop algorithm described in the SDM on all Intel
> CPUs. So it's fine to use MFENCE here.
Thank you very much, Andi!
Here is the updated patch.