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

lock: sem: add other __down variants in scan. #71

Merged
merged 1 commit into from
Feb 10, 2024

Conversation

imran-kn
Copy link
Contributor

@imran-kn imran-kn commented Feb 8, 2024

I am seeing call stacks like ones shown below are getting missed by scan_sem_lock.

PID: 1174 TASK: ffff953cfc723100 CPU: 2 COMMAND: sem_waiter
#0 [ffffb902c05cbda0] __schedule at ffffffff86f7a86b
#1 [ffffb902c05cbe28] schedule at ffffffff86f7ad9d
#2 [ffffb902c05cbe38] schedule_timeout at ffffffff86f7d94d
#3 [ffffb902c05cbe98] __down_killable at ffffffff86f7ccb6
#4 [ffffb902c05cbee0] down_killable at ffffffff8668d69d

PID: 1181 TASK: ffff99c2bc6a6e40 CPU: 1 COMMAND: sem_waiter
#0 [ffffa3780060bda0] __schedule at ffffffffbb77a86b
#1 [ffffa3780060be28] schedule at ffffffffbb77ad9d
#2 [ffffa3780060be38] schedule_timeout at ffffffffbb77d8df
#3 [ffffa3780060be98] __down_timeout at ffffffffbb77cdc4
#4 [ffffa3780060bee0] down_timeout at ffffffffbae8d740

PID: 1175 TASK: ffff96c3fc5a55c0 CPU: 1 COMMAND: sem_waiter
#0 [ffff9f35c0543da0] __schedule at ffffffff82b7a86b
#1 [ffff9f35c0543e28] schedule at ffffffff82b7ad9d
#2 [ffff9f35c0543e38] schedule_timeout at ffffffff82b7d94d
#3 [ffff9f35c0543e98] __down_interruptible at ffffffff82b7cef6
#4 [ffff9f35c0543ee0] down_interruptible at ffffffff8228d7dd

down_interruptible and down_timeout are fairly common interfaces, especially in device drivers.

down_killable is not that common, so can be removed if don't deem it important enough for an extra scan.

I am seeing call stacks like ones shown below are getting
missed by scan_sem_lock.

PID: 1174   TASK: ffff953cfc723100  CPU: 2   COMMAND: sem_waiter
 #0 [ffffb902c05cbda0] __schedule at ffffffff86f7a86b
 #1 [ffffb902c05cbe28] schedule at ffffffff86f7ad9d
 #2 [ffffb902c05cbe38] schedule_timeout at ffffffff86f7d94d
 #3 [ffffb902c05cbe98] __down_killable at ffffffff86f7ccb6
 #4 [ffffb902c05cbee0] down_killable at ffffffff8668d69d

PID: 1181   TASK: ffff99c2bc6a6e40  CPU: 1   COMMAND: sem_waiter
 #0 [ffffa3780060bda0] __schedule at ffffffffbb77a86b
 #1 [ffffa3780060be28] schedule at ffffffffbb77ad9d
 #2 [ffffa3780060be38] schedule_timeout at ffffffffbb77d8df
 #3 [ffffa3780060be98] __down_timeout at ffffffffbb77cdc4
 #4 [ffffa3780060bee0] down_timeout at ffffffffbae8d740

PID: 1175   TASK: ffff96c3fc5a55c0  CPU: 1   COMMAND: sem_waiter
 #0 [ffff9f35c0543da0] __schedule at ffffffff82b7a86b
 #1 [ffff9f35c0543e28] schedule at ffffffff82b7ad9d
 #2 [ffff9f35c0543e38] schedule_timeout at ffffffff82b7d94d
 #3 [ffff9f35c0543e98] __down_interruptible at ffffffff82b7cef6
 #4 [ffff9f35c0543ee0] down_interruptible at ffffffff8228d7dd

down_interruptible and down_timeout are fairly common interfaces,
especially in device drivers.

down_killable is not that common, so can be removed if don't
deem it important enough for an extra scan.

Signed-off-by: Imran Khan <[email protected]>
@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Feb 8, 2024
@imran-kn
Copy link
Contributor Author

imran-kn commented Feb 8, 2024

I am also working to add some fallback mechanism if frame['var'] method, currently being used, fails. But we still need to trap these interfaces before we can check the stack frames.

Copy link
Member

@biger410 biger410 left a comment

Choose a reason for hiding this comment

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

Looks good

@imran-kn imran-kn merged commit 4830729 into main Feb 10, 2024
5 checks passed
@imran-kn imran-kn deleted the sem-helpers-improvement branch February 10, 2024 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCA Verified All contributors have signed the Oracle Contributor Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants