[PW_SID:1141999] virt: bao: Add Bao hypervisor IPC and I/O dispatcher drivers - #2430
[PW_SID:1141999] virt: bao: Add Bao hypervisor IPC and I/O dispatcher drivers#2430linux-riscv-bot wants to merge 7 commits into
Conversation
Add the device-tree binding for the Bao hypervisor IPC shared-memory device, used by a Bao guest to exchange data with a peer guest over a shared-memory region. Co-developed-by: José Martins <jose@osyx.tech> Signed-off-by: José Martins <jose@osyx.tech> Co-developed-by: David Cerdeira <davidmcerdeira@osyx.tech> Signed-off-by: David Cerdeira <davidmcerdeira@osyx.tech> Signed-off-by: João Peixoto <jpeixoto@osyx.tech> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add a driver that lets guests running on the Bao static-partitioning hypervisor communicate through shared memory. Each guest is assigned a read and a write region within a shared-memory area described in the device tree. Userspace accesses the regions through a misc character device using read(), write() and mmap(). A write() notifies the peer guest through an architecture-specific hypercall (HVC on arm/arm64, SBI ecall on RISC-V). Co-developed-by: José Martins <jose@osyx.tech> Signed-off-by: José Martins <jose@osyx.tech> Co-developed-by: David Cerdeira <davidmcerdeira@osyx.tech> Signed-off-by: David Cerdeira <davidmcerdeira@osyx.tech> Signed-off-by: João Peixoto <jpeixoto@osyx.tech> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add the device-tree binding for the Bao I/O dispatcher, present in backend VMs that service paravirtualised (VirtIO) I/O on behalf of frontend guests. Co-developed-by: José Martins <jose@osyx.tech> Signed-off-by: José Martins <jose@osyx.tech> Co-developed-by: David Cerdeira <davidmcerdeira@osyx.tech> Signed-off-by: David Cerdeira <davidmcerdeira@osyx.tech> Signed-off-by: João Peixoto <jpeixoto@osyx.tech> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add the Bao I/O dispatcher, used by backend VMs to service I/O on behalf of frontend guests. It bridges Bao's Remote I/O mechanism to userspace VirtIO backend device models. Each backend device has a contiguous shared-memory region for exchanging I/O buffers with its frontend and an interrupt the hypervisor uses to signal pending requests. Userspace drives the dispatcher through a set of ioctls on a misc character device. Co-developed-by: José Martins <jose@osyx.tech> Signed-off-by: José Martins <jose@osyx.tech> Co-developed-by: David Cerdeira <davidmcerdeira@osyx.tech> Signed-off-by: David Cerdeira <davidmcerdeira@osyx.tech> Signed-off-by: João Peixoto <jpeixoto@osyx.tech> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The IPC shared-memory hypercall ID was passed as a parameter through each architecture's bao_ipcshmem_hypercall() and defined locally in ipcshmem.c. Define it once in include/linux/bao.h, next to the Remote I/O hypercall ID, and reference it directly from the arch helpers. As there is only one IPC hypercall, this also lets bao_ipcshmem_hypercall() drop its hypercall_id parameter. Signed-off-by: João Peixoto <jpeixoto@osyx.tech> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add a MAINTAINERS entry covering the Bao hypervisor drivers, the architecture headers, the in-kernel and UAPI headers, and the device-tree bindings. Signed-off-by: João Peixoto <jpeixoto@osyx.tech> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device" |
|
Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver" |
|
Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver" |
|
Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver" |
|
Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver" |
|
Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver" |
|
Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver" |
|
Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver" |
|
Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver" |
|
Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver" |
|
Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver" |
|
Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver" |
|
Patch 4: "[RFC,v3,4/6] virt: bao: add I/O dispatcher driver" |
|
Patch 4: "[RFC,v3,4/6] virt: bao: add I/O dispatcher driver" |
|
Patch 4: "[RFC,v3,4/6] virt: bao: add I/O dispatcher driver" |
|
Patch 4: "[RFC,v3,4/6] virt: bao: add I/O dispatcher driver" |
|
Patch 4: "[RFC,v3,4/6] virt: bao: add I/O dispatcher driver" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
|
Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry" |
abf8962 to
9fa746d
Compare
PR for series 1141999 applied to workflow__riscv__fixes
Name: virt: bao: Add Bao hypervisor IPC and I/O dispatcher drivers
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1141999
Version: 3