Re: [PATCH 1/2] genirq/msi, platform-msi: Adjust return value of msi_domain_prepare_irqs()

From: bibo, mao
Date: Thu Jun 01 2023 - 21:10:16 EST




在 2023/5/30 23:03, Thomas Gleixner 写道:
> On Tue, May 30 2023 at 16:34, Huacai Chen wrote:
>> On Tue, May 30, 2023 at 4:19 AM Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>>> Let's take a step back and look at the larger picture:
>>>
>>> 1) A PCI/MSI irqdomain is attached to a PCI bus
>>>
>>> 2) The number of PCI devices on that PCI bus is usually known at boot
>>> time _before_ the first device driver is probed.
>>>
>>> That's not entirely true for PCI hotplug devices, but that's hardly
>>> relevant for an architecture which got designed less than 10 years
>>> ago and the architects decided that 256 MSI vectors are good enough
>>> for up to 256 CPUs. The concept of per CPU queues was already known
>>> at that time, no?
>> Does this solution depend on the per-device msi domain? Can we do that
>> if we use the global msi domain?
>
> In principle it should not depend on per-device MSI domains, but I
> really don't want to add new functionality to the old operating models
> as that does not create an incentive for people to convert their stuff
> over.
>
>>> So the irqdomain can tell the PCI/MSI core the maximum number of vectors
>>> available for a particular bus, right?
>>>
>>> The default, i.e if the irqdomain does not expose that information,
>>> would be "unlimited", i.e. ULONG_MAX.
>> OK, thanks, but how to expose? By msi_domain_info::hwsize?
>
> Probably. Needs a proper helper around it.

It is not common issue, command line and documentation explanation
is not suitable here.

Can we add weak function like this?
int __weak arch_set_max_msix_vectors(void)

Regards
Bibo, mao
>
> Thanks,
>
> tglx