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

sys_cond/lwcond_destroy should wait for PPUs in sys_lwcond/cond_wait to lock mutex #12411

Open
elad335 opened this issue Jul 28, 2022 · 1 comment
Assignees

Comments

@elad335
Copy link
Contributor

elad335 commented Jul 28, 2022

Quick summary

How destroy syscall work on PS3 is by waiting for an exclusive share of the LV2 object (after an unlocked EBUSY check) so it can mark its memory free for other objects. (unlike RPCS3 which does need precise memory efficiency and allows references to the LV2 object to exist after destruction)
sys_cond_wait and sys_lwcond_wait_queue both reference the cond object while waiting for mutex relock, and destroy syscall doesn't detect that with EBUSY. So it ends up waiting for PPUs completely exit the syscall and remove their references of the cond object before destruction as a side effect. Similar thing happens in lwmutex destroy syscall with that mechanism implmeneted there. This is unimplemented for cond destroy.

Details

No response

Attach a log file

N/A

Attach capture files for visual issues

No response

System configuration

No response

Other details

No response

@elad335 elad335 self-assigned this Jul 8, 2023
@Ninetime
Copy link
Contributor

Was this behaviour resolved with later updates?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants