Marc-André Hermanns, le Tue 17 Jan 2012 15:15:12 +0100, a écrit : > write(1, "This system has 4 levels\n", 25) = 25 > open("/proc/self/task", > O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4 > fcntl64(4, F_GETFD) = 0x1 (flags FD_CLOEXEC) > fstat64(4, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 > lseek(4, 0, SEEK_SET) = 0 > getdents(4, /* 3 entries */, 32768) = 52
3 entries, so I guess /proc/self/task properly contains ".", "..", and the pid. > getdents(4, /* 0 entries */, 32768) = 0 > sched_getaffinity(0, 4, {fff}) = 4 > sched_getaffinity(19173, 4, {fff}) = 4 I don't understand how a call to last_cpu_location can result in calling sched_getaffinity. Could you build with CFLAGS=-g, run the program in gdb, put a breakpoint on hwloc_linux_get_tid_cpubind and hwloc_linux_get_thread_cpubind, and send us the resulting backtrace? Thanks, Samuel