Spdk/scripts/rpc/app.py
Karol Latecki df2c932e09 scripts/rpc: fix framework_set_schedule period parameter
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
2021-01-18 08:17:28 +00:00

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')