[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 |