On 24/04/20 14:34, Jon Doron wrote: > This is a rebase of the old patchset from Roman for HyperV VMBus > implementation. > > How to use: > -device vmbus-bridge > > Later on new paravirtualized devices can be implemented on top of it > (Network/SCSI/etc.) > > VMBus is a collection of technologies. At its lowest layer, it's a message > passing and signaling mechanism, allowing efficient passing of messages to and > from guest VMs. A layer higher, it's a mechanism for defining channels of > communication, where each channel is tagged with a type (which implies a > protocol) and a instance ID. A layer higher than that, it's a bus driver, > serving as the basis of device enumeration within a VM, where a channel can > optionally be exposed as a paravirtual device. When a server-side > (paravirtual > back-end) component wishes to offer a channel to a guest VM, it does so by > specifying a channel type, a mode, and an instance ID. VMBus then exposes > this > in the guest. > > More information about VMBus can be found in the file > vmbuskernelmodeclientlibapi.h in Microsoft's WDK. > > v4: > Decided to ditch the patch that envolves handling of EOM as there is > still a discussion going on with it in the KVM mailing list. > > v3: > Fixed an error asan > > v2: > Rebased on top of latest patchset from Roman and Maciej > > Jon Doron (6): > hyperv: expose API to determine if synic is enabled > vmbus: add vmbus protocol definitions > vmbus: vmbus implementation > i386:pc: whitelist dynamic vmbus-bridge > i386: Hyper-V VMBus ACPI DSDT entry > vmbus: add infrastructure to save/load vmbus requests > > Makefile.objs | 1 + > hw/hyperv/Kconfig | 5 + > hw/hyperv/Makefile.objs | 1 + > hw/hyperv/hyperv.c | 8 + > hw/hyperv/trace-events | 18 + > hw/hyperv/vmbus.c | 2778 ++++++++++++++++++++++++++++++ > hw/i386/acpi-build.c | 43 + > hw/i386/pc_piix.c | 2 + > hw/i386/pc_q35.c | 2 + > include/hw/hyperv/hyperv.h | 1 + > include/hw/hyperv/vmbus-bridge.h | 35 + > include/hw/hyperv/vmbus-proto.h | 222 +++ > include/hw/hyperv/vmbus.h | 230 +++ > 13 files changed, 3346 insertions(+) > create mode 100644 hw/hyperv/trace-events > create mode 100644 hw/hyperv/vmbus.c > create mode 100644 include/hw/hyperv/vmbus-bridge.h > create mode 100644 include/hw/hyperv/vmbus-proto.h > create mode 100644 include/hw/hyperv/vmbus.h >
Queued, thanks. I'll take a look at the EOM handling threads next. Paolo