Period parameter is marked as optional in rpc.py. This works as long the rpc call is issued with rpc.py, as argparse sets period to "None" by default. This patch makes it an optional argument as well directly in app.py. Signed-off-by: Karol Latecki <karol.latecki@intel.com> Change-Id: I2e3cae6df7edd7fc6e1120ee3d4a2655dc60813a Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5942 Reviewed-by: Michal Berger <michalx.berger@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot
107 lines
2.5 KiB
Python
107 lines
2.5 KiB
Python
from .helpers import deprecated_alias
|
|
|
|
|
|
@deprecated_alias('kill_instance')
|
|
def spdk_kill_instance(client, sig_name):
|
|
"""Send a signal to the SPDK process.
|
|
|
|
Args:
|
|
sig_name: signal to send ("SIGINT", "SIGTERM", "SIGQUIT", "SIGHUP", or "SIGKILL")
|
|
"""
|
|
params = {'sig_name': sig_name}
|
|
return client.call('spdk_kill_instance', params)
|
|
|
|
|
|
@deprecated_alias('context_switch_monitor')
|
|
def framework_monitor_context_switch(client, enabled=None):
|
|
"""Query or set state of context switch monitoring.
|
|
|
|
Args:
|
|
enabled: True to enable monitoring; False to disable monitoring; None to query (optional)
|
|
|
|
Returns:
|
|
Current context switch monitoring state (after applying enabled flag).
|
|
"""
|
|
params = {}
|
|
if enabled is not None:
|
|
params['enabled'] = enabled
|
|
return client.call('framework_monitor_context_switch', params)
|
|
|
|
|
|
def framework_get_reactors(client):
|
|
"""Query list of all reactors.
|
|
|
|
Returns:
|
|
List of all reactors.
|
|
"""
|
|
return client.call('framework_get_reactors')
|
|
|
|
|
|
def framework_set_scheduler(client, name, period=None):
|
|
"""Select threads scheduler that will be activated and its period.
|
|
|
|
Args:
|
|
name: Name of a scheduler
|
|
period: Scheduler period in microseconds
|
|
Returns:
|
|
True or False
|
|
"""
|
|
params = {'name': name}
|
|
if period is not None:
|
|
params['period'] = period
|
|
return client.call('framework_set_scheduler', params)
|
|
|
|
|
|
def thread_get_stats(client):
|
|
"""Query threads statistics.
|
|
|
|
Returns:
|
|
Current threads statistics.
|
|
"""
|
|
return client.call('thread_get_stats')
|
|
|
|
|
|
def thread_set_cpumask(client, id, cpumask):
|
|
"""Set the cpumask of the thread whose ID matches to the specified value.
|
|
|
|
Args:
|
|
id: thread ID
|
|
cpumask: cpumask for this thread
|
|
|
|
Returns:
|
|
True or False
|
|
"""
|
|
params = {'id': id, 'cpumask': cpumask}
|
|
return client.call('thread_set_cpumask', params)
|
|
|
|
|
|
def log_enable_timestamps(client, enabled):
|
|
"""Enable or disable timestamps.
|
|
|
|
Args:
|
|
value: on or off
|
|
|
|
Returns:
|
|
None
|
|
"""
|
|
params = {'enabled': enabled}
|
|
return client.call('log_enable_timestamps', params)
|
|
|
|
|
|
def thread_get_pollers(client):
|
|
"""Query current pollers.
|
|
|
|
Returns:
|
|
Current pollers.
|
|
"""
|
|
return client.call('thread_get_pollers')
|
|
|
|
|
|
def thread_get_io_channels(client):
|
|
"""Query current IO channels.
|
|
|
|
Returns:
|
|
Current IO channels.
|
|
"""
|
|
return client.call('thread_get_io_channels')
|