On 03.05.2023 20:58, Andrew Cooper wrote: > Loading microcode can cause new features to appear.
Or disappear (LWP)? While I don't think we want to panic() in this case (we do on the S3 resume path when recheck_cpu_features() fails on the BSP), it would seem to me that we want to go a step further than you do and at least warn when a feature went amiss. Or is that too much of a scope-creeping request right here? > @@ -677,6 +678,9 @@ static long cf_check microcode_update_helper(void *data) > spin_lock(µcode_mutex); > microcode_update_cache(patch); > spin_unlock(µcode_mutex); > + > + /* Refresh the raw CPU policy, in case the features have changed. */ > + calculate_raw_cpu_policy(); I understand this is in line with what we do during boot, but there and here I wonder whether this wouldn't better deal with possible asymmetries (e.g. in case ucode loading failed on one of the CPUs), along the lines of what we do near the end of identify_cpu() for APs. (Unlike the question higher up, this is definitely only a remark here, not something I'd consider dealing with right in this change.) Jan