Verified Commit 371bdfa8 authored by Marc Vef's avatar Marc Vef
Browse files

Added barrier in IO sender. Removed junk, refactor

parent 9fac7a91
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -7,18 +7,18 @@
struct write_chunk_args {
    const std::string* path;
    const char* buf;
    const rpc_chnk_id_t* chnk_id;
    rpc_chnk_id_t chnk_id;
    size_t size;
    off64_t off;
    ABT_eventual* eventual;
    ABT_eventual eventual;
};
struct read_chunk_args {
    const std::string* path;
    char* buf;
    const rpc_chnk_id_t* chnk_id;
    rpc_chnk_id_t chnk_id;
    size_t size;
    off64_t off;
    ABT_eventual* eventual;
    ABT_eventual eventual;
};

std::string path_to_fspath(const std::string& path);
+4 −56
Original line number Diff line number Diff line
@@ -24,7 +24,8 @@ struct write_args {
    size_t chnk_start;
    std::vector<unsigned long>* chnk_ids;
    size_t recipient;
    ABT_eventual* eventual;
    ABT_eventual eventual;
    ABT_barrier barrier;
};

struct read_args {
@@ -35,65 +36,12 @@ struct read_args {
    size_t chnk_start;
    std::vector<unsigned long>* chnk_ids;
    size_t recipient;
    ABT_eventual* eventual;
    ABT_eventual eventual;
    ABT_barrier barrier;
};

void rpc_send_write_abt(void* _arg);

void rpc_send_read_abt(void* _arg);


template<typename T>
int rpc_send_read(const std::string& path, const size_t in_size, const off_t in_offset, T* tar_buf, size_t& read_size) {
    hg_handle_t handle;
    hg_addr_t svr_addr = HG_ADDR_NULL;
    rpc_read_data_in_t in{};
    rpc_data_out_t out{};
    int err;
    hg_return_t ret;
    // fill in
    in.path = path.c_str();
    in.size = in_size;
    in.offset = in_offset;

    margo_create_wrap(ipc_read_data_id, rpc_read_data_id, path, handle, svr_addr, false);

    auto used_mid = margo_hg_handle_get_instance(handle);
    /* register local target buffer for bulk access */
    auto b_buf = static_cast<void*>(tar_buf);
    ret = margo_bulk_create(used_mid, 1, &b_buf, &in_size, HG_BULK_WRITE_ONLY, &in.bulk_handle);
    if (ret != 0)
        ld_logger->error("{}() failed to create bulk on client", __func__);

    int send_ret = HG_FALSE;
    for (int i = 0; i < RPC_TRIES; ++i) {
        send_ret = margo_forward_timed(handle, &in, RPC_TIMEOUT);
        if (send_ret == HG_SUCCESS) {
            break;
        }
    }
    if (send_ret == HG_SUCCESS) {
        /* decode response */
        ret = margo_get_output(handle,
                               &out); // XXX handle ret out.res can inidicate a failure with reading on the other side.
        tar_buf = static_cast<T*>(b_buf);
        read_size = static_cast<size_t>(out.io_size);
        err = out.res;
        ld_logger->debug("{}() Got response {}", __func__, out.res);
        /* clean up resources consumed by this rpc */
        margo_bulk_free(in.bulk_handle);
        margo_free_output(handle, &out);
    } else {
        ld_logger->warn("{}() timed out", __func__);
        err = EAGAIN;
    }

    margo_destroy(handle);

    return err;
}

int rpc_send_write(const std::string& path, size_t in_size, off_t in_offset, void* buf, size_t& write_size,
                   bool append, off_t updated_size);

#endif //IFS_PRELOAD_C_DATA_WS_HPP
+13 −13
Original line number Diff line number Diff line
@@ -294,19 +294,19 @@ make -j${CORES} || exit 1
make install || exit 1
make check || exit 1

echo "############################################################ Installing:  Abt-IO"
# Abt IO
CURR=${SOURCE}/abt-io
prepare_build_dir ${CURR}
cd ${CURR}
echo "########## ADA-FS injection: Applying abt-io c++ template clash patch"
git apply ${PATCH_DIR}/cplusplus_template_clash.patch || exit 1
./prepare.sh || exit 1
cd ${CURR}/build
../configure --prefix=${INSTALL} PKG_CONFIG_PATH=${INSTALL}/lib/pkgconfig || exit 1
make -j${CORES} || exit 1
make install || exit 1
# make check || exit 1 # XXX The tests create so huge files that breaks memory :D
#echo "############################################################ Installing:  Abt-IO"
## Abt IO
#CURR=${SOURCE}/abt-io
#prepare_build_dir ${CURR}
#cd ${CURR}
#echo "########## ADA-FS injection: Applying abt-io c++ template clash patch"
#git apply ${PATCH_DIR}/abt_io_cplusplus_template_clash.patch || exit 1
#./prepare.sh || exit 1
#cd ${CURR}/build
#../configure --prefix=${INSTALL} PKG_CONFIG_PATH=${INSTALL}/lib/pkgconfig || exit 1
#make -j${CORES} || exit 1
#make install || exit 1
# make check || exit 1 # The tests create so huge files that breaks memory :D

echo "############################################################ Installing:  Margo"
# Margo
+1 −1
Original line number Diff line number Diff line
@@ -180,7 +180,7 @@ clonedeps "argobots" "git clone -b dev-get-dev-basic https://github.com/carns/ar
# get Argobots-snoozer
clonedeps "abt-snoozer" "git clone https://xgitlab.cels.anl.gov/sds/abt-snoozer.git" "3d9240eda290bfb89f08a5673cebd888194a4bd7"
# get Argobots-IO
clonedeps "abt-io" "git clone https://xgitlab.cels.anl.gov/sds/abt-io.git" "35f16da88a1c579ed4726bfa77daa1884829fc0c"
#clonedeps "abt-io" "git clone https://xgitlab.cels.anl.gov/sds/abt-io.git" "35f16da88a1c579ed4726bfa77daa1884829fc0c"
# get Margo
clonedeps "margo" "git clone https://xgitlab.cels.anl.gov/sds/margo.git" "72eec057314a4251d8658e03a18240275992e1ce"
# get rocksdb
Loading