[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] x86/x2apic: introduce a mixed physical/cluster mode


  • To: Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Thu, 2 Nov 2023 14:38:09 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DShagFbYufQ7iJ59NqINy6XQkDydi3xSk7ddZkstnQw=; b=c1dto9v1M3V91pNzbpMxOkN6mcfKmdAmLChs+RTqRO5RJr8i7fzfDl3jrOHy929GruZp7ExCUhz97hxtXACkMWjDYvIcpRiSLTeHWQGXRwaPiIkszqVPd5YYhDPeUYOjBshwOla8zM8pVqj6RLOgEbMOTX16WkvTiwe4cYBsAWF6KcCBh38k7S2wAAdMEs5AUM7vjCi6H6SC5RAKFk6GFALZnI57d2LLAn6WFeCdW9Q7iPTt8b65Mq0Ry/TpseWZwM4MiQPtYaMe4H3OPwOOE+RW2XifNSC3JYYXSGx/3z/B4MZn1igJvdIB4NMdn7A+v4IPgvB7Xl3NHQM7vqoQ2g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fV5rhPBX68eiYu282YqkgOAdYCLrkRWvmHkLpqmlwsh90QP+e1SNsOgMFjai2NNCuvzpQskRWQpTmD6Y53/3TBNrBGRkCJya+dKMG5rwUnrPRgaTAgjM4Jb3MAQpTwMH7E5VEcAcbbe8G5WGFsjWplN+ZHsnM2GGAqX62+gBskO7Y3aIY6w+dq94EHA2Ou846SYSKbLE1aXTdw6ZbrVq+Kbm0FzqLFUbLRXqtkVzwE8YZjgKh3lW911RP5CwQTwvVwGCPQN2R0KTz2lY2d276HYIyv1Z0z1KlAxpAHb3ACLQdD2YnVv9VALk0yCxzWk0RxujPnsbGctpeS+UxPrz6g==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: Henry Wang <Henry.Wang@xxxxxxx>, Community Manager <community.manager@xxxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Thu, 02 Nov 2023 13:38:26 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 31.10.2023 15:52, Roger Pau Monne wrote:
> --- a/xen/arch/x86/genapic/x2apic.c
> +++ b/xen/arch/x86/genapic/x2apic.c
> @@ -180,6 +180,29 @@ static const struct genapic __initconstrel 
> apic_x2apic_cluster = {
>      .send_IPI_self = send_IPI_self_x2apic
>  };
>  
> +/*
> + * Mixed x2APIC mode: use physical for external (device) interrupts, and
> + * cluster for inter processor interrupts.  Such mode has the benefits of not
> + * sharing the vector space with all CPUs on the cluster, while still 
> allowing
> + * IPIs to be more efficiently delivered by not having to perform an ICR 
> write
> + * for each target CPU.
> + */
> +static const struct genapic __initconstrel apic_x2apic_mixed = {
> +    APIC_INIT("x2apic_mixed", NULL),
> +    /*
> +     * NB: IPIs use the send_IPI_{mask,self} hooks only, other fields are
> +     * exclusively used by external interrupts and hence are set to use
> +     * Physical destination mode handlers.
> +     */
> +    .int_delivery_mode = dest_Fixed,
> +    .int_dest_mode = 0 /* physical delivery */,
> +    .init_apic_ldr = init_apic_ldr_x2apic_cluster,
> +    .vector_allocation_cpumask = vector_allocation_cpumask_phys,
> +    .cpu_mask_to_apicid = cpu_mask_to_apicid_phys,
> +    .send_IPI_mask = send_IPI_mask_x2apic_cluster,
> +    .send_IPI_self = send_IPI_self_x2apic
> +};

I'm afraid the comment is still misleading in one respect: The .init_apic_ldr
hook is also set to its Clustered mode handler (and validly so). As before my
suggestion would be to leverage that we're using dedicated initializers here
and have a Physical mode portion and a Clustered mode one, each clarifying in
a brief leading comment where/how the handlers are used.

Jan



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.