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

Add a tracker for patches that have not yet been upstreamed #12

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
- [Backporting and stable/LTS releases](Backporting-and-stable-LTS-releases.md)
- [Third-party crates](Third-party-crates.md)
- [Out-of-tree modules](Out-of-tree-modules.md)
- [Existing patches and abstractions](Patch-registry.md)
- [Industry and academia support](Industry-and-academia-support.md)
- [Sponsors](Sponsors.md)

Expand Down
81 changes: 81 additions & 0 deletions src/Patch-registry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# RFL Patch Registry

This is an attempt to aggregate Rust abstractions for different areas of the
kernel that may not yet be available upstream, as well as some leaf drivers
and other implementations.

If you are working on something that requires a listed abstraction that is not
yet in-tree, or if you don't see something you need, it is a good idea to get
in touch [on Zulip](https://rust-for-linux.zulipchat.com/) or
[on the list](https://lore.kernel.org/rust-for-linux/) to verify the latest
status. Quite a few items are nearly ready to go, but have not been merged to
avoid adding dead code.

Usual status options are:

- `merged`: this patch has been merged to upstream and is usable in recent
versions of the kernel.
- `review`: this patchset has been submitted to the mailing list and is in a
nearly usable state, pending review or other blockers.
- `RFC`: this patchset is currently collecting feedback on the mailing list. It
is likely not too far off from being upstream ready, but may be blocked on
not having an in-tree usecase. (some patchsets that would otherwise be
`review` but do not have an in-tree usecase have been downgraded to `RFC`
even if not an `RFC patch`).
- `testing`: this patchset is generally considered good for further
experimentation and may have RFL review, but does not have review by relevant
maintainers.
- `experimental`: this patchset is a work in progress.
- `abandoned`: not recently maintained

Note that things change frequently and the information in this table may not
always be the latest.

| Target Area | Status | Author | Git Link | Mailing List Link |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting all the information together!

I wonder whether bullet points/lists are better than tables, at very least, we can group things belonging to the same subsystem together. For example:

Filesystem API

vfs

  • Depends on: folio
    ...

MM

folio

...

pages

...

Filesystem implementions

tarfs

  • Depends on: vfs
    ...

puzzle fs

...

Thoughts?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, I like the thought of having dependencies. Maybe it would be good to keep the main abstractions in a table for quick reading, but the drivers and implementations could be in a list format?

I'll play around with it a bit

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, tables are better for a quick look (or a rough picture of everything). However, I think people that use the information would probably do a search with key words, so it doesn't matter. Maybe a table for each large subsystem (like MM, filesystems, networking, drm, security, etc.)? But anyway, I don't have any problem with the current format, we can always improve the format of the information later ;-)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Up to you :) if you think it is ok to merge as-is, I can make a PR doing some updates. Maybe even just an extra column saying the subsystem then a second one saying exactly what it is could work

|---|---|---|---|---|
| crypto | RFC | Tomo | | <https://lore.kernel.org/rust-for-linux/[email protected]/> |
| debugfs | testing | Adam | <https://github.com/Rust-for-Linux/linux/pull/885> | |
| debugfs | experimental | Fabien | <https://github.com/Rust-for-Linux/linux/pull/1041> | |
| delay | testing | Tomo | <https://github.com/Rust-for-Linux/linux/pull/920> | |
| dma | testing | Tomo | <https://github.com/Rust-for-Linux/linux/pull/901> | |
| drm | RFC | Lina | | <https://lore.kernel.org/rust-for-linux/[email protected]/> |
| ethernet | testing | Amélie | <https://github.com/Rust-for-Linux/linux/pull/1014> | |
| file | RFC | Alice, Wedson | | <https://lore.kernel.org/rust-for-linux/[email protected]/> |
| fwnode | testing | Vinay | <https://github.com/Rust-for-Linux/linux/pull/925> | |
| i2c | testing | Finn | <https://github.com/Rust-for-Linux/linux/pull/946> | |
| io_pgtable | testing | Lina | <https://github.com/Rust-for-Linux/linux/pull/952/commits/f476b2b052165a40eed0a8fcb86b56f794ee62d8> | |
| io_resource | testing | Maciej | <https://github.com/Rust-for-Linux/linux/pull/682> | |
| jiffies | testing | Maria | <https://github.com/Rust-for-Linux/linux/pull/982> | |
| mm | | Alice, Wedson | <https://github.com/Darksonn/linux/commit/7ba95d4fc5a8442ef5eb428b64109116717f7e47> | |
| napi | testing | Amélie | <https://github.com/Rust-for-Linux/linux/pull/1018> | |
| net_device | RFC | Tomo | | <https://lore.kernel.org/netdev/[email protected]/> |
| null block | RFC | Andreas | | <https://lore.kernel.org/rust-for-linux/[email protected]/> |
| pci | testing | Tomo | <https://github.com/Rust-for-Linux/linux/pull/856> | |
| phy | review | Tomo | | <https://lore.kernel.org/rust-for-linux/[email protected]/> |
| pm_runtime | testing | Maciej | <https://github.com/Rust-for-Linux/linux/pull/700> | |
| puzzlefs | RFC | Ariel | | <https://lore.kernel.org/rust-for-linux/[email protected]/> |
| ramfs | abandoned | Fox | <https://github.com/Rust-for-Linux/linux/pull/409> | |
| rbtree | testing | | <https://github.com/Darksonn/linux/commit/edb94cbf99f6d35bca05e052e997542f07c085ab> | |
| regulator/consumer | experimental | Fabien | <https://github.com/Rust-for-Linux/linux/pull/1040> | |
| reset | testing | Nikos | <https://github.com/Rust-for-Linux/linux/pull/933> | |
| rtkit (apple) | testing | Lina | <https://github.com/Rust-for-Linux/linux/pull/952/commits/f7708d02efab0d96e56f78d7e6dfa56adc948ef4> | |
| scatterlist | RFC | Fox | | <https://lore.kernel.org/rust-for-linux/[email protected]/> |
| schedule | testing | Boqun | <https://github.com/Rust-for-Linux/linux/pull/861> | |
| sk_buf | RFC | Tomo | | <https://lore.kernel.org/netdev/[email protected]/> |
| socket | RFC | Michele | | <https://lore.kernel.org/rust-for-linux/[email protected]/> |
| spi | testing | Esteban | <https://github.com/Rust-for-Linux/linux/pull/264> | |
| tarfs | testing | Wedson | <https://github.com/Rust-for-Linux/linux/pull/1037> | |
| timer | testing | Maria | <https://github.com/Rust-for-Linux/linux/pull/982> | |
| thread | testing | Boqun | <https://github.com/Rust-for-Linux/linux/pull/109> | |
| usb | testing | Martin | <https://github.com/Rust-for-Linux/linux/pull/884> | |
| virtio | testing | Richard | <https://github.com/Rust-for-Linux/linux/pull/886> | |
| workqueue | merged | Alice | <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/rust/kernel/workqueue.rs> | <https://lore.kernel.org/rust-for-linux/[email protected]/> |
| v4l2 | review | Daniel | | <https://lore.kernel.org/rust-for-linux/[email protected]/> |
| vfs | RFC | Wedson | | <https://lore.kernel.org/rust-for-linux/[email protected]/#t> |
| xarray | RFC | Lina | | <https://lore.kernel.org/rust-for-linux/[email protected]/> |
| apple, various | testing | Lina | <https://github.com/Rust-for-Linux/linux/pull/964> | |

<!-- copy & paste me: | | | | | | -->

If you are working on something that is not on this list, feel free to submit a
PR to add it: <https://github.com/Rust-for-Linux/rust-for-linux.com>.