Open-sourcing PCIcrawler: A Python-based command-line interface tool to debug PCI issues at scale

What it is:

A Python-based command-line interface tool that can be used to display, filter, and export information about Peripheral Component Interconnect (PCI) or PCI Express (PCIe) buses and devices, as well as PCI topology. We built pcicrawler to diagnose and debug PCIe issues at scale and help with automation. 

What it does:

Pcicrawler provides vital information about any piece of computer hardware that plugs directly into a PCI slot on a server’s motherboard, such as network or graphics cards, hard disks, and SSDs. This information includes the PCIe address, path, vendor ID, device ID, class ID, subsystem vendor ID, VPD, subsystem device ID, end-point type, capable or current PCI width, and capable, current, or target PCI speed. It also specifies whether the hardware is PCI or PCIe.

As a debug tool, pcicrawler can be used to display the PCI topology in a visually pleasing, tree-like structure that makes visualization and debugging of issues related to hardware components of a server easier than legacy command-line interface tools like lspci. It provides machine-parsable output in the widely popular JSON data interchange format, which makes it easier to monitor hardware health and build scripts and automation at scale. Lightweight enough to not interfere with production services running on the servers, pcicrawler is efficient, reliable, robust, and proven to be safe to use at scale.

Why it matters:

Having a common tool makes it easier to understand problems and exchange data. Our tool can be used to monitor, diagnose, debug, and fix hardware issues like PCIe link width mismatches and PCIe link speed mismatches at scale. It can also be used to compare expected and existing hardware on the servers to highlight any discrepancies.

Built completely in Python 3, pcicrawler strives to conform to the latest PCI standards and works on almost all OCP/Linux platforms. It can be shared and used by different vendors, ODMs, OEMs, small companies, cloud service providers, and hyperscale companies.  

Get it on GitHub:

Pcicrawler

We’d like to thank all of the manufacturing quality and platform integration engineers who have contributed to pcicrawler.

 

Join Our Engineering Community

To help personalize content, tailor and measure ads, and provide a safer experience, we use cookies. By clicking or navigating the site, you agree to allow our collection of information on and off Facebook through cookies. Learn more, including about available controls: Cookies Policy