Accéder au contenu.
Menu Sympa

starpu-devel - [Starpu-devel] pthread_mutex_unlock : Invalid argument

Objet : Developers list for StarPU

Archives de la liste

[Starpu-devel] pthread_mutex_unlock : Invalid argument


Chronologique Discussions 
  • 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+.

Haut de le page