linux/Documentation
Linus Torvalds 9c2b957db1 Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf events changes for v3.4 from Ingo Molnar:

 - New "hardware based branch profiling" feature both on the kernel and
   the tooling side, on CPUs that support it.  (modern x86 Intel CPUs
   with the 'LBR' hardware feature currently.)

   This new feature is basically a sophisticated 'magnifying glass' for
   branch execution - something that is pretty difficult to extract from
   regular, function histogram centric profiles.

   The simplest mode is activated via 'perf record -b', and the result
   looks like this in perf report:

	$ perf record -b any_call,u -e cycles:u branchy

	$ perf report -b --sort=symbol
	    52.34%  [.] main                   [.] f1
	    24.04%  [.] f1                     [.] f3
	    23.60%  [.] f1                     [.] f2
	     0.01%  [k] _IO_new_file_xsputn    [k] _IO_file_overflow
	     0.01%  [k] _IO_vfprintf_internal  [k] _IO_new_file_xsputn
	     0.01%  [k] _IO_vfprintf_internal  [k] strchrnul
	     0.01%  [k] __printf               [k] _IO_vfprintf_internal
	     0.01%  [k] main                   [k] __printf

   This output shows from/to branch columns and shows the highest
   percentage (from,to) jump combinations - i.e.  the most likely taken
   branches in the system.  "branches" can also include function calls
   and any other synchronous and asynchronous transitions of the
   instruction pointer that are not 'next instruction' - such as system
   calls, traps, interrupts, etc.

   This feature comes with (hopefully intuitive) flat ascii and TUI
   support in perf report.

 - Various 'perf annotate' visual improvements for us assembly junkies.
   It will now recognize function calls in the TUI and by hitting enter
   you can follow the call (recursively) and back, amongst other
   improvements.

 - Multiple threads/processes recording support in perf record, perf
   stat, perf top - which is activated via a comma-list of PIDs:

	perf top -p 21483,21485
	perf stat -p 21483,21485 -ddd
	perf record -p 21483,21485

 - Support for per UID views, via the --uid paramter to perf top, perf
   report, etc.  For example 'perf top --uid mingo' will only show the
   tasks that I am running, excluding other users, root, etc.

 - Jump label restructurings and improvements - this includes the
   factoring out of the (hopefully much clearer) include/linux/static_key.h
   generic facility:

	struct static_key key = STATIC_KEY_INIT_FALSE;

	...

	if (static_key_false(&key))
	        do unlikely code
	else
	        do likely code

	...
	static_key_slow_inc();
	...
	static_key_slow_inc();
	...

   The static_key_false() branch will be generated into the code with as
   little impact to the likely code path as possible.  the
   static_key_slow_*() APIs flip the branch via live kernel code patching.

   This facility can now be used more widely within the kernel to
   micro-optimize hot branches whose likelihood matches the static-key
   usage and fast/slow cost patterns.

 - SW function tracer improvements: perf support and filtering support.

 - Various hardenings of the perf.data ABI, to make older perf.data's
   smoother on newer tool versions, to make new features integrate more
   smoothly, to support cross-endian recording/analyzing workflows
   better, etc.

 - Restructuring of the kprobes code, the splitting out of 'optprobes',
   and a corner case bugfix.

 - Allow the tracing of kernel console output (printk).

 - Improvements/fixes to user-space RDPMC support, allowing user-space
   self-profiling code to extract PMU counts without performing any
   system calls, while playing nice with the kernel side.

 - 'perf bench' improvements

 - ... and lots of internal restructurings, cleanups and fixes that made
   these features possible.  And, as usual this list is incomplete as
   there were also lots of other improvements

* 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (120 commits)
  perf report: Fix annotate double quit issue in branch view mode
  perf report: Remove duplicate annotate choice in branch view mode
  perf/x86: Prettify pmu config literals
  perf report: Enable TUI in branch view mode
  perf report: Auto-detect branch stack sampling mode
  perf record: Add HEADER_BRANCH_STACK tag
  perf record: Provide default branch stack sampling mode option
  perf tools: Make perf able to read files from older ABIs
  perf tools: Fix ABI compatibility bug in print_event_desc()
  perf tools: Enable reading of perf.data files from different ABI rev
  perf: Add ABI reference sizes
  perf report: Add support for taken branch sampling
  perf record: Add support for sampling taken branch
  perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK
  x86/kprobes: Split out optprobe related code to kprobes-opt.c
  x86/kprobes: Fix a bug which can modify kernel code permanently
  x86/kprobes: Fix instruction recovery on optimized path
  perf: Add callback to flush branch_stack on context switch
  perf: Disable PERF_SAMPLE_BRANCH_* when not supported
  perf/x86: Add LBR software filter support for Intel CPUs
  ...
