-
Notifications
You must be signed in to change notification settings - Fork 11
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
Make IO asynchronous #90
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
heatd
force-pushed
the
pedro/async-io
branch
2 times, most recently
from
January 5, 2024 22:28
d445e5c
to
cca0025
Compare
They were old and unused code. Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
heatd
force-pushed
the
pedro/async-io
branch
2 times, most recently
from
January 5, 2024 22:58
3d6520b
to
79b495d
Compare
IO is now more prepared to be asynchronous. Some headers have been pulled apart. Signed-off-by: Pedro Falcato <[email protected]>
This makes most text editors (nano, bim) work well on the vterm with TERM=linux. irssi still has some issues. Signed-off-by: Pedro Falcato <[email protected]>
Waking the address while holding the inode spinlock will result in a deadlock, as wait_for callers (on the inode) will sometimes want to hold the inode lock. Signed-off-by: Pedro Falcato <[email protected]>
Oopsie. Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
This commit fixes up a variety of headers for C support on things such as filesystem drivers. It has a couple of hacks, and some stuff just isn't there yet (struct process, for one). Signed-off-by: Pedro Falcato <[email protected]>
The date calculation had lots of problems, and was giving out an extra day. Fix it, and add it to time.cpp instead of having it in PC's rtc driver. Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
heatd
force-pushed
the
pedro/async-io
branch
3 times, most recently
from
January 26, 2024 20:33
d6a69a0
to
2691d3a
Compare
Lots of hacks, and most functions will probably not be callable from C (due to missing extern "C"). Signed-off-by: Pedro Falcato <[email protected]>
With a fix for bio_submit_req_wait while we're at it. Signed-off-by: Pedro Falcato <[email protected]>
Add a page owner tracker that one can optionally enable during debug. Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
heatd
force-pushed
the
pedro/async-io
branch
from
February 12, 2024 03:05
d2755f2
to
50a924c
Compare
Replace errno usage in read_disk (and its callers) with expected<T, E>. Signed-off-by: Pedro Falcato <[email protected]>
No functional change. Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
This lets us generically merge bios into requests, which are essentially a list of bios for the same sector range (and the same OP) which drivers will be able to ingest instead of bios. Queue properties let us merge these and split these according to the underlying hardware. Signed-off-by: Pedro Falcato <[email protected]>
Add a .mailmap with myself (to rectify old author names) Signed-off-by: Pedro Falcato <[email protected]>
Spinlock was brought over from Carbon, and is old and unused. Signed-off-by: Pedro Falcato <[email protected]>
Add local_lock, a nice abstraction over preemption disabling and irq disabling. Signed-off-by: Pedro Falcato <[email protected]>
Make deferred completion use struct request, make io-queue use struct request, and convert nvme to it as an initial first step. Signed-off-by: Pedro Falcato <[email protected]>
heatd
force-pushed
the
pedro/async-io
branch
3 times, most recently
from
March 23, 2024 20:42
0b678f4
to
9541afb
Compare
Add blk_plug as in Linux fashion. This lets us plug up (related) IO requests in a hope to merge quite a few of them into one another. Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
If the fs is relatively unfragmented, plugging requests should have a really great effect in reducing the amount of tiny writes we do. Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Add BIO bouncing for devices that don't support 64-bit DMA, and primitive bio chaining. Signed-off-by: Pedro Falcato <[email protected]>
IDE ATA doesn't support 64-bit DMA. Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Add dma_boundary. Individual SGLs are not allowed to cross this. Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Signed-off-by: Pedro Falcato <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.