9fedf2836e
Important note : According to the man page "On success, process_vm_readv() returns the number of bytes read and process_vm_writev() returns the number of bytes written. This return value may be less than the total number of requested bytes, if a partial read/write occurred. (Partial transfers apply at the granularity of iovec elements. These system calls won't perform a partial transfer that splits a single iovec element.)" So since we use a single iovec element, the returned size should either be 0 or size, and the do loop should not be needed here. We tried on various Linux kernels with size > 2 GB, and surprisingly, the returned value is always 0x7ffff000 (fwiw, it happens to be the size of the larger number of pages that fits a signed 32 bits integer). We do not know whether this is a bug from the kernel, the libc or even the man page, but for the time being, we do as is process_vm_readv() could return any value. Thanks Heiko Bauke for the bug report. Refs. open-mpi/ompi#4829 Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp> |
||
---|---|---|
.. | ||
btl_vader_component.c | ||
btl_vader_endpoint.h | ||
btl_vader_fbox.h | ||
btl_vader_fifo.h | ||
btl_vader_frag.c | ||
btl_vader_frag.h | ||
btl_vader_get.c | ||
btl_vader_knem.c | ||
btl_vader_knem.h | ||
btl_vader_module.c | ||
btl_vader_put.c | ||
btl_vader_send.c | ||
btl_vader_sendi.c | ||
btl_vader_xpmem.c | ||
btl_vader_xpmem.h | ||
btl_vader.h | ||
configure.m4 | ||
help-btl-vader.txt | ||
Makefile.am | ||
owner.txt |