Esempio n. 1
0
static int __udreg_close(struct gnix_fid_domain *domain)
{
	udreg_return_t ret;

	if (domain->udreg_cache) {
		ret = UDREG_CacheRelease(domain->udreg_cache);
		if (unlikely(ret != UDREG_RC_SUCCESS))
			GNIX_FATAL(FI_LOG_DOMAIN, "failed to release from "
					"mr cache during domain destruct, dom=%p rc=%d\n",
					domain, ret);

		ret = UDREG_CacheDestroy(domain->udreg_cache);
		if (unlikely(ret != UDREG_RC_SUCCESS))
			GNIX_FATAL(FI_LOG_DOMAIN, "failed to destroy mr "
					"cache during domain destruct, dom=%p rc=%d\n",
					domain, ret);
	}

	return FI_SUCCESS;
}
void mca_mpool_udreg_finalize(struct mca_mpool_base_module_t *mpool)
{
    mca_mpool_udreg_module_t *mpool_udreg = (mca_mpool_udreg_module_t*)mpool;

    /* Statistic */
    if (true == mca_mpool_udreg_component.print_stats) {
        uint64_t hit = 0, miss = 0, evicted = 0;

        (void) UDREG_GetStat (mpool_udreg->udreg_handle,
                              UDREG_STAT_CACHE_HIT, &hit);

        (void) UDREG_GetStat (mpool_udreg->udreg_handle,
                              UDREG_STAT_CACHE_MISS, &miss);

        (void) UDREG_GetStat (mpool_udreg->udreg_handle,
                              UDREG_STAT_CACHE_EVICTED, &evicted);

        opal_output(0, "%s udreg: stats (hit/miss/evicted): %" PRIu64 "/%" PRIu64 "/%" PRIu64 "\n",
                    ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), hit, miss, evicted);
    }

    UDREG_CacheRelease (mpool_udreg->udreg_handle);
    OBJ_DESTRUCT(&mpool_udreg->reg_list);
}