linux/arch
Alexander Shishkin ab92b232ae perf/x86/intel/pt: Generate PMI in the STOP region as well
Currently, the PT driver always sets the PMI bit one region (page) before
the STOP region so that we can wake up the consumer before we run out of
room in the buffer and have to disable the event. However, we also need
an interrupt in the last output region, so that we actually get to disable
the event (if no more room from new data is available at that point),
otherwise hardware just quietly refuses to start, but the event is
scheduled in and we end up losing trace data till the event gets removed.

For a cpu-wide event it is even worse since there may not be any
re-scheduling at all and no chance for the ring buffer code to notice
that its buffer is filled up and the event needs to be disabled (so that
the consumer can re-enable it when it finishes reading the data out). In
other words, all the trace data will be lost after the buffer gets filled
up.

This patch makes PT also generate a PMI when the last output region is
full.

Reported-by: Markus Metzger <markus.t.metzger@intel.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: <stable@vger.kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@infradead.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Cc: vince@deater.net
Link: http://lkml.kernel.org/r/1462886313-13660-2-git-send-email-alexander.shishkin@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-05-12 14:45:59 +02:00
..
alpha
arc ARC: support HIGHMEM even without PAE40 2016-05-05 16:35:46 +05:30
arm Merge branch 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm 2016-05-07 08:27:35 -07:00
arm64 Here are a couple last-minute fixes for ARM SoCs. Most of them 2016-05-05 15:31:35 -07:00
avr32
blackfin
c6x
cris
frv
h8300
hexagon
ia64
m32r
m68k Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu 2016-04-13 08:58:32 -07:00
metag
microblaze
mips MIPS: traps.c: Verify the ISA for microMIPS RDHWR emulation 2016-04-04 15:25:34 +02:00
mn10300
nios2 nios2: memset: use the right constraint modifier for the %4 output operand 2016-04-27 16:35:55 +08:00
openrisc
parisc parisc: fix a bug when syscall number of tracee is __NR_Linux_syscalls 2016-05-06 15:09:07 +02:00
powerpc powerpc fixes for 4.6 #4 2016-05-06 11:05:07 -07:00
s390 s390/mm: fix asce_bits handling with dynamic pagetable levels 2016-04-21 09:50:09 +02:00
score
sh
sparc sparc64: Fix bootup regressions on some Kconfig combinations. 2016-04-27 17:27:37 -04:00
tile
um
unicore32
x86 perf/x86/intel/pt: Generate PMI in the STOP region as well 2016-05-12 14:45:59 +02:00
xtensa
.gitignore
Kconfig