Skip to content

Add initial support for multiple vCPUs #116

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

Closed
wants to merge 536 commits into from
Closed

Conversation

Ivan-Velickovic
Copy link
Collaborator

@Ivan-Velickovic Ivan-Velickovic commented Aug 19, 2024

It should be noted that multi-core virtual machines won't work yet because Microkit lacks support for it, but when Microkit does add support for pinning a virtual CPU to a particular core, there won't be any changes necessary to libvmm to enable multi-core guests.

Remaining TODOs:

  • Update manual
  • Update vGICv3 code for multiple vCPUs.
  • Add a test for multiple vCPUs.

Closes #4.

Ivan-Velickovic and others added 30 commits October 3, 2023 20:26
`stdbool.h` is technically missing, it's already included by users
of `dtb.h` which is why we have not seen a compiler error for it yet.
But, better to fix this now than later.
These logs should be errors rather than just normal logs as it is
a case that should not happen.
This is an example showing off the virtIO support of libvmm.
It currently only shows off the virtIO console device, with more
devices such as block and graphics to be added later.
For some reason building in ReleaseFast mode, `-Doptimize=ReleaseFast`
successfully boots Linux and lets us do serial input, but not debug
mode.

More investigation required.
0.12.0-dev.1533+b2ed2c4d4 was used.
It's unclear whether we actually do have UB somewhere in the C code. For
now we turn off UBSAN in order to have the example work in debug mode.
The build system was confusing and I couldn't get this working and gave
up. Now with some new build system documentation I could figure it out.
Having 'src/images/' was done before-hand since I wasn't familiar with
how to include files from 'images' in the VMM if they were outside the
'src' directory.
0.12.0-dev.1664+8ca4a5240 caused some breaking changes and so we
have to re-create libmicrokit.zig
Mainly for my own sake since I am very forgetful these days.
erichchan999 and others added 11 commits August 7, 2024 15:39
Signed-off-by: Ivan Velickovic <[email protected]>
Not needed anymore since we use Zig to cross-compile for user-space.

Signed-off-by: Ivan Velickovic <[email protected]>
Fixes for a bunch of block interface renames

Signed-off-by: Ivan Velickovic <[email protected]>
Fixed two issues I encountered when previously updating to the
latest rust-sel4 version.

There's still one remaining issue which prevents us from switching
to the mainline rust-sel4.

Signed-off-by: Ivan Velickovic <[email protected]>
* Make virq_controller_init for the vGIC register the vGIC region
  with the appropriate callbacks using the library's API instead of
  hard-coding it in the fault handling code.
* Don't use `BOARD_` defines, instead just use seL4 based defines
  since we eventually want the library to be Microkit agnostic.

Still not satisfied with the vGIC/fault handling code, there's still
lots of improvements to be made.

Signed-off-by: Ivan Velickovic <[email protected]>
For QEMU virt AArch64 and Odroid-C4, what we did in the past is take
the original DTS intended for booting Linux natively and adapt it to
work in a virtualised environment.

This patch gets those two platforms in line with the current convention
for other platforms and examples which is to have `linux.dts` be the
unmodified DTS from Linux source and then use the overlay to disable
certain devices, change the amount and address of RAM, etc.

Signed-off-by: Ivan Velickovic <[email protected]>
Signed-off-by: Ivan Velickovic <[email protected]>
Signed-off-by: Ivan Velickovic <[email protected]>
Signed-off-by: Ivan Velickovic <[email protected]>
Signed-off-by: Ivan Velickovic <[email protected]>
Signed-off-by: Ivan Velickovic <[email protected]>
Signed-off-by: Ivan Velickovic <[email protected]>
Signed-off-by: Ivan Velickovic <[email protected]>
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.

Adding support for guests with multiple VCPUs
6 participants