mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-30 09:53:10 +00:00
cpu_x86: Do not cache microcode version
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 <jdenemar@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
cf4e33651c
commit
be46f61326
@ -166,7 +166,6 @@ struct _virCPUx86Map {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static virCPUx86MapPtr cpuMap;
|
static virCPUx86MapPtr cpuMap;
|
||||||
static unsigned int microcodeVersion;
|
|
||||||
|
|
||||||
int virCPUx86DriverOnceInit(void);
|
int virCPUx86DriverOnceInit(void);
|
||||||
VIR_ONCE_GLOBAL_INIT(virCPUx86Driver);
|
VIR_ONCE_GLOBAL_INIT(virCPUx86Driver);
|
||||||
@ -1424,8 +1423,6 @@ virCPUx86DriverOnceInit(void)
|
|||||||
if (!(cpuMap = virCPUx86LoadMap()))
|
if (!(cpuMap = virCPUx86LoadMap()))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
microcodeVersion = virHostCPUGetMicrocodeVersion();
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2507,7 +2504,7 @@ virCPUx86GetHost(virCPUDefPtr cpu,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
ret = x86DecodeCPUData(cpu, cpuData, models);
|
ret = x86DecodeCPUData(cpu, cpuData, models);
|
||||||
cpu->microcodeVersion = microcodeVersion;
|
cpu->microcodeVersion = virHostCPUGetMicrocodeVersion();
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCPUx86DataFree(cpuData);
|
virCPUx86DataFree(cpuData);
|
||||||
|
Loading…
Reference in New Issue
Block a user