PCIe Queries

PCIe Queries#

AMD SMI: PCIe Queries
PCIe Queries

Functions

amdsmi_status_t amdsmi_get_gpu_pci_bandwidth (amdsmi_processor_handle processor_handle, amdsmi_pcie_bandwidth_t *bandwidth)
 Get the list of possible PCIe bandwidths that are available. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_bdf_id (amdsmi_processor_handle processor_handle, uint64_t *bdfid)
 Get the unique PCI device identifier associated for a device. More...
 
amdsmi_status_t amdsmi_get_gpu_topo_numa_affinity (amdsmi_processor_handle processor_handle, uint32_t *numa_node)
 Get the NUMA node associated with a device. More...
 
amdsmi_status_t amdsmi_get_gpu_pci_throughput (amdsmi_processor_handle processor_handle, uint64_t *sent, uint64_t *received, uint64_t *max_pkt_sz)
 Get PCIe traffic information. It is not supported on virtual machine guest. More...
 
amdsmi_status_t amdsmi_get_gpu_pci_replay_counter (amdsmi_processor_handle processor_handle, uint64_t *counter)
 Get PCIe replay counter. More...
 

Detailed Description

These functions provide information about PCIe.

Function Documentation

◆ amdsmi_get_gpu_pci_bandwidth()

amdsmi_status_t amdsmi_get_gpu_pci_bandwidth ( amdsmi_processor_handle  processor_handle,
amdsmi_pcie_bandwidth_t bandwidth 
)

Get the list of possible PCIe bandwidths that are available. It is not supported on virtual machine guest.

Given a processor handle processor_handle and a pointer to a to an amdsmi_pcie_bandwidth_t structure bandwidth, this function will fill in bandwidth with the possible T/s values and associated number of lanes, and indication of the current selection.

Parameters
[in]processor_handlea processor handle
[in,out]bandwidtha pointer to a caller provided amdsmi_pcie_bandwidth_t structure to which the frequency information will be written
Returns
amdsmi_status_t | AMDSMI_STATUS_SUCCESS on success, non-zero on fail

◆ amdsmi_get_gpu_bdf_id()

amdsmi_status_t amdsmi_get_gpu_bdf_id ( amdsmi_processor_handle  processor_handle,
uint64_t *  bdfid 
)

Get the unique PCI device identifier associated for a device.

Give a processor handle processor_handle and a pointer to a uint64_t bdfid, this function will write the Bus/Device/Function PCI identifier (BDFID) associated with device processor_handle to the value pointed to by bdfid.

The format of bdfid will be as follows:

BDFID = ((DOMAIN & 0xffffffff) << 32) | ((BUS & 0xff) << 8) |
                             ((DEVICE & 0x1f) <<3 ) | (FUNCTION & 0x7)
Name Field
Domain [64:32]
Reserved [31:16]
Bus [15: 8]
Device [ 7: 3]
Function [ 2: 0]
Parameters
[in]processor_handlea processor handle
[in,out]bdfida pointer to uint64_t to which the device bdfid value will be written If this parameter is nullptr, this function will return AMDSMI_STATUS_INVAL if the function is supported with the provided, arguments and AMDSMI_STATUS_NOT_SUPPORTED if it is not supported with the provided arguments.
Returns
amdsmi_status_t | AMDSMI_STATUS_SUCCESS on success, non-zero on fail

◆ amdsmi_get_gpu_topo_numa_affinity()

amdsmi_status_t amdsmi_get_gpu_topo_numa_affinity ( amdsmi_processor_handle  processor_handle,
uint32_t *  numa_node 
)

Get the NUMA node associated with a device.

Given a processor handle processor_handle and a pointer to a uint32_t numa_node, this function will retrieve the NUMA node value associated with device processor_handle and store the value at location pointed to by numa_node.

Parameters
[in]processor_handlea processor handle
[in,out]numa_nodepointer to location where NUMA node value will be written. If this parameter is nullptr, this function will return AMDSMI_STATUS_INVAL if the function is supported with the provided, arguments and AMDSMI_STATUS_NOT_SUPPORTED if it is not supported with the provided arguments.
Returns
amdsmi_status_t | AMDSMI_STATUS_SUCCESS on success, non-zero on fail

◆ amdsmi_get_gpu_pci_throughput()

amdsmi_status_t amdsmi_get_gpu_pci_throughput ( amdsmi_processor_handle  processor_handle,
uint64_t *  sent,
uint64_t *  received,
uint64_t *  max_pkt_sz 
)

Get PCIe traffic information. It is not supported on virtual machine guest.

Give a processor handle processor_handle and pointers to a uint64_t's, sent, received and max_pkt_sz, this function will write the number of bytes sent and received in 1 second to sent and received, respectively. The maximum possible packet size will be written to max_pkt_sz.

Parameters
[in]processor_handlea processor handle
[in,out]senta pointer to uint64_t to which the number of bytes sent will be written in 1 second. If pointer is NULL, it will be ignored.
[in,out]receiveda pointer to uint64_t to which the number of bytes received will be written. If pointer is NULL, it will be ignored.
[in,out]max_pkt_sza pointer to uint64_t to which the maximum packet size will be written. If pointer is NULL, it will be ignored.
Returns
amdsmi_status_t | AMDSMI_STATUS_SUCCESS on success, non-zero on fail

◆ amdsmi_get_gpu_pci_replay_counter()

amdsmi_status_t amdsmi_get_gpu_pci_replay_counter ( amdsmi_processor_handle  processor_handle,
uint64_t *  counter 
)

Get PCIe replay counter.

Given a processor handle processor_handle and a pointer to a uint64_t counter, this function will write the sum of the number of NAK's received by the GPU and the NAK's generated by the GPU to memory pointed to by counter.

Parameters
[in]processor_handlea processor handle
[in,out]countera pointer to uint64_t to which the sum of the NAK's received and generated by the GPU is written If this parameter is nullptr, this function will return AMDSMI_STATUS_INVAL if the function is supported with the provided, arguments and AMDSMI_STATUS_NOT_SUPPORTED if it is not supported with the provided arguments.
Returns
amdsmi_status_t | AMDSMI_STATUS_SUCCESS on success, non-zero on fail