-
Notifications
You must be signed in to change notification settings - Fork 92
[Deepin-Kernel-SIG] [linux 6.6-y] [Upstream] Remove use of wait bookmarks #915
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
[Deepin-Kernel-SIG] [linux 6.6-y] [Upstream] Remove use of wait bookmarks #915
Conversation
mainline inclusion from mainline-v6.7-rc1 category: bugfix The original problem of the overly long list of waiters on a locked page was solved properly by commit 9a1ea43 ("mm: put_and_wait_on_page_locked() while page is migrated"). In the meantime, using bookmarks for the writeback bit can cause livelocks, so we need to stop using them. Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Matthew Wilcox (Oracle) <[email protected]> Cc: Bin Lai <[email protected]> Cc: Benjamin Segall <[email protected]> Cc: Daniel Bristot de Oliveira <[email protected]> Cc: Dietmar Eggemann <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Juri Lelli <[email protected]> Cc: Matthew Wilcox (Oracle) <[email protected]> Cc: Mel Gorman <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Steven Rostedt (Google) <[email protected]> Cc: Valentin Schneider <[email protected]> Cc: Vincent Guittot <[email protected]> Cc: Ingo Molnar <[email protected]> Signed-off-by: Andrew Morton <[email protected]> (cherry picked from commit b0b598e) Change-Id: I1566d45a8673091974f7d35272b5d251d27b030b
mainline inclusion from mainline-v6.7-rc1 category: bugfix There are no users of wait bookmarks left, so simplify the wait code by removing them. Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Matthew Wilcox (Oracle) <[email protected]> Acked-by: Ingo Molnar <[email protected]> Cc: Benjamin Segall <[email protected]> Cc: Bin Lai <[email protected]> Cc: Daniel Bristot de Oliveira <[email protected]> Cc: Dietmar Eggemann <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Juri Lelli <[email protected]> Cc: Mel Gorman <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Steven Rostedt (Google) <[email protected]> Cc: Valentin Schneider <[email protected]> Cc: Vincent Guittot <[email protected]> Signed-off-by: Andrew Morton <[email protected]> (cherry picked from commit 37acade) Change-Id: Iafe103ff6af09c27f50849f8ac9e5926846297b0 Signed-off-by: Wentao Guan <[email protected]>
Reviewer's GuideThis PR removes the waitqueue “bookmark” feature from the kernel scheduler by deleting its constants, flags, parameters, and loop‐breaking logic in __wake_up_common and related wrappers, updates all wake‐up calls to the simplified interfaces without bookmarks (including mm/filemap), and adjusts wait‐queue flag definitions accordingly. Class diagram for wait queue wake-up API after bookmark removalclassDiagram
class wait_queue_entry_t {
+unsigned int flags
+void *private
+wait_queue_func_t func
+struct list_head entry
}
class wait_queue_head {
+spinlock_t lock
+struct list_head head
}
class __wake_up_common {
+int __wake_up_common(wait_queue_head *wq_head, unsigned int mode, int nr_exclusive, int wake_flags, void *key)
}
class __wake_up_locked {
+void __wake_up_locked(wait_queue_head *wq_head, unsigned int mode, int nr)
}
class __wake_up_locked_key {
+void __wake_up_locked_key(wait_queue_head *wq_head, unsigned int mode, void *key)
}
class __wake_up_locked_sync_key {
+void __wake_up_locked_sync_key(wait_queue_head *wq_head, unsigned int mode, void *key)
}
class __wake_up_on_current_cpu {
+void __wake_up_on_current_cpu(wait_queue_head *wq_head, unsigned int mode, void *key)
}
class __wake_up {
+int __wake_up(wait_queue_head *wq_head, unsigned int mode, int nr, void *key)
}
wait_queue_head "1" -- "*" wait_queue_entry_t : contains
__wake_up_locked_key ..> __wake_up_common : calls
__wake_up_locked ..> __wake_up_common : calls
__wake_up_locked_sync_key ..> __wake_up_common : calls
__wake_up_on_current_cpu ..> __wake_up_common : calls
__wake_up ..> __wake_up_common : calls
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
deepin pr auto review关键摘要:
是否建议立即修改:
建议的修改:
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Test result:
|
https://lore.kernel.org/all/[email protected]/T/#m25ba483bf902a43b2858751f9255e644b60e026a
Summary by Sourcery
Remove support for wait bookmarks from the scheduler and filemap wakeup paths and simplify wakeup code accordingly.
Enhancements: