On 12.11.20 14:41, Jan Beulich wrote:
On 12.11.2020 14:14, Juergen Gross wrote:--- a/xen/arch/x86/genapic/x2apic.c +++ b/xen/arch/x86/genapic/x2apic.c @@ -89,6 +89,7 @@ static unsigned int cpu_mask_to_apicid_x2apic_cluster(const cpumask_t *cpumask)static void send_IPI_self_x2apic(uint8_t vector){ + /* NMI continuation handling relies on using a shorthand here. */ apic_wrmsr(APIC_SELF_IPI, vector); }I'm inclined to drop this hunk again - I did ask for ...--- a/xen/arch/x86/smp.c +++ b/xen/arch/x86/smp.c @@ -163,6 +163,7 @@ void send_IPI_self(int vector)void send_IPI_self_legacy(uint8_t vector){ + /* NMI continuation handling relies on using a shorthand here. */ send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL); }... this one only simply because x2APIC doesn't have the same restriction.
It would still be bad if the x2APIC variant would e.g. use send_IPI_mask_x2apic_cluster() due to its usage of per_cpu(scratch_mask). Juergen
OpenPGP_0xB0DE9DD628BF132F.asc
Description: application/pgp-keys
OpenPGP_signature
Description: OpenPGP digital signature