On 24.01.2024 18:23, Andrew Cooper wrote: > On 24/01/2024 3:37 pm, Jan Beulich wrote: >> On 23.01.2024 21:59, Andrew Cooper wrote: >>> Always run microcode_update_helper() on the BSP, so the the updated Raw CPU >>> policy doesn't get non-BSP topology details included. >> Wouldn't it be better (and consistent with ... >> >>> Have calculate_raw_cpu_policy() clear the instantanious XSTATE sizes. The >>> value XCR0 | MSR_XSS had when we scanned the policy isn't terribly >>> interesting >>> to report. >> ... this) to purge these details from the raw policy as well then? > > I did spend some time considering this. > > Rerunning on the same CPU is more resilient to new topology leaves, so > we'd want to be doing that irrespective.
I'm afraid I don't understand this: If a ucode update surfaced new leaves, they surely would appear on all CPUs? IOW my question still stands: Wouldn't we better zap topology data from the raw policy (thus also not propagating it into other policies)? At which point retrieval becomes independent of what CPU it is run on (if there were any other CPU-specific pieces of data, similar zapping should happen for them). Surely using CPU0 here isn't much of a problem, as this is a pretty infrequent event. But generally I'd like to avoid "preferring" CPU0 as much as possible. Hence I'd prefer if even in cases like this one we could avoid it. > The XCR0/XSS state really is transient, and the useful information is > everywhere else in leaf 0xd. Sure, but this is still independent on what CPU the retrieval is run on. Jan
