Merge pull request #2013 from hjelmn/osc_rdma_fix
osc/rdma: fix bug in dynamic memory window tracking code
Этот коммит содержится в:
Коммит
f3d4eaeaf7
@ -1,6 +1,6 @@
|
|||||||
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2014-2015 Los Alamos National Security, LLC. All rights
|
* Copyright (c) 2014-2016 Los Alamos National Security, LLC. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
#include "mpi.h"
|
#include "mpi.h"
|
||||||
|
|
||||||
|
#include "opal/util/sys_limits.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ompi_osc_rdma_find_region_containing:
|
* ompi_osc_rdma_find_region_containing:
|
||||||
@ -71,9 +72,11 @@ static ompi_osc_rdma_region_t *find_insertion_point (ompi_osc_rdma_region_t *reg
|
|||||||
int mid_index = (max_index + min_index) >> 1;
|
int mid_index = (max_index + min_index) >> 1;
|
||||||
ompi_osc_rdma_region_t *region = (ompi_osc_rdma_region_t *)((intptr_t) regions + mid_index * region_size);
|
ompi_osc_rdma_region_t *region = (ompi_osc_rdma_region_t *)((intptr_t) regions + mid_index * region_size);
|
||||||
|
|
||||||
|
OSC_RDMA_VERBOSE(MCA_BASE_VERBOSE_TRACE, "find_insertion_point (%d, %d, %lx, %lu)\n", min_index, max_index, base, region_size);
|
||||||
|
|
||||||
if (max_index < min_index) {
|
if (max_index < min_index) {
|
||||||
*region_index = mid_index;
|
*region_index = min_index;
|
||||||
return region;
|
return (ompi_osc_rdma_region_t *)((intptr_t) regions + min_index * region_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (region->base > base) {
|
if (region->base > base) {
|
||||||
@ -92,7 +95,7 @@ int ompi_osc_rdma_attach (struct ompi_win_t *win, void *base, size_t len)
|
|||||||
osc_rdma_counter_t region_count;
|
osc_rdma_counter_t region_count;
|
||||||
osc_rdma_counter_t region_id;
|
osc_rdma_counter_t region_id;
|
||||||
void *bound;
|
void *bound;
|
||||||
intptr_t page_size = getpagesize ();
|
intptr_t page_size = opal_getpagesize ();
|
||||||
int region_index;
|
int region_index;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user