單裝置

此 cxl-cli 配置轉儲顯示以下主機配置

  • 一個具有一個 CXL 根的單插槽系統

  • CXL 根有四 (4) 個 CXL 主機橋

  • 一個 CXL 主機橋連線了一個 CXL 記憶體擴充套件器

  • 不存在交錯。

此輸出由 cxl list -v 生成,並描述了 /sys/bus/cxl/devices/ 中暴露物件之間的關係。

[
  {
      "bus":"root0",
      "provider":"ACPI.CXL",
      "nr_dports":4,
      "dports":[
          {
              "dport":"pci0000:00",
              "alias":"ACPI0016:01",
              "id":0
          },
          {
              "dport":"pci0000:a8",
              "alias":"ACPI0016:02",
              "id":4
          },
          {
              "dport":"pci0000:2a",
              "alias":"ACPI0016:03",
              "id":1
          },
          {
              "dport":"pci0000:d2",
              "alias":"ACPI0016:00",
              "id":5
          }
      ],

此片段顯示 CXL “匯流排” (root0) 有 4 個下游埠連線到 CXL 主機橋。這個 可以被認為是連線到平臺記憶體控制器的單一上游埠——它將記憶體請求路由到該控制器。

這個 ports:root0 部分列出了每個下游埠的配置方式。如果埠未配置(ID 為 0、1 和 4),則會省略它們。

"ports:root0":[
    {
        "port":"port1",
        "host":"pci0000:d2",
        "depth":1,
        "nr_dports":3,
        "dports":[
            {
                "dport":"0000:d2:01.1",
                "alias":"device:02",
                "id":0
            },
            {
                "dport":"0000:d2:01.3",
                "alias":"device:05",
                "id":2
            },
            {
                "dport":"0000:d2:07.1",
                "alias":"device:0d",
                "id":113
            }
        ],

此片段顯示了與 CXL 主機橋 port1 相關聯的可用下游埠。在這種情況下,port1 有 3 個可用的下游埠:dport1dport2dport113

"endpoints:port1":[
    {
        "endpoint":"endpoint5",
        "host":"mem0",
        "parent_dport":"0000:d2:01.1",
        "depth":2,
        "memdev":{
            "memdev":"mem0",
            "ram_size":137438953472,
            "serial":0,
            "numa_node":0,
            "host":"0000:d3:00.0"
        },
        "decoders:endpoint5":[
            {
                "decoder":"decoder5.0",
                "resource":825975898112,
                "size":137438953472,
                "interleave_ways":1,
                "region":"region0",
                "dpa_resource":0,
                "dpa_size":137438953472,
                "mode":"ram"
            }
        ]
    }
],

此片段顯示了連線到主機橋 port1 的端點。

endpoint5 包含一個配置好的解碼器 decoder5.0,其交錯配置與 region0 相同(稍後顯示)。

接下來是屬於主機橋的解碼器

    "decoders:port1":[
        {
            "decoder":"decoder1.0",
            "resource":825975898112,
            "size":137438953472,
            "interleave_ways":1,
            "region":"region0",
            "nr_targets":1,
            "targets":[
                {
                    "target":"0000:d2:01.1",
                    "alias":"device:02",
                    "position":0,
                    "id":0
                }
            ]
        }
    ]
},

主機橋 port1 有一個單一解碼器 (decoder1.0),其唯一目標是 dport1 — 連線到 endpoint5

下一個片段顯示了三個沒有連線端點的 CXL 主機橋。

    {
        "port":"port2",
        "host":"pci0000:00",
        "depth":1,
        "nr_dports":2,
        "dports":[
            {
                "dport":"0000:00:01.3",
                "alias":"device:55",
                "id":2
            },
            {
                "dport":"0000:00:07.1",
                "alias":"device:5d",
                "id":113
            }
        ]
    },
    {
        "port":"port3",
        "host":"pci0000:a8",
        "depth":1,
        "nr_dports":1,
        "dports":[
            {
                "dport":"0000:a8:01.1",
                "alias":"device:c3",
                "id":0
            }
        ]
    },
    {
        "port":"port4",
        "host":"pci0000:2a",
        "depth":1,
        "nr_dports":1,
        "dports":[
            {
                "dport":"0000:2a:01.1",
                "alias":"device:d0",
                "id":0
            }
        ]
    }
],

接下來是屬於 root0根解碼器。此根解碼器是一個直通解碼器,因為 interleave_ways 設定為 1

此資訊由 CXL 驅動程式讀取 ACPI CEDT CMFWS 生成。

"decoders:root0":[
    {
        "decoder":"decoder0.0",
        "resource":825975898112,
        "size":137438953472,
        "interleave_ways":1,
        "max_available_extent":0,
        "volatile_capable":true,
        "nr_targets":1,
        "targets":[
            {
                "target":"pci0000:d2",
                "alias":"ACPI0016:00",
                "position":0,
                "id":5
            }
        ],

最後,我們有與 根解碼器 decoder0.0 關聯的 記憶體區域。此區域描述了與該獨立裝置關聯的離散區域。

              "regions:decoder0.0":[
                  {
                      "region":"region0",
                      "resource":825975898112,
                      "size":137438953472,
                      "type":"ram",
                      "interleave_ways":1,
                      "decode_state":"commit",
                      "mappings":[
                          {
                              "position":0,
                              "memdev":"mem0",
                              "decoder":"decoder5.0"
                          }
                      ]
                  }
              ]
          }
      ]
  }
]