Skip to content
Snippets Groups Projects
Commit 9d0562db authored by Vagrant Cascadian's avatar Vagrant Cascadian
Browse files

draft attempt at enabling specific number of CPUs.

parent f2c04a3f
No related branches found
No related tags found
No related merge requests found
Pipeline #645534 failed
......@@ -333,12 +333,19 @@ def aslr(ctx, build, vary):
def num_cpus(ctx, build, vary):
_ = build
_ = _.append_setup_exec_raw('CPU_MAX=$(nproc)')
if ctx.num_cpus.cpus:
_ = _.append_setup_exec_raw('CPU_MAX=$(nproc)')
else:
_ = _.append_setup_exec_raw('CPU_MAX=%s' % ctx.num_cpus.cpus)
_ = _.append_setup_exec_raw('CPU_MIN=$({ echo $CPU_MAX; echo %s; } | sort -n | head -n1)' % ctx.min_cpus)
if ctx.min_cpus <= 0:
raise ValueError("--min-cpus must be a positive integer: " % ctx.min_cpus)
if not vary:
_ = _.append_setup_exec_raw('CPU_NUM=$CPU_MIN')
if ctx.num_cpus.cpus:
_ = _.append_setup_exec_raw('CPU_NUM=$(if [ $CPU_MIN = $CPU_MAX ]; \
then echo $CPU_MIN; echo >&2 "only 1 CPU is available; num_cpus is ineffective"; \
else echo %s; fi)' % ctx.num_cpus.cpus)
else:
# random number between min_cpus and $(nproc)
_ = _.append_setup_exec_raw('CPU_NUM=$(if [ $CPU_MIN = $CPU_MAX ]; \
......@@ -582,6 +589,11 @@ class LocalesVariation(collections.namedtuple('_LocaleVariation', 'locale')):
def default(cls):
return cls(mdiffconf.strlist_set(";"))
class NumCpusVariation(collections.namedtuple('_LocaleVariation', 'cpus')):
@classmethod
def default(cls):
return None
class VariationSpec(mdiffconf.ImmutableNamespace):
@classmethod
def default(cls, variations=VARIATIONS):
......@@ -591,6 +603,7 @@ class VariationSpec(mdiffconf.ImmutableNamespace):
"time": TimeVariation.default(),
"domain_host": DomainHostVariation.default(),
"locales": LocalesVariation.default(),
"num_cpus": NumCpusVariation.default(),
}
return cls(**{k: default_overrides.get(k, True) for k in variations})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment