Skip to content
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

Tracking issue: Port RROS kernel onto Linux 6.6 #61

Open
4 tasks
shannmu opened this issue Oct 29, 2024 · 0 comments
Open
4 tasks

Tracking issue: Port RROS kernel onto Linux 6.6 #61

shannmu opened this issue Oct 29, 2024 · 0 comments

Comments

@shannmu
Copy link
Contributor

shannmu commented Oct 29, 2024

v6.6.y-rros-rebase tracing issue

What we have done

Now we have a branch named v6.6.y-rros-rebase, which rebases the v5.13-rros code onto linux 6.6.23.

What i did on this branch:

  1. Use v6.6.y from the linux-stable kernel tree as codebase

  2. Set the code's HEAD to Linux 6.6.23

  3. Apply the v6.6.y-linux-dovetail patch set

  4. Apply the Enable Rust support for AArch64 patchset

  5. Port rros kernel to Linux 6.6.23

    • Add rros kernel code

    • Add placeholder code in dovetail interface

    • Add rust wrapper code used in rros but not in the v6.6.y. For the rust wrapper code whose API used by rros has changed, I also copied the old version of the wrapper code and compiled them conditionally through CONFIG_RROS, including SpinLock, Mutex, WorkQueue, CondVar, Arc, Box, Error, ARef, module::module. All rust wrapper code not in linux-stable is also conditionally compiled with CONFIG_RROS(there may be omissions).

    • Add some features used in rros on Makefile.build

    • Make rust-analyzer parse rros code

    • Conditional compilation helper function

    • Fixed some code issues caused by Linux C code changes

      • Changes of the sb_buff structure and related functions
      • Some functions have been made inline
      • Changes of vm_area_struct

What we should do next

Guidelines about how to port rros kernel onto new r4l wrapper

NOTE: Ensure that each commit code is compilable and that the functionality of the entire PR passes the test

  1. Add a new config for which wrapper you want to port
    e.g. for SpinLock, add a CONFIG_RROS_SPINLOCK to replace CONFIG_RROS
  2. Remove the CONFIG_RROS_XXX and the unstable wrapper, and make the rros kernel compile
  3. Test rros kernel code by using libevl

Additional Information

I think we can use the code after this issue is closed as the codebase for the #48

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

No branches or pull requests

1 participant