kumquat-buildroot/package/linux-tools/Config.in
Dmitry Rokosov 39aaf091ae package/linux-tools: introduce linux mm tools
This toolset was designed to facilitate the testing, monitoring, and
tracing of various things with virtual memory, pages, and slab objects.
It is an invaluable resource for identifying and analyzing
memory-related issues, such as leaks and bottlenecks, and can greatly
enhance one's understanding of memory utilization within a system.

The mm toolset includes:
    - page_owner_sort: userspace helper to sort the output of
      /sys/kernel/debug/page_owner, which helps to know who allocates
      the page from kernel context
    - slabinfo: the tool which gets reports about slabs, for example
      show empty slabs, modify of slab debug options at runtime, display
      all information about a slabcache
    - page-types: a handy tool for querying page flags

Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
[yann.morin.1998@free.fr:
  - don't depend on linux, already a patch dependency
  - don't set CC: default is based on CROSS_COMPILE
  - no need to fully recheck at install time
  - move the option for alphabetical ordering
  - fix check-package
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-02-07 09:50:12 +01:00

260 lines
8.0 KiB
Plaintext

menu "Linux Kernel Tools"
# No prompt, this is sourced by linux/Config.in as this
# is no real package and really belongs to the kernel.
config BR2_PACKAGE_LINUX_TOOLS
bool
config BR2_PACKAGE_LINUX_TOOLS_CPUPOWER
bool "cpupower"
depends on !BR2_STATIC_LIBS
select BR2_PACKAGE_LINUX_TOOLS
select BR2_PACKAGE_PCIUTILS
help
cpupower is a collection of tools to examine and tune power
saving related features of your processor.
comment "cpupower needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
config BR2_PACKAGE_LINUX_TOOLS_GPIO
bool "gpio"
select BR2_PACKAGE_LINUX_TOOLS
help
gpio is a collection of tools to get information about,
control and monitor gpios present on system.
These tools use new gpio ABI which will deprecate sysfs gpio
interface in the future.
These tools are available only from kernel version 4.8.
config BR2_PACKAGE_LINUX_TOOLS_IIO
bool "iio"
select BR2_PACKAGE_LINUX_TOOLS
help
iio is a collection of tools to get information about,
control and monitor iio devices present on system.
These tools are available only from kernel version 4.7.
config BR2_PACKAGE_LINUX_TOOLS_MM
bool "mm"
select BR2_PACKAGE_LINUX_TOOLS
help
mm is a toolset for testing/monitoring/tracing vm/pages/slabs
objects.
- page_owner_sort: userspace helper to sort the output of
/sys/kernel/debug/page_owner, which helps to know who
allocates the page from kernel context
- slabinfo: the tool which gets reports about slabs, for
example show empty slabs, modify of slab debug options at
runtime, display all information about a slabcache
- page-types: a handy tool for querying page flags
These tools are available only from kernel version 3.4.
config BR2_PACKAGE_LINUX_TOOLS_PCI
bool "pci"
select BR2_PACKAGE_LINUX_TOOLS
help
pcitest is a tool for testing capabilities related to a
PCI Endpoint (only works with specific Endpoints).
These tools are available only from kernel version 4.20.
comment "perf needs a toolchain w/ dynamic library, threads"
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_LINUX_TOOLS_PERF
bool "perf"
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_STATIC_LIBS # dlfcn.h
depends on BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_LINUX_TOOLS
help
perf (sometimes "Perf Events" or perf tools, originally
"Performance Counters for Linux") - is a performance
analyzing tool in Linux, available from kernel version
2.6.31. User-space controlling utility, called 'perf' has
git-like interface with subcommands. It is capable of
statistical profiling of entire system (both kernel and user
code), single CPU or severals threads.
This will build and install the userspace 'perf'
command.
Your kernel must have CONFIG_PERF_EVENTS enabled to use perf
profiling. Buildroot automatically enables this in the kernel
configuration.
https://perf.wiki.kernel.org/
if BR2_PACKAGE_LINUX_TOOLS_PERF
config BR2_PACKAGE_LINUX_TOOLS_PERF_SCRIPTS
bool "enable installation of perf scripts"
help
Enable the installation of the perf scripts under
/usr/libexec/perf-core/ which is necessary for running "perf
tests"
config BR2_PACKAGE_LINUX_TOOLS_PERF_TUI
bool "enable perf TUI"
depends on BR2_USE_MMU # slang
select BR2_PACKAGE_SLANG
help
Enable the TUI interface for perf which requires a TTY and
enables zooming into DSOs and threads as well as other
features.
config BR2_PACKAGE_LINUX_TOOLS_PERF_NEEDS_HOST_PYTHON3
bool "perf need python3 to build"
select BR2_PACKAGE_HOST_PYTHON3
help
Starting with linux 6.0, parts of the perf source code
is generated by running a python3 script.
endif
config BR2_PACKAGE_LINUX_TOOLS_RTLA
bool "rtla"
depends on BR2_TOOLCHAIN_HAS_THREADS # libtracefs
depends on !BR2_STATIC_LIBS # libtracefs
select BR2_PACKAGE_LINUX_TOOLS
select BR2_PACKAGE_LIBTRACEFS
help
These tracers allow performing latency analysis, for which the
rtla tool provides wrapper commands to visualize and extract
latency traces and reports.
rtla includes three tracers, which have been introduced in
different kernel versions:
- Linux 5.19 introduced the osnoise and timerlat tracers,
- Linux 6.3 introduced the hwnoise tracer
osnoise and timerlat are always installed, while hwnoise is
installed if your kernel is recent enough.
Note: rtla in kernels before 5.19 had additional dependencies,
not available in Buildroot, so only rtla in kernels 5.19
onwards is actually supported in Buildroot.
comment "rtla needs a toolchain w/ threads, dynamic library"
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
config BR2_PACKAGE_LINUX_TOOLS_SELFTESTS
bool"selftests"
depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # bash
depends on BR2_USE_MMU # bash
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 # util-linux schedutils
select BR2_PACKAGE_LINUX_TOOLS
select BR2_PACKAGE_BASH # runtime
select BR2_PACKAGE_NCURSES
select BR2_PACKAGE_NCURSES_TARGET_PROGS # runtime (tput)
select BR2_PACKAGE_KMOD
select BR2_PACKAGE_KMOD_TOOLS # runtime (modprobe -n)
select BR2_PACKAGE_POPT
select BR2_PACKAGE_LIBCAP_NG
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS # runtime (taskset)
select BR2_PACKAGE_OPENSSL if BR2_x86_64
help
Build and install (to /usr/lib/kselftests) kernel selftests.
Use of this option implies you know the process of using and
compiling the kernel selftests. The Makefile to build and
install these is very noisy and may appear to cause your
build to fail for strange reasons.
This is very much a use at your risk option and may not work
for every setup or every architecture.
comment "selftests needs BR2_PACKAGE_BUSYBOX_SHOW_OTHERS and a toolchain w/ dynamic library and headers >= 3.14"
depends on BR2_USE_MMU
depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS || \
BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
config BR2_PACKAGE_LINUX_TOOLS_USBTOOLS
bool "USB test programs"
select BR2_PACKAGE_LINUX_TOOLS
help
Build and install the USB test tools.
These tools exist since Linux 2.6.35, but Buildroot can build
them only with kernel versions 5.9 and later.
if BR2_PACKAGE_LINUX_TOOLS_USBTOOLS
config BR2_PACKAGE_LINUX_TOOLS_USBTOOLS_TESTUSB
bool "testusb"
help
testusb issues ioctls to perform the tests implemented by the
kernel driver. It can generate a variety of transfer
patterns.
See http://www.linux-usb.org/usbtest/
config BR2_PACKAGE_LINUX_TOOLS_USBTOOLS_FFSTEST
bool "ffs-test"
help
User mode filesystem api for usb composite function
endif
config BR2_PACKAGE_LINUX_TOOLS_TMON
bool "tmon"
depends on BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_LINUX_TOOLS
select BR2_PACKAGE_NCURSES
help
tmon is a terminal-based tool (using curses) that allows the
user to access thermal information about the system.
comment "tmon needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_LINUX_TOOLS_HV
bool "hv"
depends on BR2_i386 || BR2_x86_64
select BR2_PACKAGE_LINUX_TOOLS
select BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON if !BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE
help
Microsoft HyperV integration services
Relevant kernel configuration options: CONFIG_HYPERV,
CONFIG_HYPERV_UTILS.
if BR2_PACKAGE_LINUX_TOOLS_HV
config BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE
bool
config BR2_PACKAGE_LINUX_TOOLS_HV_KVP_DAEMON
bool "hypervkvpd (hv_kvp_daemon)"
help
HyperV uses hypervkvpd (Key/Value Pair daemon) to retrieve
status information from your virtualized guest OS
config BR2_PACKAGE_LINUX_TOOLS_HV_FCOPY_DAEMON
bool "hypervfcopyd (hv_fcopy_daemon)"
select BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE
help
HyperV uses hypervfcopyd (File Copy daemon) to easily transfer
files to and from your virtualized guest OS
config BR2_PACKAGE_LINUX_TOOLS_HV_VSS_DAEMON
bool "hypervvssd (hv_vss_daemon)"
select BR2_PACKAGE_LINUX_TOOLS_HV_HAS_ONE
help
HyperV uses hypervvssd (Volume Snapshot Service daemon) to
freeze your filesystems during snapshots and backups
endif # BR2_PACKAGE_LINUX_TOOLS_HV
endmenu