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

Create bootstrap executor with file I/O #155

Open
13 tasks
cevans87 opened this issue Oct 13, 2021 · 0 comments
Open
13 tasks

Create bootstrap executor with file I/O #155

cevans87 opened this issue Oct 13, 2021 · 0 comments
Assignees

Comments

@cevans87
Copy link

cevans87 commented Oct 13, 2021

This executor should be just enough to provide basic file I/O functionality to bootstrap/Basis.

  • Owns/manages an ioring
  • boostrap/Basis functions submit in the executor ioring
    • openat
    • read
    • write
    • seek
    • close
  • bootstrap/Basis receive function receives completed I/O functions
    • openat
    • read
    • write
    • seek
    • close

We're not implementing the actor mailbox yet, we only have one executor, and we also do not have time slice interrupts. Knowing that, we're making the following design decisions.

  • We malloc a space for CQEs to be copied to and use the pointer as the SQE user_data. Every time we see a CQE in the completion queue, we copy it to the memory location pointed to by the user_data field.
  • We only call io_uring_enter when we try to submit an SQE into a full submission queue, or when we block waiting for a completion.
  • We'll construct a global singleton executor and register an atexit handler to clean it up.
@cevans87 cevans87 changed the title Create bootstrap/basis executor Create bootstrap/Basis executor Oct 13, 2021
@cevans87 cevans87 changed the title Create bootstrap/Basis executor Create bootstrap executor with file I/O Oct 13, 2021
@cevans87 cevans87 self-assigned this Oct 13, 2021
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