[patch 1/5] ARC: Remove GENERIC_PENDING_IRQ

Thomas Gleixner posted 5 patches 1 year ago
[patch 1/5] ARC: Remove GENERIC_PENDING_IRQ
Posted by Thomas Gleixner 1 year ago
Nothing uses the actual functionality and the MCIP controller sets the
flags which disables the deferred affinity change. The other interrupt
controller does not support affinity setting at all.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Vineet Gupta <vgupta@kernel.org>
---
 arch/arc/Kconfig       |    1 -
 arch/arc/kernel/mcip.c |    2 --
 kernel/irq/debugfs.c   |    1 +
 3 files changed, 1 insertion(+), 3 deletions(-)

--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -24,7 +24,6 @@ config ARC
 	# for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
 	select GENERIC_IRQ_SHOW
 	select GENERIC_PCI_IOMAP
-	select GENERIC_PENDING_IRQ if SMP
 	select GENERIC_SCHED_CLOCK
 	select GENERIC_SMP_IDLE_THREAD
 	select GENERIC_IOREMAP
--- a/arch/arc/kernel/mcip.c
+++ b/arch/arc/kernel/mcip.c
@@ -357,8 +357,6 @@ static void idu_cascade_isr(struct irq_d
 static int idu_irq_map(struct irq_domain *d, unsigned int virq, irq_hw_number_t hwirq)
 {
 	irq_set_chip_and_handler(virq, &idu_irq_chip, handle_level_irq);
-	irq_set_status_flags(virq, IRQ_MOVE_PCNTXT);
-
 	return 0;
 }
 
--- a/kernel/irq/debugfs.c
+++ b/kernel/irq/debugfs.c
@@ -53,6 +53,7 @@ static const struct irq_bit_descr irqchi
 	BIT_MASK_DESCR(IRQCHIP_SUPPORTS_NMI),
 	BIT_MASK_DESCR(IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND),
 	BIT_MASK_DESCR(IRQCHIP_IMMUTABLE),
+	BIT_MASK_DESCR(IRQCHIP_MOVE_DEFERRED),
 };
 
 static void
Re: [patch 1/5] ARC: Remove GENERIC_PENDING_IRQ
Posted by Vineet Gupta 1 year ago
On 12/10/24 02:34, Thomas Gleixner wrote:
> Nothing uses the actual functionality and the MCIP controller sets the
> flags which disables the deferred affinity change. The other interrupt
> controller does not support affinity setting at all.
>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Vineet Gupta <vgupta@kernel.org>

Acked-by: Vineet Gupta <vgupta@kernel.org>   # arch/arc/

> ---
>  arch/arc/Kconfig       |    1 -
>  arch/arc/kernel/mcip.c |    2 --
>  kernel/irq/debugfs.c   |    1 +
>  3 files changed, 1 insertion(+), 3 deletions(-)
>
> --- a/arch/arc/Kconfig
> +++ b/arch/arc/Kconfig
> @@ -24,7 +24,6 @@ config ARC
>  	# for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
>  	select GENERIC_IRQ_SHOW
>  	select GENERIC_PCI_IOMAP
> -	select GENERIC_PENDING_IRQ if SMP
>  	select GENERIC_SCHED_CLOCK
>  	select GENERIC_SMP_IDLE_THREAD
>  	select GENERIC_IOREMAP
> --- a/arch/arc/kernel/mcip.c
> +++ b/arch/arc/kernel/mcip.c
> @@ -357,8 +357,6 @@ static void idu_cascade_isr(struct irq_d
>  static int idu_irq_map(struct irq_domain *d, unsigned int virq, irq_hw_number_t hwirq)
>  {
>  	irq_set_chip_and_handler(virq, &idu_irq_chip, handle_level_irq);
> -	irq_set_status_flags(virq, IRQ_MOVE_PCNTXT);
> -
>  	return 0;
>  }
>  
> --- a/kernel/irq/debugfs.c
> +++ b/kernel/irq/debugfs.c
> @@ -53,6 +53,7 @@ static const struct irq_bit_descr irqchi
>  	BIT_MASK_DESCR(IRQCHIP_SUPPORTS_NMI),
>  	BIT_MASK_DESCR(IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND),
>  	BIT_MASK_DESCR(IRQCHIP_IMMUTABLE),
> +	BIT_MASK_DESCR(IRQCHIP_MOVE_DEFERRED),

I think this leaked in here, needs to be in patch 3/5

Cheers,
-Vineet

>  };
>  
>  static void
>

