config BR2_PACKAGE_SYSSTAT
	bool "sysstat"
	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
	# Uses fork()
	depends on BR2_USE_MMU
	help
	  The sysstat utilities are a collection of performance
	  monitoring tools for Linux. These include sar, sadf, mpstat,
	  iostat, pidstat and sa tools.

	  Some Features :

	   * Input / Output and transfer rate statistics (global, per
	     device, per partition, per network filesystem and per
	     Linux task / PID)
	   * CPU statistics (global, per CPU and per Linux task /
	     PID), including support for virtualization architectures
	   * Memory and swap space utilization statistics
	   * Virtual memory, paging and fault statistics
	   * Per-task (per-PID) memory and page fault statistics
	   * Global CPU and page fault statistics for tasks and all
	     their children
	   * Process creation activity
	   * Interrupt statistics (global, per CPU and per interrupt,
	     including potential APIC interrupt sources)
	   * Extensive network statistics: network interface activity
	     (number of packets and kB received and transmitted per
	     second, etc.) including failures from network devices;
	     network traffic statistics for IP, TCP, ICMP and UDP
	     protocols based on SNMPv2 standards; support for
	     IPv6-related protocols.
	   * NFS server and client activity
	   * Socket statistics
	   * Run queue and system load statistics
	   * Kernel internal tables utilization statistics
	   * System and per Linux task switching activity
	   * Swapping statistics
	   * TTY device activity
	   * Power management statistics

	  http://pagesperso-orange.fr/sebastien.godard/
