Skip to content

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:

$ sudo systemctl restart mmmgr

If the changes still do not appear, see the 'Troubleshooting' section for more information.