2015-04-19 04:34:39 +08:00
|
|
|
# Some of the tools (perf) use same make variables
|
|
|
|
# as in kernel build.
|
|
|
|
export srctree=
|
|
|
|
export objtree=
|
|
|
|
|
2012-04-12 00:36:16 +08:00
|
|
|
include scripts/Makefile.include
|
|
|
|
|
2012-04-12 00:36:17 +08:00
|
|
|
help:
|
|
|
|
@echo 'Possible targets:'
|
|
|
|
@echo ''
|
2014-01-15 12:04:17 +08:00
|
|
|
@echo ' acpi - ACPI tools'
|
2013-01-05 05:05:17 +08:00
|
|
|
@echo ' cgroup - cgroup tools'
|
2012-04-12 00:36:17 +08:00
|
|
|
@echo ' cpupower - a tool for all things x86 CPU power'
|
|
|
|
@echo ' firewire - the userspace part of nosy, an IEEE-1394 traffic sniffer'
|
2014-02-09 19:41:52 +08:00
|
|
|
@echo ' hv - tools used when in Hyper-V clients'
|
2012-04-12 00:36:17 +08:00
|
|
|
@echo ' lguest - a minimal 32-bit x86 hypervisor'
|
|
|
|
@echo ' perf - Linux performance measurement and analysis tool'
|
|
|
|
@echo ' selftests - various kernel selftests'
|
|
|
|
@echo ' turbostat - Intel CPU idle stats and freq reporting tool'
|
|
|
|
@echo ' usb - USB testing tools'
|
|
|
|
@echo ' virtio - vhost test module'
|
filter: add minimal BPF JIT image disassembler
This is a minimal stand-alone user space helper, that allows for debugging or
verification of emitted BPF JIT images. This is in particular useful for
emitted opcode debugging, since minor bugs in the JIT compiler can be fatal.
The disassembler is architecture generic and uses libopcodes and libbfd.
How to get to the disassembly, example:
1) `echo 2 > /proc/sys/net/core/bpf_jit_enable`
2) Load a BPF filter (e.g. `tcpdump -p -n -s 0 -i eth1 host 192.168.20.0/24`)
3) Run e.g. `bpf_jit_disasm -o` to disassemble the most recent JIT code output
`bpf_jit_disasm -o` will display the related opcodes to a particular instruction
as well. Example for x86_64:
$ ./bpf_jit_disasm
94 bytes emitted from JIT compiler (pass:3, flen:9)
ffffffffa0356000 + <x>:
0: push %rbp
1: mov %rsp,%rbp
4: sub $0x60,%rsp
8: mov %rbx,-0x8(%rbp)
c: mov 0x68(%rdi),%r9d
10: sub 0x6c(%rdi),%r9d
14: mov 0xe0(%rdi),%r8
1b: mov $0xc,%esi
20: callq 0xffffffffe0d01b71
25: cmp $0x86dd,%eax
2a: jne 0x000000000000003d
2c: mov $0x14,%esi
31: callq 0xffffffffe0d01b8d
36: cmp $0x6,%eax
[...]
5c: leaveq
5d: retq
$ ./bpf_jit_disasm -o
94 bytes emitted from JIT compiler (pass:3, flen:9)
ffffffffa0356000 + <x>:
0: push %rbp
55
1: mov %rsp,%rbp
48 89 e5
4: sub $0x60,%rsp
48 83 ec 60
8: mov %rbx,-0x8(%rbp)
48 89 5d f8
c: mov 0x68(%rdi),%r9d
44 8b 4f 68
10: sub 0x6c(%rdi),%r9d
44 2b 4f 6c
[...]
5c: leaveq
c9
5d: retq
c3
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-03-20 20:11:47 +08:00
|
|
|
@echo ' net - misc networking tools'
|
2012-04-12 00:36:17 +08:00
|
|
|
@echo ' vm - misc vm tools'
|
|
|
|
@echo ' x86_energy_perf_policy - Intel energy policy tool'
|
tools/thermal: Introduce tmon, a tool for thermal subsystem
Increasingly, Linux is running on thermally constrained devices. The simple
thermal relationship between processor and fan has become past for modern
computers.
As hardware vendors cope with the thermal constraints on their products,
more sensors are added, new cooling capabilities are introduced. The
complexity of the thermal relationship can grow exponentially among cooling
devices, zones, sensors, and trip points. They can also change dynamically.
To expose such relationship to the userspace, Linux generic thermal layer
introduced sysfs entry at /sys/class/thermal with a matrix of symbolic
links, trip point bindings, and device instances. To traverse such
matrix by hand is not a trivial task. Testing is also difficult in that
thermal conditions are often exception cases that hard to reach in
normal operations.
TMON is conceived as a tool to help visualize, tune, and test the
complex thermal subsystem.
Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
2013-10-15 07:02:27 +08:00
|
|
|
@echo ' tmon - thermal monitoring and tuning tool'
|
2015-06-06 21:42:28 +08:00
|
|
|
@echo ' freefall - laptop accelerometer program for disk protection'
|
2012-04-12 00:36:17 +08:00
|
|
|
@echo ''
|
2012-04-12 00:36:18 +08:00
|
|
|
@echo 'You can do:'
|
2013-01-29 18:48:11 +08:00
|
|
|
@echo ' $$ make -C tools/ <tool>_install'
|
2012-04-12 00:36:18 +08:00
|
|
|
@echo ''
|
|
|
|
@echo ' from the kernel command line to build and install one of'
|
|
|
|
@echo ' the tools above'
|
|
|
|
@echo ''
|
|
|
|
@echo ' $$ make tools/install'
|
|
|
|
@echo ''
|
|
|
|
@echo ' installs all tools.'
|
|
|
|
@echo ''
|
2012-04-12 00:36:17 +08:00
|
|
|
@echo 'Cleaning targets:'
|
|
|
|
@echo ''
|
|
|
|
@echo ' all of the above with the "_clean" string appended cleans'
|
|
|
|
@echo ' the respective build directory.'
|
|
|
|
@echo ' clean: a summary clean target to clean _all_ folders'
|
|
|
|
|
2014-01-15 12:04:17 +08:00
|
|
|
acpi: FORCE
|
|
|
|
$(call descend,power/$@)
|
|
|
|
|
2012-04-12 00:36:16 +08:00
|
|
|
cpupower: FORCE
|
2012-11-05 23:15:24 +08:00
|
|
|
$(call descend,power/$@)
|
2012-04-12 00:36:16 +08:00
|
|
|
|
2014-02-09 19:41:52 +08:00
|
|
|
cgroup firewire hv guest usb virtio vm net: FORCE
|
2013-02-20 23:32:30 +08:00
|
|
|
$(call descend,$@)
|
|
|
|
|
2014-05-09 01:34:01 +08:00
|
|
|
liblockdep: FORCE
|
|
|
|
$(call descend,lib/lockdep)
|
|
|
|
|
2015-04-19 04:34:38 +08:00
|
|
|
libapi: FORCE
|
2013-12-10 00:14:23 +08:00
|
|
|
$(call descend,lib/api)
|
2013-02-20 23:32:30 +08:00
|
|
|
|
2015-04-19 04:34:39 +08:00
|
|
|
# The perf build does not follow the descend function setup,
|
|
|
|
# invoking it via it's own make rule.
|
|
|
|
PERF_O = $(if $(O),$(O)/tools/perf,)
|
|
|
|
|
2015-04-19 04:34:38 +08:00
|
|
|
perf: FORCE
|
2015-04-19 04:34:39 +08:00
|
|
|
$(Q)mkdir -p $(PERF_O) .
|
|
|
|
$(Q)$(MAKE) --no-print-directory -C perf O=$(PERF_O) subdir=
|
2012-04-12 00:36:16 +08:00
|
|
|
|
|
|
|
selftests: FORCE
|
2012-11-05 23:15:24 +08:00
|
|
|
$(call descend,testing/$@)
|
2012-04-12 00:36:16 +08:00
|
|
|
|
|
|
|
turbostat x86_energy_perf_policy: FORCE
|
2012-11-05 23:15:24 +08:00
|
|
|
$(call descend,power/x86/$@)
|
2012-04-12 00:36:16 +08:00
|
|
|
|
tools/thermal: Introduce tmon, a tool for thermal subsystem
Increasingly, Linux is running on thermally constrained devices. The simple
thermal relationship between processor and fan has become past for modern
computers.
As hardware vendors cope with the thermal constraints on their products,
more sensors are added, new cooling capabilities are introduced. The
complexity of the thermal relationship can grow exponentially among cooling
devices, zones, sensors, and trip points. They can also change dynamically.
To expose such relationship to the userspace, Linux generic thermal layer
introduced sysfs entry at /sys/class/thermal with a matrix of symbolic
links, trip point bindings, and device instances. To traverse such
matrix by hand is not a trivial task. Testing is also difficult in that
thermal conditions are often exception cases that hard to reach in
normal operations.
TMON is conceived as a tool to help visualize, tune, and test the
complex thermal subsystem.
Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
2013-10-15 07:02:27 +08:00
|
|
|
tmon: FORCE
|
|
|
|
$(call descend,thermal/$@)
|
|
|
|
|
2015-06-06 21:42:28 +08:00
|
|
|
freefall: FORCE
|
|
|
|
$(call descend,laptop/$@)
|
|
|
|
|
2014-01-15 12:04:17 +08:00
|
|
|
acpi_install:
|
|
|
|
$(call descend,power/$(@:_install=),install)
|
|
|
|
|
2012-04-12 00:36:16 +08:00
|
|
|
cpupower_install:
|
2012-11-05 23:15:24 +08:00
|
|
|
$(call descend,power/$(@:_install=),install)
|
2012-04-12 00:36:16 +08:00
|
|
|
|
2014-02-09 19:41:52 +08:00
|
|
|
cgroup_install firewire_install hv_install lguest_install perf_install usb_install virtio_install vm_install net_install:
|
2012-11-05 23:15:24 +08:00
|
|
|
$(call descend,$(@:_install=),install)
|
2012-04-12 00:36:16 +08:00
|
|
|
|
|
|
|
selftests_install:
|
2012-11-05 23:15:24 +08:00
|
|
|
$(call descend,testing/$(@:_clean=),install)
|
2012-04-12 00:36:16 +08:00
|
|
|
|
|
|
|
turbostat_install x86_energy_perf_policy_install:
|
2012-11-05 23:15:24 +08:00
|
|
|
$(call descend,power/x86/$(@:_install=),install)
|
2012-04-12 00:36:16 +08:00
|
|
|
|
tools/thermal: Introduce tmon, a tool for thermal subsystem
Increasingly, Linux is running on thermally constrained devices. The simple
thermal relationship between processor and fan has become past for modern
computers.
As hardware vendors cope with the thermal constraints on their products,
more sensors are added, new cooling capabilities are introduced. The
complexity of the thermal relationship can grow exponentially among cooling
devices, zones, sensors, and trip points. They can also change dynamically.
To expose such relationship to the userspace, Linux generic thermal layer
introduced sysfs entry at /sys/class/thermal with a matrix of symbolic
links, trip point bindings, and device instances. To traverse such
matrix by hand is not a trivial task. Testing is also difficult in that
thermal conditions are often exception cases that hard to reach in
normal operations.
TMON is conceived as a tool to help visualize, tune, and test the
complex thermal subsystem.
Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
2013-10-15 07:02:27 +08:00
|
|
|
tmon_install:
|
|
|
|
$(call descend,thermal/$(@:_install=),install)
|
|
|
|
|
2015-06-06 21:42:28 +08:00
|
|
|
freefall_install:
|
|
|
|
$(call descend,laptop/$(@:_install=),install)
|
|
|
|
|
2014-02-09 19:41:52 +08:00
|
|
|
install: acpi_install cgroup_install cpupower_install hv_install firewire_install lguest_install \
|
2013-01-05 05:05:17 +08:00
|
|
|
perf_install selftests_install turbostat_install usb_install \
|
tools/thermal: Introduce tmon, a tool for thermal subsystem
Increasingly, Linux is running on thermally constrained devices. The simple
thermal relationship between processor and fan has become past for modern
computers.
As hardware vendors cope with the thermal constraints on their products,
more sensors are added, new cooling capabilities are introduced. The
complexity of the thermal relationship can grow exponentially among cooling
devices, zones, sensors, and trip points. They can also change dynamically.
To expose such relationship to the userspace, Linux generic thermal layer
introduced sysfs entry at /sys/class/thermal with a matrix of symbolic
links, trip point bindings, and device instances. To traverse such
matrix by hand is not a trivial task. Testing is also difficult in that
thermal conditions are often exception cases that hard to reach in
normal operations.
TMON is conceived as a tool to help visualize, tune, and test the
complex thermal subsystem.
Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
2013-10-15 07:02:27 +08:00
|
|
|
virtio_install vm_install net_install x86_energy_perf_policy_install \
|
2015-06-06 21:42:28 +08:00
|
|
|
tmon freefall_install
|
2012-04-12 00:36:16 +08:00
|
|
|
|
2014-01-15 12:04:17 +08:00
|
|
|
acpi_clean:
|
|
|
|
$(call descend,power/acpi,clean)
|
|
|
|
|
2012-04-12 00:36:16 +08:00
|
|
|
cpupower_clean:
|
2012-11-05 23:15:24 +08:00
|
|
|
$(call descend,power/cpupower,clean)
|
2012-04-12 00:36:16 +08:00
|
|
|
|
2014-02-09 19:41:52 +08:00
|
|
|
cgroup_clean hv_clean firewire_clean lguest_clean usb_clean virtio_clean vm_clean net_clean:
|
2013-02-20 23:32:30 +08:00
|
|
|
$(call descend,$(@:_clean=),clean)
|
|
|
|
|
2014-05-09 01:34:01 +08:00
|
|
|
liblockdep_clean:
|
|
|
|
$(call descend,lib/lockdep,clean)
|
|
|
|
|
2015-04-19 04:34:38 +08:00
|
|
|
libapi_clean:
|
2013-12-10 00:14:23 +08:00
|
|
|
$(call descend,lib/api,clean)
|
2013-02-20 23:32:30 +08:00
|
|
|
|
2015-04-19 04:34:38 +08:00
|
|
|
perf_clean:
|
2012-11-05 23:15:24 +08:00
|
|
|
$(call descend,$(@:_clean=),clean)
|
2012-04-12 00:36:16 +08:00
|
|
|
|
|
|
|
selftests_clean:
|
2012-11-05 23:15:24 +08:00
|
|
|
$(call descend,testing/$(@:_clean=),clean)
|
2012-04-12 00:36:16 +08:00
|
|
|
|
|
|
|
turbostat_clean x86_energy_perf_policy_clean:
|
2012-11-05 23:15:24 +08:00
|
|
|
$(call descend,power/x86/$(@:_clean=),clean)
|
2012-04-12 00:36:16 +08:00
|
|
|
|
tools/thermal: Introduce tmon, a tool for thermal subsystem
Increasingly, Linux is running on thermally constrained devices. The simple
thermal relationship between processor and fan has become past for modern
computers.
As hardware vendors cope with the thermal constraints on their products,
more sensors are added, new cooling capabilities are introduced. The
complexity of the thermal relationship can grow exponentially among cooling
devices, zones, sensors, and trip points. They can also change dynamically.
To expose such relationship to the userspace, Linux generic thermal layer
introduced sysfs entry at /sys/class/thermal with a matrix of symbolic
links, trip point bindings, and device instances. To traverse such
matrix by hand is not a trivial task. Testing is also difficult in that
thermal conditions are often exception cases that hard to reach in
normal operations.
TMON is conceived as a tool to help visualize, tune, and test the
complex thermal subsystem.
Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
2013-10-15 07:02:27 +08:00
|
|
|
tmon_clean:
|
|
|
|
$(call descend,thermal/tmon,clean)
|
|
|
|
|
2015-06-06 21:42:28 +08:00
|
|
|
freefall_clean:
|
|
|
|
$(call descend,laptop/freefall,clean)
|
|
|
|
|
2014-02-09 19:41:52 +08:00
|
|
|
clean: acpi_clean cgroup_clean cpupower_clean hv_clean firewire_clean lguest_clean \
|
2014-01-15 12:04:17 +08:00
|
|
|
perf_clean selftests_clean turbostat_clean usb_clean virtio_clean \
|
2015-06-06 21:42:28 +08:00
|
|
|
vm_clean net_clean x86_energy_perf_policy_clean tmon_clean freefall_clean
|
2012-04-12 00:36:16 +08:00
|
|
|
|
|
|
|
.PHONY: FORCE
|