|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 0/6] improve late microcode loading
The intention of this series is to make the late microcode loading
more reliable by rendezvousing all cpus in stop_machine context and
updating microcode of each cpu core one-by-one. This idea comes from
Ashok. I am porting his linux patch to Xen (see patch 6 for more
detail).
This series makes two changes:
1. Patch 1-5: introduce a global microcode cache
2. Patch 6: synchronize late microcode loading
Currently, late microcode loading does a lot of things including
parsing microcode file, checking the signature/revision and performing
update. Putting all of them into stop_machine context is a bad idea
because of complexity (One issue I observed is memory allocation
triggered one assertion in stop_machine context). In order to simplify
the load process, I move parsing microcode out of the load process.
The microcode file is parsed and a global microcode cache is built on
a single CPU before rendezvousing all cpus to update microcode. Other
CPUs just get a suitable microcode from the global cache and load it.
With this global cache, it is safe to put simplified load process to
stop_machine context.
Regarding changes to AMD side, I didn't do any tests for them due to
lack of hardware. Hence it wonldn't be surprising to me if you found
some bugs on a AMD machine. Is there anyone who has a AMD machine
at hand willing to do some basic tests, like
* do a microcode update
* don't bring all pCPUs up at startup by specifying maxcpus in xen
command line and then do a microcode update and online all
offlined CPUs via 'xen-hptool'.
For your convenience, you can also find this series at:
https://github.intel.com/chaogao/xen
Chao Gao (6):
microcode/intel: extend microcode_update_match()
microcode: save all microcodes which pass sanity check
microcode: delete 'mc' field from struct ucode_cpu_info
microcode: don't call apply_microcode() in cpu_request_microcode()
microcode: delete microcode pointer and size from microcode_info
x86/microcode: Synchronize late microcode loading
xen/arch/x86/microcode.c | 215 ++++++++++++++++++++++++++--------------
xen/arch/x86/microcode_amd.c | 183 ++++++++++++++++++----------------
xen/arch/x86/microcode_intel.c | 174 ++++++++++++++++++++++----------
xen/include/asm-x86/microcode.h | 17 ++--
4 files changed, 371 insertions(+), 218 deletions(-)
--
1.8.3.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |