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

Deadlock in thread scheduling subsystem #1029

Closed
sithhell opened this issue Dec 5, 2013 · 1 comment
Closed

Deadlock in thread scheduling subsystem #1029

sithhell opened this issue Dec 5, 2013 · 1 comment

Comments

@sithhell
Copy link
Member

sithhell commented Dec 5, 2013

The recently added (revamped) jacobi_smp exposes a problem in the HPX thread scheduling system. There appears to be a deadlock in hpx/runtime/threads/policies/thread_queue.hpp line 470. In the application, all worker threads eventually wait on the same mutex which is tried to get locked here. The cause for this unclear to me (might be due to some race condition between spawning new threads from within hpx threads and the scheduling loop).
When changing the mutex type of the local_priority_scheduler to hpx::lcos::local::spinlock the deadlock in this particular line disappears, but another deadlock in cleanup_terminated (in the same file) appears to happen.
Something is fishy within the scheduler.
To reproduce the problem, run the following command:

./bin/jacobi_hpx --n 8192 -Ihpx.stacks.use_guard_pages=0 --iterations=100 -t8 --block-size=1
@sithhell
Copy link
Member Author

sithhell commented Dec 6, 2013

Fixed with 82e78b6

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

No branches or pull requests

1 participant