Go to file
Ingo Molnar f913f3a655 perf/core improvements and fixes:
New features:
 
 - Add more triggers to switch the output file (perf.data.TIMESTAMP).
 
   Now, in addition to switching to a different output file when
   receiving a SIGUSR2, one can also specify file size and time based
   triggers:
 
        perf record -a --switch-output=signal
 
   is equivalent to what we had before:
 
        perf record -a --switch-output
 
   While we can also ask for the file to be "sliced" by size, taking
   into account that that will happen only when we get woken up by
   the kernel, i.e. one has to take into account the --mmap-pages (the
   size of the perf mmap ring buffer):
 
        perf record -a --switch-output=2G
 
   will break the perf.data output into multiple files limited to 2GB
   of samples, right when generating the output.
 
   For time based samples, alert() will be used, so to have 1 minute
   limited perf.data output files:
 
       perf record -a --switch-output=1m
 
   (Jiri Olsa)
 
 - Remove the need to use -e only for syscalls and --event only for
   tracepoints/HW/SW/etc events, i.e. now one can use:
 
       perf trace -e nanosleep,futex,sched:sched_switch ./workload
 
   or:
 
       perf trace --event nanosleep,futex,sched:sched_switch ./workload
 
   And have it tracing raw_syscalls:sys_{enter,exit} for the nanosleep
   and futex syscalls, formatting those as strace does while also
   tracing sched:sched_switch, ordering it all into one strace like
   output.
 
   Using '!' as the first character in the -e/--event argument remains
   a way to negate the list of syscalls, i.e. all syscalls except for
   the ones specified, doesn't affect the other kinds of events.
 
   E.g:
 
   [root@jouet ~] # perf trace -e sched:sched_switch,nanosleep usleep 1
      0.000 ( 0.028 ms): usleep/28150 nanosleep(rqtp: 0x7ffe4201b9f0) ...
      0.028 (         ): sched:sched_switch:usleep:28150 [120] S ==> swapper/0:0 [120])
      0.000 ( 0.065 ms): usleep/28150  ... [continued]: nanosleep()) = 0
   [root@jouet ~]#
 
   (Arnaldo Carvalho de Melo)
 
 - 'perf kallsyms' toy tool to look for extended symbol information on
   the running kernel and demonstrate the machine/thread/symbol APIs for
   use in other tools, such as 'perf probe' (Arnaldo Carvalho de Melo)
 
 Infrastructure:
 
 - Add missing linux/kernel.h include to subcmd.h (Arnaldo Carvalho de Melo)
   tools: Sync x86's vmx.h with the kernel
 
 - Create libdir directory before installing libperf-jvmti.so (Laura Abbott)
 
 - Fix typo in perf_evlist__start_workload() (Soramichi Akiyama)
 
 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJYdo7BAAoJENZQFvNTUqpA+dUP/0D4ha5gxJGnUFMUhYDj6HwC
 CLIfr54fh11rEyLrz5Yp5i2NYKqRvKgYOOTy8tKdJcihXE3PuClUJLqMyenWt9NP
 e9zXIKi4ug82kMeAImYrKDHXRaXy5U5X3DLx6//gRkTQwDC2pH+zK+WpUUANrlHL
 nu9rR3L7zSgtjsHLfdC7Nj0aDxe5dZZJScOBjUv0+bzsZo2EnbNLR8z0WWpTSJ72
 +0+4TgAm/3eg99G6MLAILn8Y7BCT0eIMZtEVXRgjqwm4b1xpE2BzK64yxfatU62f
 GVd7PSwfGiKxVy62ughh9ZPvQASTr63AhdfFnfjLnfUZY1VRLIcY3/Dttw5Mv1m5
 vHosPWkUjcXbpxZ7DNlgKJqkcXOTW4wZJ+RsYHJthszqcqQuRHxF2BEAp+utJdxK
 UuQVORpqaG0W8pHqvDjBT+M/1gTRA+Rc9RUj/bCOUbKarpOUMW5XO/IGn8CpHgDB
 Fpr2usPoAxT4FhYUUpbpB9gagdreI2Ntqs3FAMkbO2wxIxdNEztBJFrVhuac5wg4
 YQzjwWhC44Dw4X5Yt0uIydOaeA8buEM6oKVKiyCuduz3rlWrjhAdKKoIXbpPQwBj
 mhLMx6quQAokVCI1lYl9a6LpOwvE98HKzdYq69aDymdLaBssCBtblO2OFaM92dzT
 SnbLWQzFbFWUizTMXn9v
 =MfnZ
 -----END PGP SIGNATURE-----

Merge tag 'perf-core-for-mingo-4.11-20170111' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core

Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:

New features:

