Skip to content

Commit

Permalink
thread-context: support new object thread-context
Browse files Browse the repository at this point in the history
Includes support in avocado-vt for a new object:
thread-context. The intention of this new object
is to be used to make NUMA aware of the memory
preallocation threads.

Signed-off-by: mcasquer <[email protected]>
  • Loading branch information
mcasquer committed Aug 22, 2023
1 parent e20d6f4 commit 51aabf8
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
14 changes: 14 additions & 0 deletions virttest/qemu_devices/qcontainer.py
Original file line number Diff line number Diff line change
Expand Up @@ -2896,6 +2896,20 @@ def throttle_group_define_by_params(self, group_params, name):
props = json.loads(group_params.get("throttle_group_parameters", "{}"))
return QThrottleGroup(name, props)

def thread_context_define_by_params(self, params, name):
"""
Create thread-context object from params.
"""
tc_params = Params()
prefix = 'vm_thread_context_'
for key in list(params.keys()):
if key.startswith(prefix):
new_key = key.rsplit(prefix)[1]
tc_params[new_key] = params[key]
dev = qdevices.QObject("thread-context", params=tc_params)
dev.set_param("id", "%s-%s" % ("thread_context", name))
return dev

def memory_object_define_by_params(self, params, name):
"""
Create memory object from params, default backend type is
Expand Down
12 changes: 12 additions & 0 deletions virttest/qemu_vm.py
Original file line number Diff line number Diff line change
Expand Up @@ -1252,6 +1252,15 @@ def set_value(opt_string, key, fallback=None):

return secret_cmdline + " -spice %s" % (",".join(spice_opts))

def add_thread_context(devices, params):
for thread_context in params.objects("vm_thread_contexts"):
thread_context_params = params.object_params(thread_context)
dev = devices.thread_context_define_by_params(thread_context_params, thread_context)
set_cmdline_format_by_cfg(dev, self._get_cmdline_format_cfg(),
"thread_contexts")
devices.insert(dev)
return devices

def add_qxl(qxl_nr, base_addr=29):
"""
adds extra qxl devices
Expand Down Expand Up @@ -1766,6 +1775,9 @@ def add_secure_guest_descriptor(params):
add_memorys(devices, params)
mem = int(params.get("mem", 0))

# Add thread context object
add_thread_context(devices, params)

# Get cpu model, before add smp, to determine cpu topology
cpu_model = params.get("cpu_model", "")
use_default_cpu_model = True
Expand Down

0 comments on commit 51aabf8

Please sign in to comment.