static int psex_rma2_alloc(hca_info_t *hca_info, int size, mem_info_t *mem_info) { int rc; mem_info->mr = NULL; /* Region for buffers */ mem_info->ptr = valloc(size); if (!mem_info->ptr) goto err_malloc; rc = rma2_register(hca_info->rma2_port, mem_info->ptr, size, &mem_info->mr); if (!mem_info->mr) goto err_reg_mr; return 0; /* --- */ err_reg_mr: free(mem_info->ptr); mem_info->ptr = NULL; psex_err_rma2_error("rma2_register()", rc); /*if (rc == RMA2_ERR_NO_MEM)*/ print_mlock_help(size); return -1; err_malloc: psex_err_errno("malloc()", errno); return -1; }
static int psoib_vapi_alloc(hca_info_t *hca_info, int size, enum ibv_access_flags access_perm, mem_info_t *mem_info) { mem_info->mr = NULL; /* Region for buffers */ mem_info->ptr = valloc(size); if (!mem_info->ptr) goto err_malloc; // printf("ibv_reg_mr(pd = %p, ptr = %p, size = %d, access_perm = 0x%x)\n", // hca_info->pd, mem_info->ptr, size, access_perm); mem_info->mr = ibv_reg_mr(hca_info->pd, mem_info->ptr, size, access_perm); if (!mem_info->mr) goto err_reg_mr; return 0; /* --- */ err_reg_mr: free(mem_info->ptr); mem_info->ptr = NULL; psoib_err_errno("ibv_reg_mr() failed", errno); if (errno == ENOMEM) print_mlock_help(size); return -1; err_malloc: psoib_err_errno("malloc() failed!", errno); return -1; }
static int psdapl_init_buffers_local(psdapl_con_info_t *ci) { int rc; int i; rc = psdapl_bufpair_init_local(&ci->send_bufs, SIZE_SR_QUEUE * DAPL_BUFSIZE, ci->socket->ia_handle, ci->socket->pz_handle); if (rc) goto err_init_send; rc = psdapl_bufpair_init_local(&ci->recv_bufs, SIZE_SR_QUEUE * DAPL_BUFSIZE, ci->socket->ia_handle, ci->socket->pz_handle); if (rc) goto err_init_recv; ci->send_pos = 0; ci->recv_pos = 0; /* Clear all receive magics */ for (i = 0; i < SIZE_SR_QUEUE; i++) { psdapl_msg_t *msg = ((psdapl_msg_t *)ci->recv_bufs.lmr_mem) + i; msg->tail.magic = PSDAPL_MAGIC_UNUSED; } return rc; err_init_recv: err_init_send: print_mlock_help(); return rc; }