Hi,

I would like to renew the effort on Host Devices for Cockpit [1].

To move forward, let's implement it step by step while opening brand new PR picking just a subset of the already implemented functionality [1] while adjusted to generally acceptable form.

Initial implementation would meet:
- PCI support only
- initially read-only: just the List of devices by their Class (according to [2])
  - example: by Audio device, Ethernet Controller, etc

- data source: sysfs
- make use of backward-compatible lspci for data preprocessing (especially manipulation with HW database)
- monitor for changes by listening kernel uevents


Follow-ups will lead to [3] scope:
- for pci, active actions are allowed for selected device classes, one PR per each:
  - (un)bind VFIO driver
  - configure SR-IOV network cards
  - vGPU configuration

- additional view by Driver
  - What devices is the driver bound to?

- additional view by IOMMU Groups
  - For server fine-tuning, what devices are within single IOMMU Group?

- support for other buses, i.e. USB or SCSI
  - their views are independent on each other due to fundamental differences



Please let me know your thoughts.
Thanks,
Marek

[1] https://github.com/cockpit-project/cockpit/pull/5523
[2] http://pci-ids.ucw.cz/
[3] https://github.com/cockpit-project/cockpit/wiki/Feature:-Hardware-Devices


--

Marek Libra

senior software engineer

Red Hat Czech