#
7a895f53 |
| 03-Nov-2008 |
Ingo Molnar <mingo@elte.hu> |
Merge branches 'tracing/ftrace', 'tracing/markers', 'tracing/mmiotrace', 'tracing/nmisafe', 'tracing/tracepoints' and 'tracing/urgent' into tracing/core
|
#
7b3b6e42 |
| 31-Oct-2008 |
Takashi Iwai <tiwai@suse.de> |
Merge commit 'v2.6.28-rc2' into topic/asoc
|
#
a26a2a27 |
| 31-Oct-2008 |
Steven Rostedt <rostedt@goodmis.org> |
ftrace: nmi safe code clean ups
Impact: cleanup
This patch cleans up the NMI safe code for dynamic ftrace as suggested by Andrew Morton.
Signed-off-by: Steven Rostedt <srostedt@redhat.com> Signed-
ftrace: nmi safe code clean ups
Impact: cleanup
This patch cleans up the NMI safe code for dynamic ftrace as suggested by Andrew Morton.
Signed-off-by: Steven Rostedt <srostedt@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
show more ...
|
#
17666f02 |
| 30-Oct-2008 |
Steven Rostedt <rostedt@goodmis.org> |
ftrace: nmi safe code modification
Impact: fix crashes that can occur in NMI handlers, if their code is modified
Modifying code is something that needs special care. On SMP boxes, if code that is b
ftrace: nmi safe code modification
Impact: fix crashes that can occur in NMI handlers, if their code is modified
Modifying code is something that needs special care. On SMP boxes, if code that is being modified is also being executed on another CPU, that CPU will have undefined results.
The dynamic ftrace uses kstop_machine to make the system act like a uniprocessor system. But this does not address NMIs, that can still run on other CPUs.
One approach to handle this is to make all code that are used by NMIs not be traced. But NMIs can call notifiers that spread throughout the kernel and this will be very hard to maintain, and the chance of missing a function is very high.
The approach that this patch takes is to have the NMIs modify the code if the modification is taking place. The way this works is that just writing to code executing on another CPU is not harmful if what is written is the same as what exists.
Two buffers are used: an IP buffer and a "code" buffer.
The steps that the patcher takes are:
1) Put in the instruction pointer into the IP buffer and the new code into the "code" buffer. 2) Set a flag that says we are modifying code 3) Wait for any running NMIs to finish. 4) Write the code 5) clear the flag. 6) Wait for any running NMIs to finish.
If an NMI is executed, it will also write the pending code. Multiple writes are OK, because what is being written is the same. Then the patcher must wait for all running NMIs to finish before going to the next line that must be patched.
This is basically the RCU approach to code modification.
Thanks to Ingo Molnar for suggesting the idea, and to Arjan van de Ven for his guidence on what is safe and what is not.
Signed-off-by: Steven Rostedt <srostedt@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
show more ...
|
#
d1a76187 |
| 28-Oct-2008 |
Ingo Molnar <mingo@elte.hu> |
Merge commit 'v2.6.28-rc2' into core/locking
Conflicts: arch/um/include/asm/system.h
|
#
7a9787e1 |
| 28-Oct-2008 |
Ingo Molnar <mingo@elte.hu> |
Merge commit 'v2.6.28-rc2' into x86/pci-ioapic-boot-irq-quirks
|
#
e21e696e |
| 06-Nov-2008 |
James Morris <jmorris@namei.org> |
Merge branch 'master' into next
|
#
0a9b8638 |
| 27-Oct-2008 |
Takashi Iwai <tiwai@suse.de> |
Merge branches 'topic/fix/asoc', 'topic/fix/hda', 'topic/fix/misc' and 'topic/pci-ioremap-bar' into for-linus
|
Revision tags: v2.6.28-rc2 |
|
#
8c82a17e |
| 24-Oct-2008 |
Ingo Molnar <mingo@elte.hu> |
Merge commit 'v2.6.28-rc1' into sched/urgent
|
Revision tags: v2.6.28-rc1 |
|
#
d9214556 |
| 23-Oct-2008 |
Haavard Skinnemoen <haavard.skinnemoen@atmel.com> |
Merge branches 'boards' and 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6
|
#
057316cc |
| 23-Oct-2008 |
Len Brown <len.brown@intel.com> |
Merge branch 'linus' into test
Conflicts: MAINTAINERS arch/x86/kernel/acpi/boot.c arch/x86/kernel/acpi/sleep.c drivers/acpi/Kconfig drivers/pnp/Makefile drivers/pnp/quirks.c
Signed-off-by: Le
Merge branch 'linus' into test
Conflicts: MAINTAINERS arch/x86/kernel/acpi/boot.c arch/x86/kernel/acpi/sleep.c drivers/acpi/Kconfig drivers/pnp/Makefile drivers/pnp/quirks.c
Signed-off-by: Len Brown <len.brown@intel.com>
show more ...
|
#
f20e3b5f |
| 22-Oct-2008 |
Russell King <rmk@dyn-67.arm.linux.org.uk> |
Merge branch 'for-rmk' of git://git.android.com/kernel into devel
|
#
a02efb90 |
| 21-Oct-2008 |
Benjamin Herrenschmidt <benh@kernel.crashing.org> |
Merge commit 'origin' into master
Manual merge of:
arch/powerpc/Kconfig arch/powerpc/include/asm/page.h
|
#
ed402af3 |
| 20-Oct-2008 |
Linus Torvalds <torvalds@linux-foundation.org> |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (112 commits) sh: Move SH-4 CPU headers down one more level. sh:
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (112 commits) sh: Move SH-4 CPU headers down one more level. sh: Only build in gpio.o when CONFIG_GENERIC_GPIO is selected. sh: Migrate common board headers to mach-common/. sh: Move the CPU definition headers from asm/ to cpu/. serial: sh-sci: Add support SCIF of SH7723 video: add sh_mobile_lcdc platform flags video: remove unused sh_mobile_lcdc platform data sh: remove consistent alloc cruft sh: add dynamic crash base address support sh: reduce Migo-R smc91x overruns sh: Fix up some merge damage. Fix debugfs_create_file's error checking method for arch/sh/mm/ Fix debugfs_create_dir's error checking method for arch/sh/kernel/ sh: ap325rxa: Add support RTC RX-8564LC in AP325RXA board sh: Use sh7720 GPIO on magicpanelr2 board sh: Add sh7720 pinmux code sh: Use sh7203 GPIO on rsk7203 board sh: Add sh7203 pinmux code sh: Use sh7723 GPIO on AP325RXA board sh: Add sh7723 pinmux code ...
show more ...
|
Revision tags: v2.6.27, v2.6.27-rc9, v2.6.27-rc8, v2.6.27-rc7 |
|
#
4b4cf759 |
| 21-Sep-2008 |
Paul Mundt <lethal@linux-sh.org> |
sh: Add missing asm/ftrace.h.
This was missed with the ftrace support commit.. check it in now.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
|