Accéder au contenu.
Menu Sympa

starpu-devel - Re: [Starpu-devel] Deadlocks

Objet : Developers list for StarPU

Archives de la liste

Re: [Starpu-devel] Deadlocks


Chronologique Discussions 
  • From: Samuel Thibault <samuel.thibault@ens-lyon.org>
  • To: Sylvain HENRY <sylvain.henry@inria.fr>
  • Cc: starpu-devel@lists.gforge.inria.fr
  • Subject: Re: [Starpu-devel] Deadlocks
  • Date: Fri, 3 Sep 2010 21:30:32 +0200
  • List-archive: <http://lists.gforge.inria.fr/pipermail/starpu-devel>
  • List-id: "Developers list. For discussion of new features, code changes, etc." <starpu-devel.lists.gforge.inria.fr>

Sylvain HENRY, le Tue 24 Aug 2010 17:16:44 +0200, a écrit :
> #2 0x00007ffff566df0b in __pthread_mutex_lock (mutex=0x7fffe84f3248) at
> pthread_mutex_lock.c:61

A deadlock for a sync_mutex lock can only happen in one case

> #3 0x00007ffff6c8a289 in starpu_task_declare_deps_array (task=<value
> optimized out>, ndeps=1, task_array=<value optimized out>) at
> ../../src/core/dependencies/task_deps.c:84

which is that here one of the tasks which the `task' task depends on is
actually the same as `task' (and thus this function is trying to get the
same mutex twice). Could you check whether dep_job is the same as job at
this point?

> Program received signal SIGINT, Interrupt.
> pthread_cond_wait@@GLIBC_2.3.2 () at
> ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
> 162 ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: No
> such file or directory.
> in ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
> (gdb) bt
> #0 pthread_cond_wait@@GLIBC_2.3.2 () at
> ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
> #1 0x00007ffff6c81d53 in _starpu_wait_job (j=0x7fffd4008920) at
> ../../src/core/jobs.c:109
> #2 0x00007ffff6c82a1c in starpu_task_submit (task=0x7fffd40087c0) at
> ../../src/core/task.c:247
> #3 0x00007ffff7bd865b in commandQueueEnqueueBarrierEvent
> (cq=0x7fffe80b0250, ev=0x7fffd4008790) at
> ../lib/helpers_commandqueue.c.inc:62
> #4 0x00007ffff7bd86a1 in commandQueueEnqueueEvent (cq=0x7fffe80b0250,
> ev=0x7fffd4008790) at ../lib/helpers_commandqueue.c.inc:72
> #5 0x00007ffff7bda9a2 in soclEnqueueReadBuffer (cq=0x7fffe80b0250,
> buffer=0x7fffebb970e0, blocking=1, offset=0, cb=4, ptr=0x7fffffffd52c,
> num_events=0, events=0x0, event=0x0) at
> ../lib/cl_enqueuereadbuffer.c.inc:125
> #6 0x000000000042a897 in viennacl::vector<float, 1u>
> viennacl::linalg::solve<viennacl::compressed_matrix<float, 4u>,
> viennacl::vector<float, 1u> >(viennacl::compressed_matrix<float, 4u>
> const&, viennacl::vector<float, 1u> const&, viennacl::linalg::cg_tag
> const&) ()
> #7 0x000000000045d0b9 in int run_benchmark<float>() ()
> #8 0x000000000041e496 in main ()
>
> How can I debug this to understand why my task never terminates?

Maybe we should write gdb scripts to show the state of task queues so
you can find out what your task is waiting for.

Samuel




  • Re: [Starpu-devel] Deadlocks, Samuel Thibault, 04/09/2010

Archives gérées par MHonArc 2.6.19+.

Haut de le page