Spdk/test/event/scheduler/scheduler_plugin.py
Tomasz Zawadzki 453b15d62d test/scheduler: application to test behaviour of schedulers
This is an application designed to provide custom RPC
interface for testing scheduler and governor implementations.

Based on those RPCs scenarios later can be implemented to verify
functionality. Tests added here verify just the app itself.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I74b81234b95d815864cf8264705d728e3a7fe309
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5763
Community-CI: Broadcom CI
Reviewed-by: Maciej Szwed <maciej.szwed@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Michal Berger <michalx.berger@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2021-01-22 18:31:25 +00:00

42 lines
1.5 KiB
Python

from rpc.client import print_json
def thread_create(args):
params = {'active': args.active}
if args.name:
params['name'] = args.name
if args.cpu_mask:
params['cpu_mask'] = args.cpu_mask
return args.client.call('scheduler_thread_create', params)
def create_thread(args):
print_json(thread_create(args))
def thread_set_active(args):
params = {'thread_id': args.thread_id, 'active': args.active}
return args.client.call('scheduler_thread_set_active', params)
def thread_delete(args):
params = {'thread_id': args.thread_id}
return args.client.call('scheduler_thread_delete', params)
def spdk_rpc_plugin_initialize(subparsers):
p = subparsers.add_parser('scheduler_thread_create', help='Create spdk thread')
p.add_argument('-n', '--name', help='Name of spdk thread and poller')
p.add_argument('-m', '--cpu_mask', help='CPU mask for spdk thread')
p.add_argument('-a', '--active', help='Percent of time thread is active', type=int)
p.set_defaults(func=create_thread)
p = subparsers.add_parser('scheduler_thread_set_active', help='Change percent of time the spdk thread is active')
p.add_argument('thread_id', help='spdk_thread id', type=int)
p.add_argument('active', help='Percent of time thread is active', type=int)
p.set_defaults(func=thread_set_active)
p = subparsers.add_parser('scheduler_thread_delete', help='Delete spdk thread')
p.add_argument('thread_id', help='spdk_thread id', type=int)
p.set_defaults(func=thread_delete)