From: Sunil V L <sunilvl@ventanamicro.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org,
linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org,
linux-serial@vger.kernel.org,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
"Rafael J . Wysocki" <rafael@kernel.org>,
Len Brown <lenb@kernel.org>, Bjorn Helgaas <bhelgaas@google.com>,
Anup Patel <anup@brainfault.org>,
Thomas Gleixner <tglx@linutronix.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jiri Slaby <jirislaby@kernel.org>,
Conor Dooley <conor.dooley@microchip.com>,
Andrew Jones <ajones@ventanamicro.com>,
Atish Kumar Patra <atishp@rivosinc.com>,
Haibo Xu <haibo1.xu@intel.com>
Subject: Re: [RFC PATCH v2 06/21] RISC-V: Kconfig: Select deferred GSI probe for ACPI systems
Date: Fri, 27 Oct 2023 18:25:03 +0530 [thread overview]
Message-ID: <ZTuzJ1nsicZYp+uh@sunil-laptop> (raw)
In-Reply-To: <20231026170408.GA1825378@bhelgaas>
On Thu, Oct 26, 2023 at 12:04:08PM -0500, Bjorn Helgaas wrote:
> On Thu, Oct 26, 2023 at 01:53:29AM +0530, Sunil V L wrote:
> > On RISC-V platforms, apart from root interrupt controllers (which
> > provide local interrupts and IPI), other interrupt controllers in the
> > hierarchy are probed late. Enable this select this CONFIG option for
> > RISC-V platforms so that device drivers which connect to deferred
> > interrupt controllers can take appropriate action.
>
> Quite a bit of this series seems related to the question of interrupt
> controllers being probed "late".
>
> I don't see anything specific about *how* late this might be, but from
> the use of -EPROBE_DEFER in individual drivers (8250_pnp explicitly,
> and acpi_register_gsi() and pnp_irq() and acpi_pci_irq_enable(), which
> are called from driver .probe() paths) it seems like interrupt
> controllers might be detected even after devices that use them.
>
> That seems like a fairly invasive change to the driver probe flow.
> If we really need to do that, I think it might merit a little more
> background as justification since we haven't had to do it for any
> other arch yet.
>
Hi Bjorn,
In RISC-V, the APLIC can be a converter from wired (GSI) to MSI interrupts.
Hence, especially in this mode, it has to be a platform device to use
device MSI domain. Also, according to Marc Zyngier there is no reason to
probe interrupt controllers early apart from root controller. So, the
device drivers which use wired interrupts need to be probed after APLIC.
The PNP devices and PCI INTx GSI links use either
acpi_dev_resource_interrupt() (PNP) or acpi_register_gsi() directly
(PCI). The approach taken here is to follow the example of
acpi_irq_get() which is enhanced to return EPROBE_DEFER and several
platform device drivers which use platform_get_irq() seem to be handling
this already.
Using ResourceSource dependency (mbigen uses) in the namespace as part of
Extended Interrupt Descriptor will not ensure the order since PNP/INTx
GSI devices don't work with that.
Is there any other better way to create dependency between IO devices
and the interrupt controllers when interrupt controller itself is a
platform device? While using core_initcall() for interrupt controllers
seem to work which forces the interrupt controller to be probed first,
Marc is not in favor of that approach since it is fragile.
Thanks a lot for your help with review and feedback!
Sunil
next prev parent reply other threads:[~2023-10-27 12:55 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-25 20:23 [RFC PATCH v2 00/21] RISC-V: ACPI: Add external interrupt controller support Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 01/21] arm64: PCI: Migrate ACPI related functions to pci-acpi.c Sunil V L
2023-10-26 16:31 ` Catalin Marinas
2023-10-25 20:23 ` [RFC PATCH v2 02/21] RISC-V: ACPI: Implement PCI related functionality Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 03/21] ACPI: Kconfig: Introduce new option to support deferred GSI probe Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 04/21] ACPI: irq: Add support for deferred probe in acpi_register_gsi() Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 05/21] pnp.h: Return -EPROBE_DEFER for disabled IRQ resource in pnp_irq() Sunil V L
2024-02-01 18:00 ` Rafael J. Wysocki
2024-02-02 8:48 ` Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 06/21] RISC-V: Kconfig: Select deferred GSI probe for ACPI systems Sunil V L
2023-10-26 17:04 ` Bjorn Helgaas
2023-10-27 12:55 ` Sunil V L [this message]
2023-11-06 22:16 ` Bjorn Helgaas
2023-11-08 9:53 ` Sunil V L
2023-11-08 18:36 ` Marc Zyngier
2023-11-22 12:22 ` Björn Töpel
2023-11-30 7:26 ` Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 07/21] serial: 8250_pnp: Add support for deferred probe Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 08/21] ACPI: pci_irq: Avoid warning for deferred probe in acpi_pci_irq_enable() Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 09/21] ACPI: scan.c: Add weak arch specific function to reorder the IRQCHIP probe Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 10/21] ACPI: RISC-V: Implement arch function to reorder irqchip probe entries Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 11/21] PCI: MSI: Add helper function to set system wide MSI support Sunil V L
2023-10-30 14:28 ` Thomas Gleixner
2023-10-30 17:54 ` Sunil V L
2023-10-30 19:29 ` Thomas Gleixner
2023-10-31 2:00 ` Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 12/21] PCI: pci-acpi.c: Return correct value from pcibios_alloc_irq() Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 13/21] irqchip: riscv-intc: Add ACPI support for AIA Sunil V L
2023-10-26 16:51 ` Bjorn Helgaas
2023-10-27 11:29 ` Sunil V L
2023-10-27 11:54 ` Sunil V L
2023-10-27 17:45 ` Thomas Gleixner
2023-11-06 11:35 ` Marc Zyngier
2023-10-25 20:23 ` [RFC PATCH v2 14/21] irqchip: riscv-imsic: Add ACPI support Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 15/21] irqchip: riscv-aplic: " Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 16/21] irqchip: irq-sifive-plic: " Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 17/21] ACPI: bus: Add RINTC IRQ model for RISC-V Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 18/21] irqchip: riscv-intc: Set ACPI irqmodel Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 19/21] ACPI: bus: Add acpi_riscv_init function Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 20/21] ACPI: RISC-V: Create APLIC platform device Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 21/21] ACPI: RISC-V: Create PLIC " Sunil V L
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZTuzJ1nsicZYp+uh@sunil-laptop \
--to=sunilvl@ventanamicro.com \
--cc=ajones@ventanamicro.com \
--cc=anup@brainfault.org \
--cc=aou@eecs.berkeley.edu \
--cc=atishp@rivosinc.com \
--cc=bhelgaas@google.com \
--cc=catalin.marinas@arm.com \
--cc=conor.dooley@microchip.com \
--cc=gregkh@linuxfoundation.org \
--cc=haibo1.xu@intel.com \
--cc=helgaas@kernel.org \
--cc=jirislaby@kernel.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-serial@vger.kernel.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=rafael@kernel.org \
--cc=tglx@linutronix.de \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox