Message ID | 20200424123444.3481728-1-arilou@gmail.com |
---|---|
Headers | show |
Series | hyperv: VMBus implementation | expand |
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
On 21/05/2020, Paolo Bonzini wrote: >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 > Hi Paolo, there is no need to look at the EOM, we have scraped it as you can see in v4 :)
On 22/05/20 04:53, Jon Doron wrote: >>> >>> >> >> Queued, thanks. I'll take a look at the EOM handling threads next. >> >> Paolo >> > > Hi Paolo, there is no need to look at the EOM, we have scraped it as you > can see in v4 :) I mean in order to un-scrape it. :) Paolo