-
Notifications
You must be signed in to change notification settings - Fork 0
Add Bao IPC and I/O dispatcher drivers #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
DavidMCerdeira
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my review I realized there are several aspects of the implementation that might not be following Linux kernel programming best practices, though I've only read through the first 2 commits, and did not even finished the second one.
We should go over each function, particularly those that implement the user/kernel interface and validate that it's following the typical programming model/behavior.
bc2e1de to
e564d15
Compare
e564d15 to
2783f3c
Compare
|
@DavidMCerdeira I’ve just resolved all the issues mentioned. When you have some time, please review the remaining files. |
DavidMCerdeira
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
Obviously I did not minutely analyzed every line of code, but the code seems to be well structure and well written.
It's worth to consider my null ptr check point from a stability point of view, but otherwise I say it's ready for sending the patch to the mailing list
Let me know your thoughts
d1c0273 to
39df5b9
Compare
I’ve just fixed all those issues. I think it’s now ready for upstreaming! |
Enhance the coccicheck script to filter *.cocci files based on the
specified MODE (e.g., report, patch). This ensures that only compatible
semantic patch files are executed, preventing errors such as:
"virtual rule report not supported"
This error occurs when a .cocci file does not define a 'virtual <MODE>'
rule, yet is executed in that mode.
For example:
make coccicheck M=drivers/hwtracing/coresight/ MODE=report
In this case, running "secs_to_jiffies.cocci" would trigger the error
because it lacks support for 'report' mode. With this change, such files
are skipped automatically, improving robustness and developer
experience.
Signed-off-by: Songwei Chai <quic_songchai@quicinc.com>
Reviewed-by: Julia Lawall <Julia.Lawall@inria.fr>
s/Unecessary/Unnecessary/ Reviewed-by: Julia Lawall <julia.lawall@inria.fr> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
dd96388 to
2a89f3b
Compare
This patch introduces a device tree binding for the Bao IPC Shared Memory device, which enables communication between Bao hypervisor guests through dedicated shared-memory regions. Signed-off-by: João Peixoto <joaopeixoto@osyx.tech>
This driver provides an interface for guests running on the Bao hypervisor to communicate with each other through shared-memory channels. Each guest is assigned a dedicated read and write region defined in the device tree. Userspace can access these regions via standard read/write/mmap operations. Writes to the write region trigger a hypervisor notification through an architecture-specific hypercall (HVC on ARM, SBI ecall on RISC-V). Signed-off-by: João Peixoto <joaopeixoto@osyx.tech>
This patch introduces a device tree binding for the Bao I/O Dispatcher, a device used in backend VMs running virtualized devices (e.g., VirtIO). Signed-off-by: João Peixoto <joaopeixoto@osyx.tech>
Introduce the Bao I/O Dispatcher, a kernel module for Bao hypervisor guests that run virtualized devices (e.g., VirtIO). This driver is only required in backend VMs, which are responsible for performing the actual I/O operations on physical hardware. Frontend VMs, which only consume I/O services, do not require this device. The I/O Dispatcher provides access to one or more backend devices. Each backend device is associated with a contiguous shared-memory region used to exchange I/O buffers with the respective frontend driver, and an interrupt used by the Bao hypervisor to notify the backend VM of pending I/O requests. Signed-off-by: João Peixoto <joaopeixoto@osyx.tech>
Move the IPC shared-memory hypercall ID from architecture-specific headers into include/linux/bao.h. Signed-off-by: João Peixoto <joaopeixoto@osyx.tech>
…bindings Add MAINTAINERS entries for all the Bao hypervisor components. Signed-off-by: João Peixoto <joaopeixoto@osyx.tech>
2a89f3b to
c4ec09b
Compare
No description provided.