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

Re: [PATCH 02/12] x86/apic: remove vector_allocation_cpumask hook


  • To: Roger Pau Monne <roger.pau@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Thu, 20 Nov 2025 12:30:10 +0000
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=3Shx31ILeRVrewlhJ7mK1VRZ7Ik6JKaRuQFmH0HypEs=; b=MDkG25UYk0z1n/z4N9DOkggezO8ld+n9Q0xY4aWudnFngxU6URm9XiCqB/fCfZFYlJuXHpaRPWU3TLc5prhMMRkVBMqQMAzPsqALlTpyfmaQd/1k2dTUf4r8TXDgUfv9k0M353vDSd8CInuEKn3xFZZH0f0GLha80QA6RyW/PKdlh83RG4fLMcWHKNb+T8kxx3S9u+P/YkbhHOVcPfoi1QezLlTOeKuCNehejtLiUFrIG6t6pab5M5kMVygqj8F2WwpiEa3TE9EyXZ44TFYNvotBnEULPl05V4m0iEsB1zNaiph4+uQl7iymeIPZ4S4XSU/atIqOsOeyIKsQrwu2Xw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ka+yE0vI1LbEhJGZ1RWMY7QwW7fVzC3scssh/sIMHSFkD5apAoxrI5QqNtk7BPH2w+27FguCAPlMju19qjJ9YEyk59QO39KCvDcNXHAfIDQIC0dFTXAzx7zTq9XZfuYy4++yZhIIpFuxWoOxj4cwkGZ5hg7FZdQ5jb9nik69wnSU+LqBPePz0GXh4V/oPZj+tETwrapx7Qe+PgXPRQIC3M8J7YZ8Zf4mnu2E+2VGiv2/iDt3GoYogeGTat4hdETmi9WXAC5QVbXH9izJ8VVr3d18aE5H9z/qMaPBplhwfDlCL2cVpFtu7cExvTBVXRHyR8KFzyo3g3U6I+Mk5hY2Jg==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Jan Beulich <jbeulich@xxxxxxxx>
  • Delivery-date: Thu, 20 Nov 2025 12:30:22 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 20/11/2025 9:06 am, Roger Pau Monne wrote:
> All implementations use the same hook which is a wrapper around
> cpumask_of(cpu).  Adjust callers to no longer use such dummy mask with a
> single CPU set, as the CPU is already known to the caller.  This removes a
> pair of usages of for_each_cpu().
>
> No functional change intended.
>
> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>

Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, with one suggestion.

> diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
> index 80f7417d2103..7009a3c6d0dd 100644
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -650,13 +646,12 @@ next:
>              && test_bit(vector, irq_used_vectors) )
>              goto next;
>  
> -        if ( cpumask_test_cpu(0, vec_mask) &&
> +        if ( !cpu &&
>               vector >= FIRST_LEGACY_VECTOR && vector <= LAST_LEGACY_VECTOR )
>              goto next;
>  
> -        for_each_cpu(new_cpu, vec_mask)
> -            if (per_cpu(vector_irq, new_cpu)[vector] >= 0)
> -                goto next;
> +        if ( per_cpu(vector_irq, cpu)[vector] >= 0 )
> +            goto next;

Please can we have a blank line here for legibility.

>          /* Found one! */
>          current_vector = vector;
>          current_offset = offset;
> @@ -688,12 +683,12 @@ next:
>                  release_old_vec(desc);
>          }
>  
> -        trace_irq_mask(TRC_HW_IRQ_ASSIGN_VECTOR, irq, vector, vec_mask);
> +        trace_irq_mask(TRC_HW_IRQ_ASSIGN_VECTOR, irq, vector, 
> cpumask_of(cpu));

This highlights that there's a problem with tracing on large systems,
not that there's anything we can really do about it.

~Andrew



 


Rackspace

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