[PATCH v4 0/9] PCI support for UML

Johannes Berg johannes at sipsolutions.net
Fri Mar 5 12:19:50 GMT 2021


Changes since v3:
 - fix a circular build dependency in
   "um: expose time-travel mode to userspace side"

Chances since v2:
 - add "um: expose time-travel mode to userspace side"
   to simplify "um: time-travel/signals: fix ndelay() in interrupt"
 - rework "um: time-travel/signals: fix ndelay() in interrupt"
   a fair bit to fix bugs with time_travel_mode != TT_MODE_EXTERNAL
   when CONFIG_UML_TIME_TRAVEL_SUPPORT is enabled, and to clean up
   the code
 - no changes to the other patches

Changes since v1:
 - fix a memory leak in the PCI code
 - fix race in interrupt handling
 - fix checks in interrupt handling
 - use asm-generic for fb.h and vga.h
 - rediff against v5.12-rc1
 - export signals_enabled directly


Original description:

In order to simulate some devices and write tests completely
independent of real PCI devices, we continued the development
of time-travel and related bits, and are adding PCI support
here now.

The way it works is that it communicates with the outside (of
UML) with virtio, which we previously added using vhost-user,
and then offers a PCI bus to the inside system, where normal
PCI probing etc. happens, but all config space & IO accesses
are forwarded over virtio.

To enable that, add lib/logic_iomem, similar to logic_pio but
for iomem regions, this way, ioread/iowrite can be redirected
over the virtio device.

Since currently no official virtio device ID is assigned yet
a Kconfig option for that is required to be set to the value
you want to use locally for experimentation. Once we have an
official value we can change the default (currently -1 which
makes it non-functional) or remove the option entirely.

johannes






More information about the linux-um mailing list