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_spu Fixup after #6864 #6917

Merged
merged 1 commit into from Oct 29, 2019
Merged

sys_spu Fixup after #6864 #6917

merged 1 commit into from Oct 29, 2019

Conversation

elad335
Copy link
Contributor

@elad335 elad335 commented Oct 29, 2019

must be cleared for each thread separerately.

@elad335
Copy link
Contributor Author

elad335 commented Oct 29, 2019

I updated spu_channel_4_t::clear to be thread-safe outside the mutex.

@Nekotekina Nekotekina merged commit f41f505 into RPCS3:master Oct 29, 2019
elad335 added a commit to elad335/rpcs3 that referenced this pull request Oct 29, 2019
Clear the last value before zeroing count, fixes a rare race introduced by RPCS3#6917.
elad335 added a commit to elad335/rpcs3 that referenced this pull request Oct 29, 2019
Fixes a possible unintended state (overriding last element with 0) by clearing last element before zeroing count. (race between the exiting thread and the one calls sys_spu_thread_write_mb).
Regressed by RPCS3#6917.
@elad335 elad335 mentioned this pull request Oct 29, 2019
elad335 added a commit to elad335/rpcs3 that referenced this pull request Oct 31, 2019
* Make spu_channel_4_t::clear() atomic:
Clear the last value before zeroing count, fixes a rare race introduced by RPCS3#6917.

* Optimize push() to use vectorization and less atomic instructions.

* Optimize try_pop() to use less atomic instructions
elad335 added a commit to elad335/rpcs3 that referenced this pull request Oct 31, 2019
* Make spu_channel_4_t::clear() atomic:
Clear the last value before zeroing count, fixes a rare race introduced by RPCS3#6917.

* Optimize push() to use vectorization and less atomic instructions.

* Optimize try_pop() to use less atomic instructions
elad335 added a commit to elad335/rpcs3 that referenced this pull request Oct 31, 2019
* Make spu_channel_4_t::clear() atomic:
Clear the last value before zeroing count, fixes a rare race introduced by RPCS3#6917.

* Optimize push() to use vectorization and less atomic instructions.

* Optimize try_pop() to use less atomic instructions
elad335 added a commit to elad335/rpcs3 that referenced this pull request Oct 31, 2019
* Make spu_channel_4_t::clear() atomic:
Clear the last value before zeroing count, fixes a rare race introduced by RPCS3#6917.

* Optimize push() to use vectorization and less atomic instructions.

* Optimize try_pop() to use less atomic instructions
elad335 added a commit to elad335/rpcs3 that referenced this pull request Nov 1, 2019
Clear the last value before zeroing count, fixes a rare race introduced by RPCS3#6917.
elad335 added a commit to elad335/rpcs3 that referenced this pull request Dec 6, 2019
Clear the last value before zeroing count, fixes a rare race introduced by RPCS3#6917.
elad335 added a commit to elad335/rpcs3 that referenced this pull request Dec 31, 2019
Clear the last value before zeroing count, fixes a rare race introduced by RPCS3#6917.
elad335 added a commit to elad335/rpcs3 that referenced this pull request Dec 31, 2019
By removing separate value3 write, fixes a rare race introduced by RPCS3#6917.
Nekotekina pushed a commit that referenced this pull request Dec 31, 2019
By removing separate value3 write, fixes a rare race introduced by #6917.
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

Successfully merging this pull request may close these issues.

None yet

2 participants