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

Document executors #142

Open
24 tasks
cevans87 opened this issue Sep 29, 2021 · 1 comment
Open
24 tasks

Document executors #142

cevans87 opened this issue Sep 29, 2021 · 1 comment
Assignees

Comments

@cevans87
Copy link

cevans87 commented Sep 29, 2021

(In progress)

Things that need to be addressed

  • io_uring
    • Calling io_uring_enter
      • During time slice
      • When actor needs more queue space
    • Reaping CQEs
      • By executor during time slice
      • By executor when running actor needs more queue space
    • Async cancel requests
      • May come from actors that have migrated to other executors
      • We must provide cancel as an API call on pending I/O
    • Multishot poll only allowed on pinned actor. It makes little sense and creates a lot of complexity to migrate an actor that has a multishot poll going.
  • Supervisors
    • Pinning actors
    • One-per-core strategy
    • NUMA grouping strategies
    • Big/Little CPU strategies
    • Other strategies used by Erlang
  • Executor state transitions
    • Not created
    • Idle
    • On
    • Off
  • Executor creation tuning variables
    • How conservative to be about creating new executors, e.g. on a scale of "never" to "whenever another executor asks" to "just create them all now".
@cevans87 cevans87 self-assigned this Sep 29, 2021
@cevans87
Copy link
Author

I'm going to keep updating the body. While writing what I have above, I realized I don't know how to cleanly io_uring_submit from an actor that is being cleaned up from another executor context, and I haven't solidified how to cleanly use the u64 bitmaps to do the SQE book-keeping.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant