Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ACS ¶
type ACS struct {
SrcValid bool `json:"src_valid"`
TransBlk bool `json:"trans_blk"`
ReqRedir bool `json:"req_redir"`
CmpltRedir bool `json:"cmplt_redir"`
UpstreamFwd bool `json:"upstream_fwd"`
EgressCtrl bool `json:"egress_ctrl"`
DirectTrans bool `json:"direct_trans"`
}
e.g., ACSCap: SrcValid+ TransBlk+ ReqRedir- CmpltRedir- UpstreamFwd+ EgressCtrl- DirectTrans- ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
type AccessControlService ¶
type AccessControlService struct {
ACSCap ACS `json:"acs_cap"`
// Access Control Service Control, useful to validate bare metal PCI config.
// e.g.,
// If this device sets SrcValid+ (SrcValid: true), then ACS is enabled:
// "IO virtualization (also known as VT-d or IOMMU) can interfere with GPU Direct
// by redirecting all PCI point-to-point traffic to the CPU root complex,
// causing a significant performance reduction or even a hang.
// If PCI switches have ACS enabled (on baremetal systems), it needs to be disabled."
// ref. https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting.html#pci-access-control-services-acs
ACSCtl ACS `json:"acs_ctl"`
}
type Device ¶
type Device struct {
// ID of the PCI device.
// e.g., "00:0e.0" in "00:0e.0 PCI ..."
ID string `json:"id"`
// Name that comes after the ID.
// e.g., "3D controller" in "00:0e.0 3D controller"
Name string `json:"name"`
// Access control service.
// e.g., Capabilities: [170 v1] Access Control Services
AccessControlService *AccessControlService `json:"access_control_service,omitempty"`
// Kernel driver in use.
// e.g., Kernel driver in use: pcieport
KernelDriverInUse string `json:"kernel_driver_in_use,omitempty"`
// Kernel modules.
// e.g., Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
KernelModules []string `json:"kernel_modules,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.