-
Notifications
You must be signed in to change notification settings - Fork 20
Fix pmm deadlock #345
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
Fix pmm deadlock #345
Conversation
Optimally, we would refill the 4K frames while still holding the paging lock. However, this would need a new interface in pmm to allow refill without taking the paging lock again. |
there is still the deadlock issue where paging wants to get a frame but pmm is waiting for paging to map a new array. It looks like some kind of backoff is required. |
1754bb4
to
aaa42b3
Compare
based on #344 Also fixes a (potential?) bug where |
6521e20
to
d01825b
Compare
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.
I am no longer able to reproduce the deadlock 👍
3b6e6ca
to
dc3e94c
Compare
Signed-off-by: Sandro Rüegge <[email protected]>
dc3e94c
to
a6f23ee
Compare
1. paging gets exclusive pmm access during array refill. 2. pmm can call back into paging while holding the paging lock. 3. paging performs pmm refill if needed to ensure reserved frames. Signed-off-by: Sandro Rüegge <[email protected]>
a6f23ee
to
41767f5
Compare
An ugly first attempt to allow pmm frame array refill without deadlocking.
Intended to fix #343