isolcpus incorrectly specified when option is unused

When 0 vswitch cpu cores are requested we passed 'isolcpu= ' to the grub
config. This resulted in isolcpu being allocated when none should have
been. We now check the values passed the grub and ensure they are not
empty.

Change-Id: I398e67820f4a12f78a8b457f2618fc1bb7b7cf81
Closes-Bug: 1825423
Signed-off-by: David Sullivan <david.sullivan@windriver.com>
This commit is contained in:
David Sullivan 2019-04-23 15:44:00 -04:00
parent 8ccbb01cd3
commit e0d453a98b
1 changed files with 13 additions and 6 deletions

View File

@ -586,6 +586,7 @@ class PlatformPuppet(base.BasePuppet):
non_vswitch_ranges = utils.format_range_set(non_vswitch_cpuset)
cpu_options = ""
cpu_ranges = {}
if constants.LOWLATENCY in host.subfunctions:
config.update({
'platform::compute::pmqos::low_wakeup_cpus':
@ -594,13 +595,19 @@ class PlatformPuppet(base.BasePuppet):
"\"%s\"" % non_vswitch_ranges,
})
vswitch_ranges = rcu_nocbs_ranges
cpu_options += "nohz_full=%s " % vswitch_ranges
cpu_ranges.update({"nohz_full": vswitch_ranges})
cpu_ranges.update({
"isolcpus": vswitch_ranges,
"rcu_nocbs": rcu_nocbs_ranges,
"kthread_cpus": platform_ranges,
"irqaffinity": platform_ranges
})
for key, value in cpu_ranges.items():
if str(value).strip() != "":
cpu_options += "%s=%s " % (key, value)
cpu_options += "isolcpus=%s rcu_nocbs=%s kthread_cpus=%s " \
"irqaffinity=%s" % (vswitch_ranges,
rcu_nocbs_ranges,
platform_ranges,
platform_ranges)
config.update({
'platform::compute::params::worker_cpu_list':
"\"%s\"" % host_ranges,