Esempio n. 1
0
int memkind_default_get_size(struct memkind *kind, size_t *total, size_t *free)
{
    nodemask_t nodemask;
    struct bitmask nodemask_bm = {NUMA_NUM_NODES, nodemask.n};
    long long f;
    int err = 0;
    int i;

    *total = 0;
    *free = 0;
    if (kind->ops->get_mbind_nodemask) {
        err = kind->ops->get_mbind_nodemask(kind, nodemask.n, NUMA_NUM_NODES);
    }
    else {
        copy_bitmask_to_bitmask(numa_all_nodes_ptr, &nodemask_bm);
    }
    if (!err) {
        for (i = 0; i < NUMA_NUM_NODES; ++i) {
            if (numa_bitmask_isbitset(&nodemask_bm, i)) {
                *total += numa_node_size64(i, &f);
                *free += f;
            }
        }
    }
    return err;
}
Esempio n. 2
0
CPU_Set_t *
CPU_GetPossible(void)
{
        CPU_Set_t *cs = numa_allocate_cpumask();
        copy_bitmask_to_bitmask(numa_all_cpus_ptr, cs);
        return cs;
}
Esempio n. 3
0
int memkind_default_get_mbind_nodemask(struct memkind *kind,
                                       unsigned long *nodemask,
                                       unsigned long maxnode)
{
    struct bitmask nodemask_bm = {maxnode, nodemask};
    copy_bitmask_to_bitmask(numa_all_nodes_ptr, &nodemask_bm);
    return 0;
}
Esempio n. 4
0
MEMKIND_EXPORT int memkind_regular_all_get_mbind_nodemask(struct memkind *kind,
                                                          unsigned long *nodemask,
                                                          unsigned long maxnode)
{
    struct bitmask nodemask_bm = {maxnode, nodemask};

    if(!regular_nodes_mask) {
        return MEMKIND_ERROR_UNAVAILABLE;
    }

    copy_bitmask_to_bitmask(regular_nodes_mask, &nodemask_bm);
    return MEMKIND_SUCCESS;
}