Skip to content

[PW_SID:1141999] virt: bao: Add Bao hypervisor IPC and I/O dispatcher drivers - #2430

Open
linux-riscv-bot wants to merge 7 commits into
workflow__riscv__fixesfrom
pw1141999
Open

[PW_SID:1141999] virt: bao: Add Bao hypervisor IPC and I/O dispatcher drivers#2430
linux-riscv-bot wants to merge 7 commits into
workflow__riscv__fixesfrom
pw1141999

Conversation

@linux-riscv-bot

Copy link
Copy Markdown

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

Linux RISC-V bot and others added 7 commits August 7, 2026 03:32
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>
@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 117.46 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 1116.71 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1393.12 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 19.73 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 21.05 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 2.04 seconds
Result: WARNING
Output:

WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#26: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 67 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit 15fa64772622 ("dt-bindings: bao: add IPC shared-memory device") has style problems, please review.

NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 1 warnings, 0 checks, 67 lines checked
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?


@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 79.19 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.24 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
kdoc
Desc: Detects for kdoc errors
Duration: 0.73 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
module-param
Desc: Detect module_param changes
Duration: 0.24 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[RFC,v3,1/6] dt-bindings: bao: add IPC shared-memory device"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.76 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 124.48 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 1159.46 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1456.04 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 19.72 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 22.75 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 4.12 seconds
Result: WARNING
Output:

WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#46: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 355 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit 01c7023da5a0 ("virt: bao: add IPC shared-memory driver") has style problems, please review.

NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 1 warnings, 0 checks, 355 lines checked
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?


@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 78.96 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.54 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver"
kdoc
Desc: Detects for kdoc errors
Duration: 0.72 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver"
module-param
Desc: Detect module_param changes
Duration: 0.24 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[RFC,v3,2/6] virt: bao: add IPC shared-memory driver"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.22 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 4: "[RFC,v3,4/6] virt: bao: add I/O dispatcher driver"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 4: "[RFC,v3,4/6] virt: bao: add I/O dispatcher driver"
kdoc
Desc: Detects for kdoc errors
Duration: 0.75 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 4: "[RFC,v3,4/6] virt: bao: add I/O dispatcher driver"
module-param
Desc: Detect module_param changes
Duration: 0.24 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 4: "[RFC,v3,4/6] virt: bao: add I/O dispatcher driver"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.22 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 4: "[RFC,v3,4/6] virt: bao: add I/O dispatcher driver"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.26 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 117.24 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 808.55 seconds
Result: ERROR
Output:

Redirect to /build/tmp.W2DynYCIRS and /build/tmp.2chrY0vAHs
Tree base:
9b21011efbe9f ("virt: bao: add I/O dispatcher driver")
Building the whole tree with the patch
error:
error: the following would cause module name conflict:



real	13m19.580s
user	503m29.204s
sys	97m6.959s

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1126.13 seconds
Result: ERROR
Output:

Redirect to /build/tmp.e1jlfdYWRU and /build/tmp.m48DURJI35
Tree base:
9b21011efbe9f ("virt: bao: add I/O dispatcher driver")
Building the whole tree with the patch
error:
error: the following would cause module name conflict:



real	18m38.035s
user	679m36.812s
sys	115m56.067s

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 20.78 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 21.59 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 1.28 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 79.46 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
kdoc
Desc: Detects for kdoc errors
Duration: 0.71 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
module-param
Desc: Detect module_param changes
Duration: 0.88 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 5: "[RFC,v3,5/6] virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.25 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 117.57 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 806.96 seconds
Result: ERROR
Output:

Redirect to /build/tmp.VQdqd4GMod and /build/tmp.YsfPfzK8sA
Tree base:
869374939dec7 ("virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h")
Building the whole tree with the patch
error:
error: the following would cause module name conflict:



real	13m17.790s
user	503m1.650s
sys	97m6.680s

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1133.03 seconds
Result: ERROR
Output:

Redirect to /build/tmp.Y8EQNLnir9 and /build/tmp.uh6PlJYY6q
Tree base:
869374939dec7 ("virt: bao: consolidate the IPC hypercall ID in include/linux/bao.h")
Building the whole tree with the patch
error:
error: the following would cause module name conflict:



real	18m46.307s
user	680m29.728s
sys	116m15.560s

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 20.09 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 21.48 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 0.58 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 79.33 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.22 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
kdoc
Desc: Detects for kdoc errors
Duration: 0.77 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
module-param
Desc: Detect module_param changes
Duration: 0.26 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.21 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 6: "[RFC,v3,6/6] MAINTAINERS: add Bao hypervisor entry"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.25 seconds
Result: PASS

@linux-riscv-bot
linux-riscv-bot force-pushed the workflow__riscv__fixes branch from abf8962 to 9fa746d Compare August 8, 2026 18:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant