Customize the CXL System Topology UI
When Memory Viewer cannot automatically determine the server's topology, /etc/memverge/cxl_user_defined.json
can be used to correct the server topology information. This step is optional and should be used only if the UI is incorrectly representing the hardware topology.
When changes to the UI System Topology are required, copy the skeleton file /etc/memverge/cxl_user_defined.json.mv
to /etc/memverge/cxl_user_defined.json
and edit it.
$ sudo mv /etc/memverge/cxl_user_defined.json.mv /etc/memverge/cxl_user_defined.json
$ sudo vim /etc/memverge/cxl_user_defined.json
The skeleton file has the following contents showing two CXL devices:
$ sudo cat cxl_user_defined.json
[
{
"PCIBusID": "0000:df:00.0",
"PCIVendor": "MemVerge",
"BackingMemory": "DDR4",
"online":true,
"PCILinkWidth": 16,
"name": "mem0"
},
{
"PCIBusID": "0000:108:00.0",
"PCIVendor": "Samsung",
"UserDefinedField1": "UserDefinedVal1",
"UserDefinedFiled2": "UserDefinedVal2",
"PCIVendor": "Samsumg",
"online":true
}
]
Values in the cxl_user_defined.json
can be used to override the defaults or add additional CXL device information to the UI. The following table shows the variables that can be used to override the default auto-detected values. With the exception of PCIBusID
, all other variables are optional and are only required if the default value is incorrectly displayed in the UI. PCIBusID is used to identify which CXL device to apply the changes.
Variable | Overrides the Default | Data Type | Value Example | Description |
---|---|---|---|---|
online | Yes | Boolean | true | Specifies if the CXL device is ONLINE (true) or OFFLINE (false) |
PCIBusID | Yes | String | "0000:df:00.0" | [Required] Provides the Bus,Device,Function information |
PCIVendor | Yes | String | "CXLMemCo" | Specifies the CXL Device Vendor |
NUMANodeID | Yes | Integer | 2 | Specifies the NUMA Node ID if the device is in 'system-ram' mode |
name | Yes | String | "mem0" | Specifies the Kernel device name, eg: "mem0" |
mode | Yes | String | "system-ram" | Speficies the CXL Namespace Mode, eg: "devdax" or "system-ram" |
size | Yes | Integer | 137438953472 | Specifies the CXL Device Capacity in Bytes, eg: 137438953472 = 128 GiB |
PCILinkWidth | Yes | Integer | 8 | Specifies the number of PCIe Lanes used, eg: x4, x8, x16 |
CPUPackageID | Yes | Integer | 0 | Specifies which CPU Socket the CXL device is attached. |
Additional user-defined keys and values can be added. These fields will be shown in the hover over window for that device in the UI. The Key and Value are displayed as-is.
If the changes are not displayed in the browser UI, restart the mmmgr
service using:
If the changes still do not appear, see the 'Troubleshooting' section for more information.