Objet : Developers list for StarPU
Archives de la liste
- From: Sylvain Gault <sylvain.gault@inria.fr>
- To: starpu-devel@lists.gforge.inria.fr
- Subject: [Starpu-devel] pthread_mutex_unlock : Invalid argument
- Date: Mon, 17 May 2010 19:56:06 +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>
Hello,
Joined is a code as simple as possible that make (sometime) starpu to crash with a
pthread_mutex_unlock : Invalid argument
or
pthread_mutex_lock : Invalid argument.
Here is the stack trace.
#0 0xb7fe3410 in __kernel_vsyscall ()
#1 0xb7e4b8e0 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2 0xb7e4ee15 in *__GI_abort () at abort.c:88
#3 0xb7f73562 in _starpu_not_all_task_deps_are_fulfilled (j=0xb6d5e624, job_is_already_locked=<value optimized out>) at ../../src/core/jobs.c:233
#4 0xb7f73753 in _starpu_enforce_deps_and_schedule (j=0xb6d5e618, job_is_already_locked=0) at ../../src/core/jobs.c:253
#5 0xb7f74238 in _starpu_submit_job (j=0xb6d5e618, do_not_increment_nsubmitted=0) at ../../src/core/task.c:157
#6 0xb7f74306 in starpu_task_submit (task=0xb6d0d9d8) at ../../src/core/task.c:208
#7 0x08048afe in main ()
Regards,
Sylvain
#include <starpu.h> void empty_task(void *descr[] __attribute__((unused)), void *cl_arg __attribute__((unused))) { } starpu_codelet cl = { .where = STARPU_CPU, .cpu_func = empty_task, .nbuffers = 2, }; int main(void) { size_t i, j, k; size_t x = 256; int data; starpu_data_handle ha[x*x], hb[x*x]; starpu_init(NULL); for (i = 0; i < x; i++) { for (j = 0; j < x; j++) starpu_register_variable_data(&ha[i*x + j], 0, (uintptr_t)&data, 0); } for (i = 0; i < x; i++) { for (j = 0; j < x; j++) starpu_register_variable_data(&hb[i*x + j], 0, (uintptr_t)&data, 0); } for (i = 0; i < x; i++) { for (j = 0; j < x; j++) { for (k = 0; k < x; k++) { struct starpu_task *task = starpu_task_create(); task->cl = &cl; task->buffers[0].handle = ha[i*x + k]; task->buffers[0].mode = STARPU_R; task->buffers[1].handle = hb[i*x + j]; task->buffers[1].mode = STARPU_RW; starpu_task_submit(task); } } } starpu_task_wait_for_all(); for (i = 0; i < x*x; i++) starpu_data_unregister(ha[i]); for (i = 0; i < x*x; i++) starpu_data_unregister(hb[i]); starpu_shutdown(); return 0; }
- [Starpu-devel] pthread_mutex_unlock : Invalid argument, Sylvain Gault, 17/05/2010
Archives gérées par MHonArc 2.6.19+.