* 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (40 commits) tracing: Separate raw syscall from syscall tracer ring-buffer-benchmark: Add parameters to set produce/consumer priorities tracing, function tracer: Clean up strstrip() usage ring-buffer benchmark: Run producer/consumer threads at nice +19 tracing: Remove the stale include/trace/power.h tracing: Only print objcopy version warning once from recordmcount tracing: Prevent build warning: 'ftrace_graph_buf' defined but not used ring-buffer: Move access to commit_page up into function used tracing: do not disable interrupts for trace_clock_local ring-buffer: Add multiple iterations between benchmark timestamps kprobes: Sanitize struct kretprobe_instance allocations tracing: Fix to use __always_unused attribute compiler: Introduce __always_unused tracing: Exit with error if a weak function is used in recordmcount.pl tracing: Move conditional into update_funcs() in recordmcount.pl tracing: Add regex for weak functions in recordmcount.pl tracing: Move mcount section search to front of loop in recordmcount.pl tracing: Fix objcopy revision check in recordmcount.pl tracing: Check absolute path of input file in recordmcount.pl tracing: Correct the check for number of arguments in recordmcount.pl ...
Showing the changes to kernel/trace/ring_buffer.c (1 of 28 files). Show all
Unified · Split
| @@ -1787,9 +1787,9 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer, · 1786 unmodified lines | |||
| 1787 | static struct ring_buffer_event * | 1787 | static struct ring_buffer_event * |
| 1788 | rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer, | 1788 | rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer, |
| 1789 | unsigned long length, unsigned long tail, | 1789 | unsigned long length, unsigned long tail, |
| 1790 | struct buffer_page *commit_page, | ||
| 1791 | struct buffer_page *tail_page, u64 *ts) | 1790 | struct buffer_page *tail_page, u64 *ts) |
| 1792 | { | 1791 | { |
| 1792 | struct buffer_page *commit_page = cpu_buffer->commit_page; | ||
| 1793 | struct ring_buffer *buffer = cpu_buffer->buffer; | 1793 | struct ring_buffer *buffer = cpu_buffer->buffer; |
| 1794 | struct buffer_page *next_page; | 1794 | struct buffer_page *next_page; |
| 1795 | int ret; | 1795 | int ret; |
| @@ -1892,13 +1892,10 @@ static struct ring_buffer_event * · 96 unmodified lines | |||
| 1892 | __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer, | 1892 | __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer, |
| 1893 | unsigned type, unsigned long length, u64 *ts) | 1893 | unsigned type, unsigned long length, u64 *ts) |
| 1894 | { | 1894 | { |
| 1895 | struct buffer_page *tail_page, *commit_page; | 1895 | struct buffer_page *tail_page; |
| 1896 | struct ring_buffer_event *event; | 1896 | struct ring_buffer_event *event; |
| 1897 | unsigned long tail, write; | 1897 | unsigned long tail, write; |
| 1898 | 1898 | ||
| 1899 | commit_page = cpu_buffer->commit_page; | ||
| 1900 | /* we just need to protect against interrupts */ | ||
| 1901 | barrier(); | ||
| 1902 | tail_page = cpu_buffer->tail_page; | 1899 | tail_page = cpu_buffer->tail_page; |
| 1903 | write = local_add_return(length, &tail_page->write); | 1900 | write = local_add_return(length, &tail_page->write); |
| 1904 | 1901 | ||
| @@ -1909,7 +1906,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer, · 4 unmodified lines | |||
| 1909 | /* See if we shot pass the end of this buffer page */ | 1906 | /* See if we shot pass the end of this buffer page */ |
| 1910 | if (write > BUF_PAGE_SIZE) | 1907 | if (write > BUF_PAGE_SIZE) |
| 1911 | return rb_move_tail(cpu_buffer, length, tail, | 1908 | return rb_move_tail(cpu_buffer, length, tail, |
| 1912 | commit_page, tail_page, ts); | 1909 | tail_page, ts); |
| 1913 | 1910 | ||
| 1914 | /* We reserved something on the buffer */ | 1911 | /* We reserved something on the buffer */ |
| 1915 | 1912 | ||