Re: [patch 1/5] ARC: Remove GENERIC_PENDING_IRQ
Posted by Thomas Gleixner 1 year ago
On Tue, Dec 10 2024 at 09:22, Vineet Gupta wrote:
> On 12/10/24 02:34, Thomas Gleixner wrote:
>> Nothing uses the actual functionality and the MCIP controller sets the
>>  
>> --- a/kernel/irq/debugfs.c
>> +++ b/kernel/irq/debugfs.c
>> @@ -53,6 +53,7 @@ static const struct irq_bit_descr irqchi
>>  	BIT_MASK_DESCR(IRQCHIP_SUPPORTS_NMI),
>>  	BIT_MASK_DESCR(IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND),
>>  	BIT_MASK_DESCR(IRQCHIP_IMMUTABLE),
>> +	BIT_MASK_DESCR(IRQCHIP_MOVE_DEFERRED),
>
> I think this leaked in here, needs to be in patch 3/5

Ooops. Yes.
[tip: irq/core] ARC: Remove GENERIC_PENDING_IRQ
Posted by tip-bot2 for Thomas Gleixner 11 months ago
The following commit has been merged into the irq/core branch of tip:

Commit-ID:     5d30d6ab8c65b6caf034892aa8ae29285d0a515f
Gitweb:        https://git.kernel.org/tip/5d30d6ab8c65b6caf034892aa8ae29285d0a515f
Author:        Thomas Gleixner <tglx@linutronix.de>
AuthorDate:    Tue, 10 Dec 2024 11:34:10 +01:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Wed, 15 Jan 2025 10:56:22 +01:00

ARC: Remove GENERIC_PENDING_IRQ

Nothing uses the actual functionality and the MCIP controller sets the
flags which disables the deferred affinity change. The other interrupt
controller does not support affinity setting at all.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Vineet Gupta <vgupta@kernel.org>   # arch/arc/
Link: https://lore.kernel.org/all/20241210103335.373392568@linutronix.de

---
 arch/arc/Kconfig       | 1 -
 arch/arc/kernel/mcip.c | 2 --
 2 files changed, 3 deletions(-)

diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index 5b24881..d1a97fe 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -24,7 +24,6 @@ config ARC
 	# for now, we don't need GENERIC_IRQ_PROBE, CONFIG_GENERIC_IRQ_CHIP
 	select GENERIC_IRQ_SHOW
 	select GENERIC_PCI_IOMAP
-	select GENERIC_PENDING_IRQ if SMP
 	select GENERIC_SCHED_CLOCK
 	select GENERIC_SMP_IDLE_THREAD
 	select GENERIC_IOREMAP
diff --git a/arch/arc/kernel/mcip.c b/arch/arc/kernel/mcip.c
index 55373ca..cdd370e 100644
--- a/arch/arc/kernel/mcip.c
+++ b/arch/arc/kernel/mcip.c
@@ -357,8 +357,6 @@ static void idu_cascade_isr(struct irq_desc *desc)
 static int idu_irq_map(struct irq_domain *d, unsigned int virq, irq_hw_number_t hwirq)
 {
 	irq_set_chip_and_handler(virq, &idu_irq_chip, handle_level_irq);
-	irq_set_status_flags(virq, IRQ_MOVE_PCNTXT);
-
 	return 0;
 }