- Add more triggers to switch the output file (perf.data.TIMESTAMP).

  Now, in addition to switching to a different output file when
  receiving a SIGUSR2, one can also specify file size and time based
  triggers:

       perf record -a --switch-output=signal

  is equivalent to what we had before:

       perf record -a --switch-output

  While we can also ask for the file to be "sliced" by size, taking
  into account that that will happen only when we get woken up by
  the kernel, i.e. one has to take into account the --mmap-pages (the
  size of the perf mmap ring buffer):

       perf record -a --switch-output=2G

  will break the perf.data output into multiple files limited to 2GB
  of samples, right when generating the output.

  For time based samples, alert() will be used, so to have 1 minute
  limited perf.data output files:

      perf record -a --switch-output=1m

  (Jiri Olsa)

- Remove the need to use -e only for syscalls and --event only for
  tracepoints/HW/SW/etc events, i.e. now one can use:

      perf trace -e nanosleep,futex,sched:sched_switch ./workload

  or:

      perf trace --event nanosleep,futex,sched:sched_switch ./workload

  And have it tracing raw_syscalls:sys_{enter,exit} for the nanosleep
  and futex syscalls, formatting those as strace does while also
  tracing sched:sched_switch, ordering it all into one strace like
  output.

  Using '!' as the first character in the -e/--event argument remains
  a way to negate the list of syscalls, i.e. all syscalls except for
  the ones specified, doesn't affect the other kinds of events.

  E.g:

  [root@jouet ~] # perf trace -e sched:sched_switch,nanosleep usleep 1
     0.000 ( 0.028 ms): usleep/28150 nanosleep(rqtp: 0x7ffe4201b9f0) ...
     0.028 (         ): sched:sched_switch:usleep:28150 [120] S ==> swapper/0:0 [120])
     0.000 ( 0.065 ms): usleep/28150  ... [continued]: nanosleep()) = 0
  [root@jouet ~]#

  (Arnaldo Carvalho de Melo)

- 'perf kallsyms' toy tool to look for extended symbol information on
  the running kernel and demonstrate the machine/thread/symbol APIs for
  use in other tools, such as 'perf probe' (Arnaldo Carvalho de Melo)

Infrastructure improvements:

- Add missing linux/kernel.h include to subcmd.h (Arnaldo Carvalho de Melo)
  tools: Sync x86's vmx.h with the kernel

- Create libdir directory before installing libperf-jvmti.so (Laura Abbott)

- Fix typo in perf_evlist__start_workload() (Soramichi Akiyama)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-01-12 09:23:25 +01:00
Documentation Documentation/unaligned-memory-access.txt: fix incorrect comparison operator 2016-12-27 13:08:42 -07:00
arch perf/x86/intel: Use ULL constant to prevent undefined shift behaviour 2017-01-11 16:43:30 +01:00
block ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
certs certs: Add a secondary system keyring that can be added to dynamically 2016-04-11 22:48:09 +01:00
crypto crypto: testmgr - Use heap buffer for acomp test input 2016-12-27 17:32:11 +08:00
drivers Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2016-12-27 17:51:36 -08:00
firmware WHENCE: use https://linuxtv.org for LinuxTV URLs 2015-12-04 10:35:11 -02:00
fs ext4: Simplify DAX fault path 2016-12-26 20:29:25 -08:00
include Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm 2017-01-01 12:27:05 -08:00
init mm: add PageWaiters indicating tasks are waiting for a page bit 2016-12-25 11:54:48 -08:00
ipc ipc/sem: avoid idr tree lookup for interrupted semop 2016-12-14 16:04:08 -08:00
kernel smp/hotplug: Undo tglxs brainfart 2016-12-26 17:30:24 -08:00
lib Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-25 14:30:04 -08:00
mm Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm 2017-01-01 12:27:05 -08:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-27 16:04:37 -08:00
samples perf/urgent fixes and one improvement: 2017-01-05 08:33:02 +01:00
scripts Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2016-12-22 10:03:52 -08:00
security Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
sound ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
tools tools: Sync x86's vmx.h with the kernel 2017-01-11 16:48:02 -03:00
usr initramfs: allow again choice of the embedded initram compression algorithm 2016-12-14 16:04:08 -08:00
virt Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-25 14:30:04 -08:00
.cocciconfig scripts: add Linux .cocciconfig for coccinelle 2016-07-22 12:13:39 +02:00
.get_maintainer.ignore Add hch to .get_maintainer.ignore 2015-08-21 14:30:10 -07:00
.gitattributes .gitattributes: set git diff driver for C source code files 2016-10-07 18:46:30 -07:00
.gitignore Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-08-02 16:48:52 -04:00
.mailmap Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-10-15 09:26:12 -07:00
COPYING
CREDITS CREDITS: Remove outdated address information 2016-12-21 15:21:29 -08:00
Kbuild scripts/gdb: provide linux constants 2016-05-23 17:04:14 -07:00
Kconfig
MAINTAINERS Watchdog updates for v4.10 2016-12-24 11:27:45 -08:00
Makefile Linux 4.10-rc2 2017-01-01 14:31:53 -08:00
README README: add a new README file, pointing to the Documentation/ 2016-10-24 08:12:35 -02:00

README

Linux kernel
============

This file was moved to Documentation/admin-guide/README.rst

Please notice that there are several guides for kernel developers and users.
These guides can be rendered in a number of formats, like HTML and PDF.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.