Le 30/10/2025 à 08:14, Jan Beulich a écrit : > On 29.10.2025 16:59, Teddy Astie wrote: >> From: Jan Beulich <[email protected]> >> >> Signed-off-by: Jan Beulich <[email protected]> >> Signed-off-by: Teddy Astie <[email protected]> >> --- >> v2: introduced > > This being a change of mine, I'm not happy for the title to have changed, and > for the (little bit of) description to have been dropped. > >> --- a/xen/include/xen/lib/x86/cpu-policy.h >> +++ b/xen/include/xen/lib/x86/cpu-policy.h >> @@ -121,7 +121,32 @@ struct cpu_policy >> uint64_t :64, :64; /* Leaf 0x3 - PSN. */ >> uint64_t :64, :64; /* Leaf 0x4 - Structured Cache. */ >> uint64_t :64, :64; /* Leaf 0x5 - MONITOR. */ >> - uint64_t :64, :64; /* Leaf 0x6 - Therm/Perf. */ >> + >> + /* Leaf 0x6 - Therm/Perf. */ >> + struct { >> + uint32_t /* a */ >> + dts:1, >> + turbo:1, >> + arat:1, >> + :4, >> + hwp:1, >> + hwp_notification:1, >> + hwp_activity_window:1, >> + hwp_epp:1, >> + hwp_plr:1, >> + :1, >> + hdc:1, >> + :2, >> + hwp_peci:1, >> + :2, >> + hw_feedback:1, >> + :12; >> + uint32_t /* b */:32; >> + uint32_t /* c */ aperfmperf:1, >> + :31; >> + uint32_t /* d */:32; >> + } pm; >> + >> uint64_t :64, :64; /* Leaf 0x7 - Structured Features. */ >> uint64_t :64, :64; /* Leaf 0x8 - rsvd */ >> uint64_t :64, :64; /* Leaf 0x9 - DCA */ > > As I had said, this (really: the use of these bits in the host policy) > actually > requires an adjustment to cpu-policy.c as well, which I'm carrying as a > separate, > prereq change (re-produced below). May I suggest that your work go on top of > mine > (which I'll post once we have branched 4.21 off)? >
I'm ok with it. > Jan > > x86/cpu-policy: move invocation of recalculate_misc() > > The function is about guest exposure of features / leaves. There's no need > for it to be applied on the host policy. In fact doing so gets in the way > of using the host policy in certain places. > > Signed-off-by: Jan Beulich <[email protected]> > > --- a/xen/arch/x86/cpu-policy.c > +++ b/xen/arch/x86/cpu-policy.c > @@ -424,7 +424,6 @@ void __init calculate_host_policy(void) > x86_cpu_featureset_to_policy(boot_cpu_data.x86_capability, p); > recalculate_xstate(p); > recalculate_tile(p); > - recalculate_misc(p); > > /* When vPMU is disabled, drop it from the host policy. */ > if ( vpmu_mode == XENPMU_MODE_OFF ) > @@ -705,6 +704,7 @@ static void __init calculate_pv_max_poli > unsigned int i; > > *p = host_cpu_policy; > + recalculate_misc(p); > > guest_common_max_leaves(p); > > @@ -809,6 +809,7 @@ static void __init calculate_hvm_max_pol > const uint32_t *mask; > > *p = host_cpu_policy; > + recalculate_misc(p); > > guest_common_max_leaves(p); > > > Teddy -- Teddy Astie | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech
