diff options
Diffstat (limited to 'scripts/gdb/linux/cpus.py')
-rw-r--r-- | scripts/gdb/linux/cpus.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/scripts/gdb/linux/cpus.py b/scripts/gdb/linux/cpus.py index 4297b83fedef..ca11e8df31b6 100644 --- a/scripts/gdb/linux/cpus.py +++ b/scripts/gdb/linux/cpus.py | |||
@@ -97,9 +97,47 @@ def cpu_list(mask_name): | |||
97 | bits >>= 1 | 97 | bits >>= 1 |
98 | bit += 1 | 98 | bit += 1 |
99 | 99 | ||
100 | yield int(cpu) | ||
101 | |||
102 | |||
103 | def each_online_cpu(): | ||
104 | for cpu in cpu_list("__cpu_online_mask"): | ||
105 | yield cpu | ||
106 | |||
107 | |||
108 | def each_present_cpu(): | ||
109 | for cpu in cpu_list("__cpu_present_mask"): | ||
110 | yield cpu | ||
111 | |||
112 | |||
113 | def each_possible_cpu(): | ||
114 | for cpu in cpu_list("__cpu_possible_mask"): | ||
115 | yield cpu | ||
116 | |||
117 | |||
118 | def each_active_cpu(): | ||
119 | for cpu in cpu_list("__cpu_active_mask"): | ||
100 | yield cpu | 120 | yield cpu |
101 | 121 | ||
102 | 122 | ||
123 | class LxCpus(gdb.Command): | ||
124 | """List CPU status arrays | ||
125 | |||
126 | Displays the known state of each CPU based on the kernel masks | ||
127 | and can help identify the state of hotplugged CPUs""" | ||
128 | |||
129 | def __init__(self): | ||
130 | super(LxCpus, self).__init__("lx-cpus", gdb.COMMAND_DATA) | ||
131 | |||
132 | def invoke(self, arg, from_tty): | ||
133 | gdb.write("Possible CPUs : {}\n".format(list(each_possible_cpu()))) | ||
134 | gdb.write("Present CPUs : {}\n".format(list(each_present_cpu()))) | ||
135 | gdb.write("Online CPUs : {}\n".format(list(each_online_cpu()))) | ||
136 | gdb.write("Active CPUs : {}\n".format(list(each_active_cpu()))) | ||
137 | |||
138 | LxCpus() | ||
139 | |||
140 | |||
103 | class PerCpu(gdb.Function): | 141 | class PerCpu(gdb.Function): |
104 | """Return per-cpu variable. | 142 | """Return per-cpu variable. |
105 | 143 | ||