[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aCxIeJZjdSEMi__f@gmail.com>
Date: Tue, 20 May 2025 11:16:40 +0200
From: Ingo Molnar <mingo@...nel.org>
To: Rik van Riel <riel@...riel.com>
Cc: linux-kernel@...r.kernel.org, linux-mm@...ck.org, x86@...nel.org,
kernel-team@...a.com, dave.hansen@...ux.intel.com, luto@...nel.org,
peterz@...radead.org, tglx@...utronix.de, mingo@...hat.com,
bp@...en8.de, hpa@...or.com, nadav.amit@...il.com,
Rik van Riel <riel@...com>, Yu-cheng Yu <yu-cheng.yu@...el.com>
Subject: Re: [RFC v2 6/9] x86/apic: Introduce Remote Action Request Operations
* Rik van Riel <riel@...riel.com> wrote:
> diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h
> index 47051871b436..c417b0015304 100644
> --- a/arch/x86/include/asm/irq_vectors.h
> +++ b/arch/x86/include/asm/irq_vectors.h
> @@ -103,6 +103,11 @@
> */
> #define POSTED_MSI_NOTIFICATION_VECTOR 0xeb
>
> +/*
> + * RAR (remote action request) TLB flush
> + */
> +#define RAR_VECTOR 0xe0
> +
> #define NR_VECTORS 256
This subtly breaks x86 IRQ vector allocation AFAICS.
Right now device IRQ vectors are allocated from 0x81 to
FIRST_SYSTEM_VECTOR (POSTED_MSI_NOTIFICATION_VECTOR) or 0xeb.
But RAR_VECTOR is within that range, the the IRQ allocator will overlap
it and result in what I guess will be misbehaving RAR code and
misbehaving device IRQ handling once it hands out 0xeb as well.
So you need to lower NR_EXTERNAL_VECTORS for there to be no overlap
between device IRQ vectors and system IRQ vectors.
This will substantially compresses the available device vector space
from ~108 vectors to ~95 vectors, a ~12% reduction. RAR, under the
current device IRQ vector allocator, will effectively reduce the number
of vectors not by 1 vector, but by 13 vectors. This should be pointed
out in the changelog.
It probably doesn't matter much due to MSI multiplexing, but should
nevertheless be implemented correctly and should be documented.
Thanks,
Ingo
Powered by blists - more mailing lists