* memory_failure_dev_pagemap() missing from System.map file
@ 2018-12-19 2:49 Jane Chu
2018-12-19 2:57 ` Dan Williams
0 siblings, 1 reply; 5+ messages in thread
From: Jane Chu @ 2018-12-19 2:49 UTC (permalink / raw)
To: Dan Williams; +Cc: linux-nvdimm
Hi, Dan,
While looking at a kernel Oops in the PMEM poison handling code path,
I noticed that memory_failure_dev_pagemap() is missing from the
System.map file in the 4.19 build.
Are you aware of this?
Regards,
-jane
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: memory_failure_dev_pagemap() missing from System.map file
2018-12-19 2:49 memory_failure_dev_pagemap() missing from System.map file Jane Chu
@ 2018-12-19 2:57 ` Dan Williams
2018-12-19 4:52 ` Jane Chu
0 siblings, 1 reply; 5+ messages in thread
From: Dan Williams @ 2018-12-19 2:57 UTC (permalink / raw)
To: Jane Chu; +Cc: linux-nvdimm
On Tue, Dec 18, 2018 at 6:50 PM Jane Chu <jane.chu@oracle.com> wrote:
>
> Hi, Dan,
>
> While looking at a kernel Oops in the PMEM poison handling code path,
> I noticed that memory_failure_dev_pagemap() is missing from the
> System.map file in the 4.19 build.
Are you talking about a generic upstream 4.19 build or some other kernel?
> Are you aware of this?
I would expect this to be the case in general for functions that are
inlined. In this case I would expect memory_failure() to show up in
System.map, but not memory_failure_dev_pagemap() since it's not
exported and nothing outside mm/memory_failure.c consumes it.
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: memory_failure_dev_pagemap() missing from System.map file
2018-12-19 2:57 ` Dan Williams
@ 2018-12-19 4:52 ` Jane Chu
2018-12-19 5:03 ` Dan Williams
0 siblings, 1 reply; 5+ messages in thread
From: Jane Chu @ 2018-12-19 4:52 UTC (permalink / raw)
To: Dan Williams; +Cc: linux-nvdimm
On 12/18/2018 6:57 PM, Dan Williams wrote:
> On Tue, Dec 18, 2018 at 6:50 PM Jane Chu <jane.chu@oracle.com> wrote:
>> Hi, Dan,
>>
>> While looking at a kernel Oops in the PMEM poison handling code path,
>> I noticed that memory_failure_dev_pagemap() is missing from the
>> System.map file in the 4.19 build.
> Are you talking about a generic upstream 4.19 build or some other kernel?
Generic upstream 4.19 build.
>> Are you aware of this?
> I would expect this to be the case in general for functions that are
> inlined. In this case I would expect memory_failure() to show up in
> System.map, but not memory_failure_dev_pagemap() since it's not
> exported and nothing outside mm/memory_failure.c consumes it.
Not appear inlined, it is statically declared, refer to
https://elixir.bootlin.com/linux/v4.19.10/ident/memory_failure_dev_pagemap
hwpoison_user_mappings() is also statically declared, and it's in System.map.
thanks,
-jane
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: memory_failure_dev_pagemap() missing from System.map file
2018-12-19 4:52 ` Jane Chu
@ 2018-12-19 5:03 ` Dan Williams
2018-12-19 18:54 ` Jane Chu
0 siblings, 1 reply; 5+ messages in thread
From: Dan Williams @ 2018-12-19 5:03 UTC (permalink / raw)
To: Jane Chu; +Cc: linux-nvdimm
On Tue, Dec 18, 2018 at 8:52 PM Jane Chu <jane.chu@oracle.com> wrote:
>
> On 12/18/2018 6:57 PM, Dan Williams wrote:
>
> On Tue, Dec 18, 2018 at 6:50 PM Jane Chu <jane.chu@oracle.com> wrote:
>
> Hi, Dan,
>
> While looking at a kernel Oops in the PMEM poison handling code path,
> I noticed that memory_failure_dev_pagemap() is missing from the
> System.map file in the 4.19 build.
>
> Are you talking about a generic upstream 4.19 build or some other kernel?
>
> Generic upstream 4.19 build.
>
> Are you aware of this?
>
> I would expect this to be the case in general for functions that are
> inlined. In this case I would expect memory_failure() to show up in
> System.map, but not memory_failure_dev_pagemap() since it's not
> exported and nothing outside mm/memory_failure.c consumes it.
>
> Not appear inlined, it is statically declared, refer to
> https://elixir.bootlin.com/linux/v4.19.10/ident/memory_failure_dev_pagemap
>
> hwpoison_user_mappings() is also statically declared, and it's in System.map.
Right, but static functions are optionally inlined by the compiler, so
it's hit and miss. If you need memory_failure_dev_pagemap() to show in
System.map the only guaranteed ways are to mark it extern so the
compiler assumes it needs to emit a dedicated symbol for it, or leave
it static and mark it nolinline, i.e. __attribute__((__noinline__))
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: memory_failure_dev_pagemap() missing from System.map file
2018-12-19 5:03 ` Dan Williams
@ 2018-12-19 18:54 ` Jane Chu
0 siblings, 0 replies; 5+ messages in thread
From: Jane Chu @ 2018-12-19 18:54 UTC (permalink / raw)
To: Dan Williams; +Cc: linux-nvdimm
On 12/18/2018 9:03 PM, Dan Williams wrote:
> On Tue, Dec 18, 2018 at 8:52 PM Jane Chu <jane.chu@oracle.com> wrote:
>> On 12/18/2018 6:57 PM, Dan Williams wrote:
>>
>> On Tue, Dec 18, 2018 at 6:50 PM Jane Chu <jane.chu@oracle.com> wrote:
>>
>> Hi, Dan,
>>
>> While looking at a kernel Oops in the PMEM poison handling code path,
>> I noticed that memory_failure_dev_pagemap() is missing from the
>> System.map file in the 4.19 build.
>>
>> Are you talking about a generic upstream 4.19 build or some other kernel?
>>
>> Generic upstream 4.19 build.
>>
>> Are you aware of this?
>>
>> I would expect this to be the case in general for functions that are
>> inlined. In this case I would expect memory_failure() to show up in
>> System.map, but not memory_failure_dev_pagemap() since it's not
>> exported and nothing outside mm/memory_failure.c consumes it.
>>
>> Not appear inlined, it is statically declared, refer to
>> https://elixir.bootlin.com/linux/v4.19.10/ident/memory_failure_dev_pagemap
>>
>> hwpoison_user_mappings() is also statically declared, and it's in System.map.
> Right, but static functions are optionally inlined by the compiler, so
> it's hit and miss. If you need memory_failure_dev_pagemap() to show in
> System.map the only guaranteed ways are to mark it extern so the
> compiler assumes it needs to emit a dedicated symbol for it, or leave
> it static and mark it nolinline, i.e. __attribute__((__noinline__))
So that's what was missing in my understanding, thanks a lot for taking
the time explaining it!
-jane
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-12-19 18:54 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-19 2:49 memory_failure_dev_pagemap() missing from System.map file Jane Chu
2018-12-19 2:57 ` Dan Williams
2018-12-19 4:52 ` Jane Chu
2018-12-19 5:03 ` Dan Williams
2018-12-19 18:54 ` Jane Chu
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.