2018-03-09 07:09:06

by Dou Liyang

[permalink] [raw]
Subject: irqdesc: Why the "__ref" is needed in __irq_alloc_descs() ?

Hi Maintainers,

I have a question about "__ref" in Linux kernel.

When I looked into the __irq_alloc_descs(), I found it tagged a
"__ref" mark, but I didn't find that it referenced code or data
from init section.

So, I confuse why the "__ref" is needed in __irq_alloc_descs()?
any other reasons?

And after I tested, seems "__ref" just puts the code into a different
section that is not checked by modpost. It does not affect the
performance whether it is tagged or not. Is it right?

Thanks,
dou.




2018-03-09 11:41:08

by Thomas Gleixner

[permalink] [raw]
Subject: Re: irqdesc: Why the "__ref" is needed in __irq_alloc_descs() ?

On Fri, 9 Mar 2018, Dou Liyang wrote:
> I have a question about "__ref" in Linux kernel.
>
> When I looked into the __irq_alloc_descs(), I found it tagged a
> "__ref" mark, but I didn't find that it referenced code or data
> from init section.

See the various

#define irq_alloc_desc*

variants. That will give you enough use cases from init.

> And after I tested, seems "__ref" just puts the code into a different
> section that is not checked by modpost. It does not affect the
> performance whether it is tagged or not. Is it right?

Well having code in a different section can cause performance issues, but
that only matters in a hotpath. irq_alloc_desc* is not performance critical
at all, so nothing to worry about.

Thanks,

tglx