On 2023/07/12 16:30, lijiang wrote:
> On Fri, Jul 7, 2023 at 2:17 PM HAGIO KAZUHITO(萩尾 一仁) <k-hagio-ab@nec.com>
> wrote:
>
>> From: Kazuhito Hagio <k-hagio-ab@nec.com>
>>
>> Kernel commit 721255b982 ("genirq: Use a maple tree for interrupt
>> descriptor management"), which is contained in Linux 6.5-rc1 and later
>> kernels, replaced irq_desc_tree with a maple tree sparse_irqs.
>>
>>
> Thank you for the fix, Kazu. Only two comments:
>
> Without the patch, "irq [-a|-s]" options fails with an error, e.g. the
>> following on x86_64, on kernels configured with CONFIG_SPARSE_IRQS=y.
>>
>
> ^^^^^
>
> It should be "CONFIG_SPARSE_IRQ=y", the following code comment is right.
> Maybe it's a typo?
> + /* 6.5 and later: CONFIG_SPARSE_IRQ */
Yes, you are right. Will fix the commit log.
>> @@ -5419,8 +5421,8 @@ x86_64_get_irq_affinity(int irq)
>> static void
>> x86_64_show_interrupts(int irq, ulong *cpus)
>> {
>> - if (symbol_exists("irq_desc") ||
>> - kernel_symbol_exists("irq_desc_ptrs") ||
>>
>
> The check for kernel_symbol_exists("irq_desc_ptrs") is removed in this
> function, is that expected behavior? But the above two functions still
> retain the kernel_symbol_exists("irq_desc_ptrs") condition check.
ugh, thank you for pointing this out, I didn't intend to remove it.
Will fix this and post a v2.
In addition, I also saw that there is a similar case on IA64 arch, but I can not test it. Maybe leave it there?
static void
ia64_dump_irq(int irq)
{
if (symbol_exists("irq_desc") || symbol_exists("_irq_desc") ||
kernel_symbol_exists("irq_desc_ptrs")) {
machdep->dump_irq = generic_dump_irq;
return(generic_dump_irq(irq));
}
...
}
Thanks.
Lianbo