2012-03-20 10:29:15 -07:00
..
ABI Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-01-14 12:32:16 -08:00
accounting Documentation: update cgroupfs mount point 2011-06-15 21:52:50 -07:00
acpi acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec 2012-01-18 01:14:17 -05:00
aoe Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
arm ARM: move iotable mappings within the vmalloc region 2011-11-26 19:21:26 -05:00
auxdisplay
blackfin doc: fix broken references 2011-09-27 18:08:04 +02:00
block Documentation: drop as block elevator reference in switching-sched.txt 2011-11-04 12:01:48 -07:00
blockdev cciss: auto engage SCSI mid layer at driver load time 2011-11-16 09:21:49 +01:00
cdrom doc: fix broken references 2011-09-27 18:08:04 +02:00
cgroups memcg: fix pgpgin/pgpgout documentation 2012-01-12 20:13:06 -08:00
connector Documentation/: it's -> its where appropriate 2010-04-23 02:09:52 +02:00
console doc: fix console doc typo 2010-02-24 13:51:32 +01:00
cpu-freq Doc: cpufreq: Fix typo and outdated line 2011-11-08 10:23:29 +01:00
cpuidle
cris
crypto
development-process Documentation: Update stable address 2011-12-12 14:14:31 -08:00
device-mapper dm log userspace: fix comment hyphens 2011-10-31 20:21:22 +00:00
devicetree doc: dt: Fix broken reference in gpio-leds documentation 2012-02-27 10:28:04 -06:00
DocBook docbook: fix fatal errors in device-drivers docbook and add DMA Management section 2012-02-01 17:28:26 -08:00
driver-model Documentation: devres: add allocation functions to list of supported calls 2012-01-24 10:47:42 -08:00
dvb [media] dvb_get_firmware: updates for it913x 2011-12-11 09:00:48 -02:00
early-userspace
fault-injection fault-injection: update documentation with the mmc module param 2011-10-26 16:32:13 -04:00
fb fbdev: Add FOURCC-based format configuration API 2011-12-19 20:07:13 +00:00
filesystems Merge branch 'for-3.3' of git://linux-nfs.org/~bfields/linux 2012-01-14 12:26:41 -08:00
firmware_class firmware: Update hotplug script 2010-08-05 13:53:34 -07:00
frv doc: fix broken references 2011-09-27 18:08:04 +02:00
hid HID: Move hiddev.txt to the new Documentation/hid directory 2011-03-22 11:43:51 +01:00
hwmon hwmon: (zl6100) Enable interval between chip accesses for all chips 2012-03-14 09:17:03 -07:00
i2c i2c: Fix device name for 10-bit slave address 2011-11-23 11:33:07 +01:00
i2o doc: i2o: fix typo 'Settting' 2011-06-07 16:06:01 +02:00
ia64 Fix common misspellings 2011-03-31 11:26:23 -03:00
ide
infiniband Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
input Input: ALPS - fix touchpad detection when buttons are pressed 2012-02-24 00:46:45 -08:00
ioctl NVMe: New driver 2011-11-04 15:52:51 -04:00
isdn doc: fix wrong arch/i386 references 2011-06-13 13:43:05 +02:00
ja_JP Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2011-07-25 23:06:24 -07:00
kbuild kbuild: Add support for an "archheaders" target 2011-11-17 13:35:20 -08:00
kdump [S390] Add s390x description to Documentation/kdump/kdump.txt 2011-12-27 11:27:13 +01:00
ko_KR Docs/Kconfig: Update: osdl.org -> linuxfoundation.org 2010-11-15 23:50:13 +01:00
laptops Documentation: thinkpad-acpi grammo fixes 2011-11-04 12:01:47 -07:00
leds Documentation: fix leds-class.txt duplicated word 2011-11-04 12:01:48 -07:00
m68k Documentation: add pointer to name_to_dev_t for root= values 2011-08-03 14:25:21 -10:00
make kbuild: introduce HDR_ARCH_LIST for headers_install_all 2010-12-14 22:16:19 +01:00
mips Fix common misspellings 2011-03-31 11:26:23 -03:00
misc-devices Fix common misspellings 2011-03-31 11:26:23 -03:00
mmc mmc: core: Fixup delayed work clock gating patch 2012-01-11 23:58:43 -05:00
mn10300
mtd Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
namespaces
netlabel Documentation/: it's -> its where appropriate 2010-04-23 02:09:52 +02:00
networking bonding: document undocumented active_slave sysfs entry. 2011-12-26 20:09:35 -05:00
nfc NFC: Driver for NXP Semiconductors PN544 NFC chip. 2011-01-13 08:03:19 -08:00
parisc
PCI doc: fix broken references 2011-09-27 18:08:04 +02:00
pcmcia pcmcia: use autoconfiguration feature for ioports and iomem 2010-09-29 17:20:24 +02:00
power PM / Documentation: Fix minor issue in freezing_of_tasks.txt 2012-01-19 23:22:49 +01:00
powerpc Fix common misspellings 2011-03-31 11:26:23 -03:00
pps pps: add parallel port PPS signal generator 2011-01-13 08:03:21 -08:00
prctl
pti Kernel documentation for the PTI feature. 2011-05-13 16:31:00 -07:00
ptp ptp: Added a brand new class driver for ptp clocks. 2011-05-23 13:01:00 -07:00
rapidio RapidIO: documentation update 2011-11-02 16:07:02 -07:00
RCU rcu: Call out dangers of expedited RCU primitives 2012-02-21 09:06:08 -08:00
s390 [S390] Remove Kerntypes leftovers 2011-12-27 11:27:12 +01:00
scheduler sched: Add documentation for bandwidth control 2011-08-14 12:03:58 +02:00
scsi [SCSI] qla4xxx: Update license 2012-01-16 12:34:12 +04:00
security Merge branch 'master'; commit 'v3.2-rc2' into next 2011-11-16 12:39:48 +11:00
serial serial/documentation: fix documented name of DCD cpp symbol 2012-01-04 16:26:32 -08:00
sh sh: clkfwk: Kill off unused clk_set_rate_ex(). 2010-11-15 18:25:12 +09:00
sound Merge branch 'topic/hda' into for-linus 2012-01-12 09:59:18 +01:00
sparc
spi doc: fix broken references 2011-09-27 18:08:04 +02:00
sysctl Documentation: add missing tainted bits to Documentation/sysctl/kernel.txt 2012-02-06 16:29:19 -08:00
target target: tcm_mod_builder: small fixups 2011-12-14 11:38:25 +00:00
telephony Fix common misspellings 2011-03-31 11:26:23 -03:00
thermal thermal: Rename generate_netlink_event 2012-01-23 03:15:25 -05:00
timers doc: fix broken references 2011-09-27 18:08:04 +02:00
trace ftrace: Append wakeup_rt description of ftrace doc 2012-02-13 09:14:48 -05:00
usb USB: update documentation for usbmon 2012-01-04 16:04:30 -08:00
vDSO Document the vDSO and add a reference parser 2011-07-14 17:57:09 -07:00
video4linux [media] V4L2 Spec: fix extended control documentation 2012-01-16 09:37:53 -02:00
virtual lguest: remove reference from Documentation/virtual/00-INDEX 2012-01-28 08:10:23 +10:30
vm slub: document setting min order with debug_guardpage_minorder > 0 2012-01-12 20:13:04 -08:00
w1 Fix common misspellings 2011-03-31 11:26:23 -03:00
watchdog watchdog: documentation: describe nowayout in coversion-guide 2012-01-06 15:26:14 +01:00
wimax
x86 x86-64, doc: Remove int 0xcc from entry_64.S documentation 2011-08-16 08:04:08 -07:00
zh_CN remove the messy code file Documentation/zh_CN/SubmitChecklist 2011-09-26 16:18:41 -07:00
.gitignore add random binaries to .gitignore 2010-04-08 11:34:34 +02:00
00-INDEX Documentation: add Ramoops usage description 2011-08-13 18:34:03 -07:00
applying-patches.txt
atomic_ops.txt doc: Add load/store guarantees to Documentation/atomic-ops.txt 2011-12-11 10:31:58 -08:00
bad_memory.txt
basic_profiling.txt
binfmt_misc.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
BUG-HUNTING
bus-virt-phys-mapping.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
cachetlb.txt mm: convert mm->cpu_vm_cpumask into cpumask_var_t 2011-05-25 08:39:21 -07:00
Changes Documentation/Changes: remove some really obsolete text 2011-07-11 16:48:38 -07:00
circular-buffers.txt Document Linux's circular buffering capabilities 2010-03-24 16:31:22 -07:00
coccinelle.txt coccinelle.txt: update documentation to include M= option 2012-01-14 22:25:56 +01:00
CodingStyle Documentation: update CodingStyle use of braces 2011-11-04 12:01:47 -07:00
cpu-hotplug.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
cpu-load.txt
cputopology.txt topology/sysfs: Provide book id and siblings attributes 2010-09-09 20:41:25 +02:00
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
devices.txt vhost-net: add module alias (v2.1) 2012-01-13 10:12:23 -08:00
digsig.txt crypto: digital signature verification support 2011-11-09 12:10:37 +02:00
DMA-API-HOWTO.txt Documentation/DMA-API-HOWTO.txt: fix misleading example 2011-07-26 16:49:45 -07:00
DMA-API.txt include/linux/dma-mapping.h: add dma_zalloc_coherent() 2011-11-02 16:07:02 -07:00
DMA-attributes.txt
dma-buf-sharing.txt dma-buf: Documentation update for Kconfig select 2012-01-13 10:27:33 +00:00
DMA-ISA-LPC.txt
dmaengine.txt DMAEngine: Define interleaved transfer request api 2011-11-18 12:16:24 +05:30
dontdiff [S390] Remove Kerntypes leftovers 2011-12-27 11:27:12 +01:00
dynamic-debug-howto.txt Merge branch 'docs-next' of git://git.lwn.net/linux-2.6 2011-03-27 19:46:59 -07:00
edac.txt Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
eisa.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
email-clients.txt Documentation: email-clients: Add better Thunderbird information 2011-08-13 18:34:03 -07:00
feature-removal-schedule.txt ARM: at91: removal of CAP9 SoC family 2012-01-20 15:08:38 +01:00
flexible-arrays.txt flex_array: flex_array_prealloc takes a number of elements, not an end 2011-04-28 16:12:47 -04:00
futex-requeue-pi.txt
gcov.txt
gpio.txt Revert "gpiolib: annotate gpio-intialization with __must_check" 2011-01-13 17:26:46 -08:00
highuid.txt
HOWTO Documentation: Update stable address 2011-12-12 14:14:31 -08:00
hw_random.txt
hwspinlock.txt hwspinlock/core: register a bank of hwspinlocks in a single API call 2011-09-21 19:45:34 +03:00
init.txt init/main.c: improve usability in case of init binary failure 2010-03-06 11:26:29 -08:00
initrd.txt
intel_txt.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
Intel-IOMMU.txt
io_ordering.txt
io-mapping.txt
iostats.txt Documentation/iostats.txt: bit-size reference etc. 2011-03-23 20:44:18 +01:00
IPMI.txt IPMI: Add the document description of ipmi_get_smi_info 2010-12-14 00:22:00 -05:00
IRQ-affinity.txt bitmap, irq: add smp_affinity_list interface to /proc/irq 2011-05-25 08:39:45 -07:00
IRQ.txt
irqflags-tracing.txt Fix common misspellings 2011-03-31 11:26:23 -03:00
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt docbook: warn on unused doc entries 2010-09-11 16:49:21 -07:00
kernel-docs.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
kernel-parameters.txt kmsg_dump: don't run on non-error paths by default 2012-03-05 15:49:42 -08:00
kmemcheck.txt
kmemleak.txt kmemleak: Handle percpu memory allocation 2011-12-02 16:12:42 +00:00
kobject.txt kobject: documentation: Update to refer to kset-example.c. 2010-03-19 07:12:20 -07:00
kprobes.txt tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
kref.txt kref: Fix typo in kref documentation 2011-03-07 13:20:05 -08:00
ldm.txt Documentation: update broken web addresses. 2010-08-04 15:21:40 +02:00
local_ops.txt
lockdep-design.txt lockdep: Update documentation for lock-class leak detection 2011-12-11 10:31:23 -08:00
lockstat.txt Documentation: Add statistics about nested locks 2011-05-28 17:03:29 +02:00
lockup-watchdogs.txt watchdog: Update documentation 2012-02-11 15:11:28 +01:00
logo.gif
logo.txt
magic-number.txt doc: fix wrong arch/i386 references 2011-06-13 13:43:05 +02:00
Makefile [media] Remove the old V4L1 v4lgrab.c file 2010-12-29 08:17:12 -02:00
ManagementStyle
mca.txt doc: fix wrong arch/i386 references 2011-06-13 13:43:05 +02:00
md.txt md: create externally visible flags for supporting hot-replace. 2011-12-23 10:17:51 +11:00
media-framework.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
memory-barriers.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
memory-hotplug.txt memory hotplug: Allow memory blocks to span multiple memory sections 2011-02-03 16:08:57 -08:00
memory.txt
mono.txt
mutex-design.txt mutex: Fix annotations to include it in kernel-locking docbook 2010-09-03 08:19:51 +02:00
nommu-mmap.txt nommu: fix malloc performance by adding uninitialized flag 2009-12-15 08:53:24 -08:00
numastat.txt
oops-tracing.txt module,bug: Add TAINT_OOT_MODULE flag for modules not built in-tree 2011-11-07 07:54:42 +10:30
padata.txt Documentation/padata.txt: fix typos etc. 2010-08-11 08:59:18 -07:00
parport-lowlevel.txt
parport.txt
pi-futex.txt
pinctrl.txt pinctrl: fix some pinmux typos 2012-01-26 14:11:31 +01:00
pnp.txt doc: capitalization and other minor fixes in pnp doc 2010-02-05 12:22:44 +01:00
preempt-locking.txt
printk-formats.txt Documentation: update printk-formats.txt 2011-06-15 21:52:50 -07:00
prio_tree.txt
ramoops.txt Documentation: add Ramoops usage description 2011-08-13 18:34:03 -07:00
rbtree.txt Documentation: Update augmented rbtree documentation 2011-07-24 10:03:05 -07:00
rfkill.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
robust-futex-ABI.txt
robust-futexes.txt
rt-mutex-design.txt variable name fix to Documentation/rt-mutex-design.txt 2010-06-05 17:39:09 +02:00
rt-mutex.txt
rtc.txt RTC: Fix up rtc.txt documentation to reflect changes to generic rtc layer 2011-03-09 11:25:10 -08:00
SAK.txt
SecurityBugs Fix common misspellings 2011-03-31 11:26:23 -03:00
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
SM501.txt
sparse.txt update email address 2010-07-19 10:56:54 +02:00
spinlocks.txt Documentation/spinlocks.txt: Remove reference to sti()/cli() 2011-07-11 12:45:04 -07:00
stable_api_nonsense.txt doc: stable_api_nonsense.txt: fix paragraph to make more sense. 2011-03-30 12:02:05 +02:00
stable_kernel_rules.txt stable: update documentation to ask for kernel version 2012-01-24 10:50:22 -08:00
static-keys.txt static keys: Add docs better explaining the whole 'struct static_key' mechanism 2012-02-24 09:12:19 +01:00
SubmitChecklist Documentation/SubmitChecklist: add RCU debug config options 2011-07-25 20:57:17 -07:00
SubmittingDrivers Documentation: SubmittingDrivers: fix Linus's git tree URL 2011-08-13 18:34:03 -07:00
SubmittingPatches Documentation: fix spelling error in SubmittingPatches 2011-08-13 18:34:02 -07:00
svga.txt
sysfs-rules.txt Fix typos in comments 2010-03-16 11:47:56 +01:00
sysrq.txt documentation: update sysrq.txt magic sysrq keys 2010-10-26 17:32:41 -07:00
unaligned-memory-access.txt
unicode.txt
unshare.txt
VGA-softcursor.txt
vgaarbiter.txt misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
video-output.txt
volatile-considered-harmful.txt Documentation/volatile-considered-harmful.txt: correct cpu_relax() documentation 2010-03-24 16:31:20 -07:00
workqueue.txt workqueue: Document debugging tricks 2011-03-31 13:40:42 +02:00
xz.txt decompressors: add XZ decompressor module 2011-01-13 08:03:24 -08:00
zorro.txt