Page MenuHomeFreeBSD

powerpc64: Ignore NVlink memory regions
ClosedPublic

Authored by breno.leitao_gmail.com on May 18 2018, 5:41 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Mar 20, 2:17 PM
Unknown Object (File)
Dec 20 2023, 1:24 AM
Unknown Object (File)
Dec 12 2023, 5:56 AM
Unknown Object (File)
Nov 16 2023, 7:11 PM
Unknown Object (File)
Sep 6 2023, 5:20 AM
Unknown Object (File)
Jun 24 2023, 4:35 AM
Unknown Object (File)
May 5 2023, 3:44 PM
Unknown Object (File)
Mar 5 2023, 3:49 AM
Subscribers

Details

Summary

On POWER9, there are entries in /memory@ which are not standard memory
regions.

These new memory entries are related to NVLINK and the recommend way to
check if this is a memory region that the OS should use
is parsing 'linux,usable-memory' property instead of 'reg'. In machine AC922, both properties has _different_ values in fact.

If you use these NVlink memory regions as standard memory regions, you
are going to hit a machine check exception (MCE) with DAR
~0xc00003fffffd7000 and dsisr = 0x8000.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 16675
Build 16580: arc lint + arc unit

Event Timeline

This looks good, even if the deice tree situation is a bit lamentable. Two questions:

  1. Is there a document describing this that we can reference?
  2. If this is just part of the PowerNV platform, maybe the code belongs in platform_powernv.c instead?
  1. Is there a document describing this that we can reference?

I was not able to find any documentation. Looking at the web, I found a patch[1] that documents it quickly in Linux, but it seems it was never accepted. I will ask internally.

  1. If this is just part of the PowerNV platform, maybe the code belongs in platform_powernv.c instead?

At this time, yes, but I am hearing about NVLink and GPU pass-through, so, it will not surprise me if it show up in pseries.

[1] https://patchwork.kernel.org/patch/9487597/

  1. Is there a document describing this that we can reference?

I was not able to find any documentation. Looking at the web, I found a patch[1] that documents it quickly in Linux, but it seems it was never accepted. I will ask internally.

Fascinating. It's how things work anyway, and the comment is good.

  1. If this is just part of the PowerNV platform, maybe the code belongs in platform_powernv.c instead?

At this time, yes, but I am hearing about NVLink and GPU pass-through, so, it will not surprise me if it show up in pseries.

Ah, right. Let's keep it here then.

[1] https://patchwork.kernel.org/patch/9487597/

This revision is now accepted and ready to land.May 18 2018, 6:14 PM