3 # Copyright (C) 2024 Tejun Heo <tj@kernel.org>
4 # Copyright (C) 2024 Meta Platforms, Inc. and affiliates.
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.
15 print(s
, file=sys
.stderr
, flush
=True)
19 return int(prog
[name
].value_())
21 def read_atomic(name
):
22 return prog
[name
].counter
.value_()
24 def read_static_key(name
):
25 return prog
[name
].key
.enabled
.counter
.value_()
27 def ops_state_str(state
):
28 return prog
['scx_ops_enable_state_str'][state
].string_().decode()
31 enable_state
= read_atomic("scx_ops_enable_state_var")
33 print(f
'ops : {ops.name.string_().decode()}')
34 print(f
'enabled : {read_static_key("__scx_ops_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 : {ops_state_str(enable_state)} ({enable_state})')
38 print(f
'in_softlockup : {prog["scx_in_softlockup"].value_()}')
39 print(f
'breather_depth: {read_atomic("scx_ops_breather_depth")}')
40 print(f
'bypass_depth : {prog["scx_ops_bypass_depth"].value_()}')
41 print(f
'nr_rejected : {read_atomic("scx_nr_rejected")}')
42 print(f
'enable_seq : {read_atomic("scx_enable_seq")}')