Open MPI logo

Hardware Locality Users' Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Hardware Locality Users mailing list

Subject: Re: [hwloc-users] hwloc_get_last_cpu_location and hwloc_get_cpubind
From: Samuel Thibault (samuel.thibault_at_[hidden])
Date: 2012-01-17 10:51:47


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