Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/sched_ext/scx_show_state.py
26285 views
1
#!/usr/bin/env drgn
2
#
3
# Copyright (C) 2024 Tejun Heo <[email protected]>
4
# Copyright (C) 2024 Meta Platforms, Inc. and affiliates.
5
6
desc = """
7
This is a drgn script to show the current sched_ext state.
8
For more info on drgn, visit https://github.com/osandov/drgn.
9
"""
10
11
import drgn
12
import sys
13
14
def err(s):
15
print(s, file=sys.stderr, flush=True)
16
sys.exit(1)
17
18
def read_int(name):
19
return int(prog[name].value_())
20
21
def read_atomic(name):
22
return prog[name].counter.value_()
23
24
def read_static_key(name):
25
return prog[name].key.enabled.counter.value_()
26
27
def state_str(state):
28
return prog['scx_enable_state_str'][state].string_().decode()
29
30
ops = prog['scx_ops']
31
enable_state = read_atomic("scx_enable_state_var")
32
33
print(f'ops : {ops.name.string_().decode()}')
34
print(f'enabled : {read_static_key("__scx_enabled")}')
35
print(f'switching_all : {read_int("scx_switching_all")}')
36
print(f'switched_all : {read_static_key("__scx_switched_all")}')
37
print(f'enable_state : {state_str(enable_state)} ({enable_state})')
38
print(f'in_softlockup : {prog["scx_in_softlockup"].value_()}')
39
print(f'breather_depth: {read_atomic("scx_breather_depth")}')
40
print(f'bypass_depth : {prog["scx_bypass_depth"].value_()}')
41
print(f'nr_rejected : {read_atomic("scx_nr_rejected")}')
42
print(f'enable_seq : {read_atomic("scx_enable_seq")}')
43
44