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

Lower and analyze all the flavors of the RCU API #36

Open
PappasBrent opened this issue Jun 18, 2024 · 0 comments
Open

Lower and analyze all the flavors of the RCU API #36

PappasBrent opened this issue Jun 18, 2024 · 0 comments
Assignees
Labels
kernelize Lowering Linux kernel macros down to MLIR priority:medium Medium-priority tasks

Comments

@PappasBrent
Copy link
Collaborator

The RCU API comes in a variety of "flavors", and each flavor offers its own slightly different form of some of the core RCU functions/macros, and some flavors offer completely unique functions/macros that others don't (e.g., only the bh flavor offers the local_bh_disable() and local_bh_enable() functions.

Right now we mostly lower and analyze the base flavor to MLIR, but we should lower and analyze all of them.
Since all the flavors have so much in common, we should try to find an abstraction to make it easier to implement them.
Some ideas are

  • Define an abstract base class for each RCU function and define concrete inheriting classes for each flavor that implements that function.
  • Define an RCU flavor class and add each RCU function it offers as a component.
@PappasBrent PappasBrent added priority:medium Medium-priority tasks kernelize Lowering Linux kernel macros down to MLIR labels Jun 18, 2024
@PappasBrent PappasBrent self-assigned this Jun 18, 2024
@PappasBrent PappasBrent changed the title Lower all the flavors of the RCU API Lower and analyze all the flavors of the RCU API Jun 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kernelize Lowering Linux kernel macros down to MLIR priority:medium Medium-priority tasks
Projects
None yet
Development

No branches or pull requests

1 participant