mirror of https://gitee.com/openkylin/linux.git
scripts/gdb: add cpu iterators
The linux kernel provides macro's for iterating against values from the cpu_list masks. By providing some commonly used masks, we can mirror the kernels helper macros with easy to use generators. Link: http://lkml.kernel.org/r/d045c6599771ada1999d49612ee30fd2f9acf17f.1462865983.git.jan.kiszka@siemens.com Signed-off-by: Kieran Bingham <kieran.bingham@linaro.org> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
c1a153992e
commit
b1503934a5
|
@ -100,6 +100,44 @@ def cpu_list(mask_name):
|
|||
yield cpu
|
||||
|
||||
|
||||
def each_online_cpu():
|
||||
for cpu in cpu_list("__cpu_online_mask"):
|
||||
yield cpu
|
||||
|
||||
|
||||
def each_present_cpu():
|
||||
for cpu in cpu_list("__cpu_present_mask"):
|
||||
yield cpu
|
||||
|
||||
|
||||
def each_possible_cpu():
|
||||
for cpu in cpu_list("__cpu_possible_mask"):
|
||||
yield cpu
|
||||
|
||||
|
||||
def each_active_cpu():
|
||||
for cpu in cpu_list("__cpu_active_mask"):
|
||||
yield cpu
|
||||
|
||||
|
||||
class LxCpus(gdb.Command):
|
||||
"""List CPU status arrays
|
||||
|
||||
Displays the known state of each CPU based on the kernel masks
|
||||
and can help identify the state of hotplugged CPUs"""
|
||||
|
||||
def __init__(self):
|
||||
super(LxCpus, self).__init__("lx-cpus", gdb.COMMAND_DATA)
|
||||
|
||||
def invoke(self, arg, from_tty):
|
||||
gdb.write("Possible CPUs : {}\n".format(list(each_possible_cpu())))
|
||||
gdb.write("Present CPUs : {}\n".format(list(each_present_cpu())))
|
||||
gdb.write("Online CPUs : {}\n".format(list(each_online_cpu())))
|
||||
gdb.write("Active CPUs : {}\n".format(list(each_active_cpu())))
|
||||
|
||||
LxCpus()
|
||||
|
||||
|
||||
class PerCpu(gdb.Function):
|
||||
"""Return per-cpu variable.
|
||||
|
||||
|
|
Loading…
Reference in New Issue