From: Marc Zyngier <maz@kernel.org>
To: Sunil V L <sunilvl@ventanamicro.com>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
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: Wed, 08 Nov 2023 18:36:13 +0000 [thread overview]
Message-ID: <87leb85bz6.wl-maz@kernel.org> (raw)
In-Reply-To: <ZUtailOcozI9xIou@sunil-laptop>
On Wed, 08 Nov 2023 09:53:14 +0000,
Sunil V L <sunilvl@ventanamicro.com> wrote:
>
> That's partly correct. APLIC platform devices are created prior to PCI
> host bridges added. But the actual APLIC driver which creates the
> irqdomain will be probed as a regular platform driver for the APLIC
> device. The platform driver probe will happen using DD framework and
> devices don't have any dependency on APLIC which can cause device probe
> prior to APLIC driver probe.
>
> DT supports fw_devlink framework which makes it easier for IRQ devices
> to use regular platform drivers and produces-consumers are probed in the
> order without requiring drivers to do deferred probe. But I don't see
> that supported for ACPI framework. Also, the way PNP devices get added
> there is an assumption that interrupt controller is already setup fully.
>
> With this new use case in RISC-V, here are the alternatives I am aware of.
>
> 1) Use core_initcall() in the APLIC drivers which makes APLIC driver to
> be probed prior to PNP or PCI INTx devices. But this was ruled out in
> the context of DT from Marc.
>
> 2) Like the approach tried in this series, add support for deferred
> probe in drivers. This will be invasive change requiring many drivers to
> change like you pointed.
>
> I don't know which is less evil or if there is any other alternative
> which I am not aware of.
>
> Thomas/Marc, could you allow APLIC (and PLIC) irqchip drivers to use
> core_initcall() for ACPI?
I don't have a say about this anymore, so this is only a passing
comment, which you are free to cast aside.
My personal view is that if you need to rely on core_initcall() for a
particular firmware interface, then your architecture will end-up
being an unmaintainable ball of hacks, with conflicting requirements
and increasingly diverging behaviours. Those who had the 'privilege'
to deal with the 32bit ARM transition to DT will understand what I
mean.
Having to rely on initcalls can only mean two things:
- you're missing crucial topology information that will eventually
bite you where it hurts, and you're better off going back to the
drawing board to fix it before any HW ships,
- you're not making use of the kernel's dependency management
infrastructure, which is pretty sad. Yes, it is DT specific for now,
but nothing prevents you from improving it to make it grok another
firmware interface.
But as I said, I don't have much skin in that game anymore.
M.
--
Without deviation from the norm, progress is not possible.
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Sunil V L <sunilvl@ventanamicro.com>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
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: Wed, 08 Nov 2023 18:36:13 +0000 [thread overview]
Message-ID: <87leb85bz6.wl-maz@kernel.org> (raw)
In-Reply-To: <ZUtailOcozI9xIou@sunil-laptop>
On Wed, 08 Nov 2023 09:53:14 +0000,
Sunil V L <sunilvl@ventanamicro.com> wrote:
>
> That's partly correct. APLIC platform devices are created prior to PCI
> host bridges added. But the actual APLIC driver which creates the
> irqdomain will be probed as a regular platform driver for the APLIC
> device. The platform driver probe will happen using DD framework and
> devices don't have any dependency on APLIC which can cause device probe
> prior to APLIC driver probe.
>
> DT supports fw_devlink framework which makes it easier for IRQ devices
> to use regular platform drivers and produces-consumers are probed in the
> order without requiring drivers to do deferred probe. But I don't see
> that supported for ACPI framework. Also, the way PNP devices get added
> there is an assumption that interrupt controller is already setup fully.
>
> With this new use case in RISC-V, here are the alternatives I am aware of.
>
> 1) Use core_initcall() in the APLIC drivers which makes APLIC driver to
> be probed prior to PNP or PCI INTx devices. But this was ruled out in
> the context of DT from Marc.
>
> 2) Like the approach tried in this series, add support for deferred
> probe in drivers. This will be invasive change requiring many drivers to
> change like you pointed.
>
> I don't know which is less evil or if there is any other alternative
> which I am not aware of.
>
> Thomas/Marc, could you allow APLIC (and PLIC) irqchip drivers to use
> core_initcall() for ACPI?
I don't have a say about this anymore, so this is only a passing
comment, which you are free to cast aside.
My personal view is that if you need to rely on core_initcall() for a
particular firmware interface, then your architecture will end-up
being an unmaintainable ball of hacks, with conflicting requirements
and increasingly diverging behaviours. Those who had the 'privilege'
to deal with the 32bit ARM transition to DT will understand what I
mean.
Having to rely on initcalls can only mean two things:
- you're missing crucial topology information that will eventually
bite you where it hurts, and you're better off going back to the
drawing board to fix it before any HW ships,
- you're not making use of the kernel's dependency management
infrastructure, which is pretty sad. Yes, it is DT specific for now,
but nothing prevents you from improving it to make it grok another
firmware interface.
But as I said, I don't have much skin in that game anymore.
M.
--
Without deviation from the norm, progress is not possible.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Sunil V L <sunilvl@ventanamicro.com>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
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: Wed, 08 Nov 2023 18:36:13 +0000 [thread overview]
Message-ID: <87leb85bz6.wl-maz@kernel.org> (raw)
In-Reply-To: <ZUtailOcozI9xIou@sunil-laptop>
On Wed, 08 Nov 2023 09:53:14 +0000,
Sunil V L <sunilvl@ventanamicro.com> wrote:
>
> That's partly correct. APLIC platform devices are created prior to PCI
> host bridges added. But the actual APLIC driver which creates the
> irqdomain will be probed as a regular platform driver for the APLIC
> device. The platform driver probe will happen using DD framework and
> devices don't have any dependency on APLIC which can cause device probe
> prior to APLIC driver probe.
>
> DT supports fw_devlink framework which makes it easier for IRQ devices
> to use regular platform drivers and produces-consumers are probed in the
> order without requiring drivers to do deferred probe. But I don't see
> that supported for ACPI framework. Also, the way PNP devices get added
> there is an assumption that interrupt controller is already setup fully.
>
> With this new use case in RISC-V, here are the alternatives I am aware of.
>
> 1) Use core_initcall() in the APLIC drivers which makes APLIC driver to
> be probed prior to PNP or PCI INTx devices. But this was ruled out in
> the context of DT from Marc.
>
> 2) Like the approach tried in this series, add support for deferred
> probe in drivers. This will be invasive change requiring many drivers to
> change like you pointed.
>
> I don't know which is less evil or if there is any other alternative
> which I am not aware of.
>
> Thomas/Marc, could you allow APLIC (and PLIC) irqchip drivers to use
> core_initcall() for ACPI?
I don't have a say about this anymore, so this is only a passing
comment, which you are free to cast aside.
My personal view is that if you need to rely on core_initcall() for a
particular firmware interface, then your architecture will end-up
being an unmaintainable ball of hacks, with conflicting requirements
and increasingly diverging behaviours. Those who had the 'privilege'
to deal with the 32bit ARM transition to DT will understand what I
mean.
Having to rely on initcalls can only mean two things:
- you're missing crucial topology information that will eventually
bite you where it hurts, and you're better off going back to the
drawing board to fix it before any HW ships,
- you're not making use of the kernel's dependency management
infrastructure, which is pretty sad. Yes, it is DT specific for now,
but nothing prevents you from improving it to make it grok another
firmware interface.
But as I said, I don't have much skin in that game anymore.
M.
--
Without deviation from the norm, progress is not possible.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-11-08 18:37 UTC|newest]
Thread overview: 127+ 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 ` Sunil V L
2023-10-25 20:23 ` 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-25 20:23 ` Sunil V L
2023-10-25 20:23 ` Sunil V L
2023-10-26 16:31 ` Catalin Marinas
2023-10-26 16:31 ` Catalin Marinas
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 ` Sunil V L
2023-10-25 20:23 ` 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 ` Sunil V L
2023-10-25 20:23 ` 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 ` Sunil V L
2023-10-25 20:23 ` 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
2023-10-25 20:23 ` Sunil V L
2023-10-25 20:23 ` Sunil V L
2024-02-01 18:00 ` Rafael J. Wysocki
2024-02-01 18:00 ` Rafael J. Wysocki
2024-02-01 18:00 ` Rafael J. Wysocki
2024-02-02 8:48 ` Sunil V L
2024-02-02 8:48 ` Sunil V L
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-25 20:23 ` Sunil V L
2023-10-25 20:23 ` Sunil V L
2023-10-26 17:04 ` Bjorn Helgaas
2023-10-26 17:04 ` Bjorn Helgaas
2023-10-26 17:04 ` Bjorn Helgaas
2023-10-27 12:55 ` Sunil V L
2023-11-06 22:16 ` Bjorn Helgaas
2023-11-06 22:16 ` Bjorn Helgaas
2023-11-06 22:16 ` Bjorn Helgaas
2023-11-08 9:53 ` Sunil V L
2023-11-08 9:53 ` Sunil V L
2023-11-08 9:53 ` Sunil V L
2023-11-08 18:36 ` Marc Zyngier [this message]
2023-11-08 18:36 ` Marc Zyngier
2023-11-08 18:36 ` Marc Zyngier
2023-11-22 12:22 ` Björn Töpel
2023-11-22 12:22 ` Björn Töpel
2023-11-22 12:22 ` Björn Töpel
2023-11-30 7:26 ` Sunil V L
2023-11-30 7:26 ` Sunil V L
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 ` Sunil V L
2023-10-25 20:23 ` 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 ` Sunil V L
2023-10-25 20:23 ` 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 ` Sunil V L
2023-10-25 20:23 ` 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 ` Sunil V L
2023-10-25 20:23 ` 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-25 20:23 ` Sunil V L
2023-10-25 20:23 ` Sunil V L
2023-10-30 14:28 ` Thomas Gleixner
2023-10-30 14:28 ` Thomas Gleixner
2023-10-30 14:28 ` Thomas Gleixner
2023-10-30 17:54 ` Sunil V L
2023-10-30 17:54 ` Sunil V L
2023-10-30 17:54 ` Sunil V L
2023-10-30 19:29 ` Thomas Gleixner
2023-10-30 19:29 ` Thomas Gleixner
2023-10-30 19:29 ` Thomas Gleixner
2023-10-31 2:00 ` Sunil V L
2023-10-31 2:00 ` Sunil V L
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 ` Sunil V L
2023-10-25 20:23 ` 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-25 20:23 ` Sunil V L
2023-10-25 20:23 ` Sunil V L
2023-10-26 16:51 ` Bjorn Helgaas
2023-10-26 16:51 ` Bjorn Helgaas
2023-10-26 16:51 ` Bjorn Helgaas
2023-10-27 11:29 ` Sunil V L
2023-10-27 11:29 ` Sunil V L
2023-10-27 11:29 ` Sunil V L
2023-10-27 11:54 ` Sunil V L
2023-10-27 11:54 ` Sunil V L
2023-10-27 11:54 ` Sunil V L
2023-10-27 17:45 ` Thomas Gleixner
2023-10-27 17:45 ` Thomas Gleixner
2023-10-27 17:45 ` Thomas Gleixner
2023-11-06 11:35 ` Marc Zyngier
2023-11-06 11:35 ` Marc Zyngier
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 ` Sunil V L
2023-10-25 20:23 ` Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 15/21] irqchip: riscv-aplic: " Sunil V L
2023-10-25 20:23 ` Sunil V L
2023-10-25 20:23 ` 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 ` Sunil V L
2023-10-25 20:23 ` 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 ` Sunil V L
2023-10-25 20:23 ` 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 ` Sunil V L
2023-10-25 20:23 ` 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 ` Sunil V L
2023-10-25 20:23 ` 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 ` Sunil V L
2023-10-25 20:23 ` Sunil V L
2023-10-25 20:23 ` [RFC PATCH v2 21/21] ACPI: RISC-V: Create PLIC " Sunil V L
2023-10-25 20:23 ` Sunil V L
2023-10-25 20:23 ` Sunil V L
-- strict thread matches above, loose matches on Subject: below --
2023-10-30 23:41 [RFC PATCH v2 20/21] ACPI: RISC-V: Create APLIC " kernel test robot
2023-10-31 2:46 ` kernel test robot
2023-10-31 2:17 [RFC PATCH v2 21/21] ACPI: RISC-V: Create PLIC " kernel test robot
2023-10-31 2:48 ` kernel test robot
2023-11-01 12:36 [RFC PATCH v2 14/21] irqchip: riscv-imsic: Add ACPI support kernel test robot
2023-11-02 5:36 ` kernel test robot
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=87leb85bz6.wl-maz@kernel.org \
--to=maz@kernel.org \
--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=sunilvl@ventanamicro.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.