Ejemplo n.º 1
0
def _numa_get_constraints_auto(nodes, flavor, image_meta):
    if ((flavor['vcpus'] % nodes) > 0 or (flavor['memory_mb'] % nodes) > 0):
        raise exception.ImageNUMATopologyAsymmetric()

    cells = []
    for node in range(nodes):
        cpus = _numa_get_flavor_or_image_prop(flavor, image_meta,
                                              "numa_cpus.%d" % node)
        mem = _numa_get_flavor_or_image_prop(flavor, image_meta,
                                             "numa_mem.%d" % node)

        # We're not expecting any properties set, so
        # raise an error if there are any
        if cpus is not None or mem is not None:
            raise exception.ImageNUMATopologyIncomplete()

        ncpus = int(flavor['vcpus'] / nodes)
        mem = int(flavor['memory_mb'] / nodes)
        start = node * ncpus
        cpuset = set(range(start, start + ncpus))

        cells.append(
            objects.InstanceNUMACell(id=node, cpuset=cpuset, memory=mem))

    return objects.InstanceNUMATopology(cells=cells)
Ejemplo n.º 2
0
    def _get_constraints_auto(cls, nodes, flavor, image_meta):
        if ((flavor.vcpus % nodes) > 0 or
            (flavor.memory_mb % nodes) > 0):
            raise exception.ImageNUMATopologyAsymmetric()

        cells = []
        for node in range(nodes):
            cpus = cls._get_flavor_or_image_prop(
                flavor, image_meta, "numa_cpus.%d" % node)
            mem = cls._get_flavor_or_image_prop(
                flavor, image_meta, "numa_mem.%d" % node)

            # We're not expecting any properties set, so
            # raise an error if there are any
            if cpus is not None or mem is not None:
                raise exception.ImageNUMATopologyIncomplete()

            ncpus = int(flavor.vcpus / nodes)
            mem = int(flavor.memory_mb / nodes)
            start = node * ncpus
            cpuset = set(range(start, start + ncpus))

            cells.append(VirtNUMATopologyCell(node, cpuset, mem))

        return cls(cells)
Ejemplo n.º 3
0
def _numa_get_constraints_auto(nodes, flavor):
    if ((flavor.vcpus % nodes) > 0 or (flavor.memory_mb % nodes) > 0):
        raise exception.ImageNUMATopologyAsymmetric()

    cells = []
    for node in range(nodes):
        ncpus = int(flavor.vcpus / nodes)
        mem = int(flavor.memory_mb / nodes)
        start = node * ncpus
        cpuset = set(range(start, start + ncpus))

        cells.append(
            objects.InstanceNUMACell(id=node, cpuset=cpuset, memory=mem))

    return objects.InstanceNUMATopology(cells=cells)