From 1442aa99be4d2ad7a6b0fdf4ffe4b05c456629e8 Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Fri, 5 Apr 2019 11:33:32 +0200 Subject: [PATCH] cpu_x86: Do not cache microcode version MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The microcode version checks are used to invalidate cached CPU data we get from QEMU. To minimize /proc/cpuinfo parsing the microcode version was only read when libvirtd started and cached for the daemon's lifetime. However, the CPU microcode can change anytime (updating the microcode package can automatically upload it to the CPU) and we need to stop caching it to avoid using stale CPU model data. Signed-off-by: Jiri Denemark Reviewed-by: Ján Tomko (cherry picked from commit be46f613261d3b655a1f15afd635087e68a9c39b) --- src/cpu/cpu_x86.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index d3a88da21d..470de83a87 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -165,7 +165,6 @@ struct _virCPUx86Map { }; static virCPUx86MapPtr cpuMap; -static unsigned int microcodeVersion; int virCPUx86DriverOnceInit(void); VIR_ONCE_GLOBAL_INIT(virCPUx86Driver); @@ -1332,8 +1331,6 @@ virCPUx86DriverOnceInit(void) if (!(cpuMap = virCPUx86LoadMap())) return -1; - microcodeVersion = virHostCPUGetMicrocodeVersion(); - return 0; } @@ -2373,7 +2370,7 @@ virCPUx86GetHost(virCPUDefPtr cpu, goto cleanup; ret = x86DecodeCPUData(cpu, cpuData, models); - cpu->microcodeVersion = microcodeVersion; + cpu->microcodeVersion = virHostCPUGetMicrocodeVersion(); cleanup: virCPUx86DataFree(cpuData); -- 2.47.3