Skip to content

Feature: Hardware Devices

Marek Libra edited this page Sep 9, 2016 · 9 revisions

Goal

Provide list of machine devices along with basic service operations

Use cases

  • User wants to see what devices are available on the machine
  • User wants detach/reattach particular device, esp. for VFIO

Design

The design will be similar to the 'Services' screen, it means:

  • On top of the page, exactly 1 bus can be selected to be displayed (PCI, USB, SCSI, ...)
  • Bus-specific view is rendered, for
    • PCI: The Group-By Selector (either by Class or IOMMU Group)
      • by Class:
        • panels listing basic devices classes with >0 device count
          • (like 'Network controller (3)' or 'Display controller (1)')
        • panel body lists all devices of the class with details and buttons, expanding row to further details
        • special class for the Unclassified devices (might happen)
      • or by IOMMU Group
        • table with sorting and searching
    • other buses:
      • will be defined later but the presentation is bus-specific

Data Example

  • Device Class: Network controller, Display controller
  • IOMMU Group: numeric 0, 1, 2, ...
  • Device: RTL-8100/8101L/8139 PCI Fast Ethernet Adapter
  • Device Detail: vendor, product, driver, iommu group, class, pci address, capabilities or more

How To

  • sysfs as primary datasource
  • react/redux, probably no other libs will be needed
  • slow rate of change is expected - state refresh upon 60 secs timeout
  • new cockpit plugin will be added - accessed by 'Devices' from Cockpit't main menu
  • PCI device classes

Implementation Roadmap

  • list of pci devices in the by-Class hierarchy
  • add IOMMU Group view for pci devices
  • add active actions, namely detach/reattach to a driver
  • add support for other buses (like usb or scsi)

Open Issues

  • Are there any other use cases to consider?
Clone this wiki locally