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
|