Eliot Moss wrote:
> Dear NVDimm folk:
>
> I write concerning ndctl verion 72.1+ running on Ubuntu 22.04 (Linux
> 5.15.0-41-generic x86_64).
>
> The system is a brand new two socket Dell server with cpu model Xeon GOld 6346
> and 4 Tb of Optane DC P200 memory.
>
> I am able to ue ndctl to configure the two regions with one namespace each in
> fsdax mode. Here is what ndctl list --namespaces -R prints:
>
> {
> "regions":[
> {
> "dev":"region1",
> "size":2177548419072,
> "align":16777216,
> "available_size":0,
> "max_available_extent":0,
> "type":"pmem",
> "iset_id":-953140445588584312,
> "persistence_domain":"memory_controller",
> "namespaces":[
> {
> "dev":"namespace1.0",
> "mode":"fsdax",
> "map":"dev",
> "size":2143522127872,
> "uuid":"ed74879e-4eb6-4f88-bb7f-ae018d659720",
> "sector_size":512,
> "align":2097152,
> "blockdev":"pmem1",
> "name":"namespace1"
> }
> ]
> },
> {
> "dev":"region0",
> "size":2177548419072,
> "align":16777216,
> "available_size":0,
> "max_available_extent":0,
> "type":"pmem",
> "iset_id":-3109801715871676280,
> "persistence_domain":"memory_controller",
> "namespaces":[
> {
> "dev":"namespace0.0",
> "mode":"fsdax",
> "map":"dev",
> "size":2143522127872,
> "uuid":"64c75dc0-3d7a-4ac0-8698-8914e67b18db",
> "sector_size":512,
> "align":2097152,
> "blockdev":"pmem0",
> "name":"namespace0"
> }
> ]
> }
> ]
> }
>
> What concerns me is that it shows "persistence_domain":"memory_controller"
> when I think it should show the persistence domain as "cpu_cache", since this
> system is supposed to support eADR.
This is determined by:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/acpi/nfit/core.c?h=v5.15#n3022
The first thing to check is whether your ACPI tables have that bit set,
where that flag is coming from this table:
https://uefi.org/specs/ACPI/6.4/05_ACPI_Software_Programming_Model/ACPI_Software_Programming_Model.html#platform-capabilities-structure
You can dump the table with the acpica-tools (acpidump and iasl). Some
examples of how to extract and disassemble a table is here (see the
usage of iasl in the "how does it work" section):
https://docs.kernel.org/admin-guide/acpi/initrd_table_override.html
> I wondered if maybe I needed the very latest version of ndctl for it to print
> that, but I cannot build it. I did my best to obtain the pre-reqs -- they
> mostly have different names under Ubunut -- but the first meson command,
> "meson setup build" hangs and if I then try the compile step it complains.
ndctl is just packaging up the kernel's sysfs attribute data into JSON.
That data is coming direct from:
/sys/bus/devices/nd/$region/persistence_domain
> I am hoping someone here might be able to shed light on how I can verify that
> this system does support persistence_domain cpu_cache, or if something needs
> to be enabled or turned on, etc. I have also gotten my Dell sales rep to
> contact the Dell product engineers about this, but have not yet heard back.
I can't help on that side, but if you do get a contact I expect the
acpidump result from above will be useful.
> Thanks for any light you might shed on either issue ...
>
> Regards - Eliot Moss
> Professor Emeritus, Computer and Information Sciences
> Univ of Massachusetts Amherst
>