All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.