-
Notifications
You must be signed in to change notification settings - Fork 5
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
refactor all tasklet users into other APIs #94
Comments
@kees Can I get this issue assigned to me. I am in the process of rebasing the changes and will send a few out subsystem wise. |
Sure! I can't figure out why folks can't do self-assignment in this tracker. Hmmm |
Hi! Any progress on doing this refactoring? What do some conversion examples look like? |
@kees I have most of it ready, couple of subsystems and they should be ready for review. Also, since we are completely removing tasklets and moving to either workqueue or threaded interrupts(in some cases), Eg:
Instead, I was thinking of having a function like from_wq() similar to from_tasklet() which would #define from_wq(var, callback_wq, wq_fieldname) |
Yay! That's excellent. Do you have a tree we can link to from this issue? And since it seems Linus was not excited about the |
Sure, I will rebase all the changes and push it out. Thanks. I will drop the wrapper. |
I have pushed a branch which will contain the series(cleanup): Will have other sub-systems pushed in a couple of days. |
Nice! Did you do this with coccinelle or manually? Maybe send this one as-is to get any feedback that might be useful for the other subsystems? |
The tasklet is an old API which will be deprecated, workqueue API cab be used instead of them. This patch replaces the tasklet usage in drivers/dma/* with a simple work. Github: KSPP#94 Signed-off-by: Allen Pais <apais@linux.microsoft.com>
@kees It was manual as not all drivers are converted to use workqueues. Some are using threaded_irq. I have send out the first series for review: Networking has the biggest set of changes, which I have split into small sets which makes it easier for the maintainer to review/merge. Changes on the rest of the sub-systems are fairly small and could be carried as a single patch(hopefully). |
Attention has returned to tasklets! |
Thank Kees. Yes, I have been working with Tejun and have the series tested. The next steps are planned and am working on getting the RFC ready. |
Status of conversions(02/21/2024): https://github.com/allenpais/for-6.9-bh-conversions 0001-dma-Convert-from-tasklet-to-BH-workqueue.patch |
Status of Conversions(03/11/2024): I have a series ready for review(a set of 10 patches): 0001-kernel-Introduce-enable_and_queue_work-convenience-f.patch | 64 ++ A series that still needs some work(testing and cleanup): |
During the work to modernize the tasklet API, there was a request to just entirely remove it. This is much more work than just making the API safer, so it is considered the "next step" in dealing with tasklets. In the meantime, comments were added to suggest people quit using tasklets in new code. ;)
https://lore.kernel.org/driverdev-devel/20200716081538.2sivhkj4hcyrusem@linutronix.de/
Example conversions from tasklet into:
The text was updated successfully, but these errors were encountered: