Le 25/01/2019 à 14:17, Biddiscombe, John A. a écrit : > Dear List/Brice > > I experimented with disabling the memory touch on threads except for > N=1,2,3,4 etc and found a problem in hwloc, which is that the function > hwloc_get_area_memlocation was returning '0' when the status of the memory > null move operation was -14 (#define EFAULT 14 /* Bad address */). This was > when I call get area memlocation immediately after allocating and then 'not' > touching. I think if the status is an error, then the function should > probably return -1, but anyway. I'll file a bug and send a patch if this is > considered to be a bug.
Just to be sure, you talking about move_pages() returning 0 with -14 in the status array? As opposed to move_pages() returning -1 with errno set to 14, which would definitely be a bug in hwloc. When the page is valid but not allocated yet, move_pages() is supposed to return status = -ENOENT. This case is not an error, so returning 0 with an empty nodeset looks fine to me (pages are not allocated, hence they are allocated on an empty set of nodes). -EFAULT means that the page is invalid (you'd get a segfault if you touch it). I am not sure what we should return in that case. It's also true that pages are allocated nowhere :) Anyway, if you get -EFAULT in status, it should mean that an invalid address was passed to hwloc_get_area_memlocation() or an invalid length. Brice _______________________________________________ hwloc-users mailing list hwloc-users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/hwloc-users