From: Vaibhav Nagarnaik <vnagarnaik@google.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Michael Rubin <mrubin@google.com>,
David Sharp <dhsharp@google.com>,
linux-kernel@vger.kernel.org,
Vaibhav Nagarnaik <vnagarnaik@google.com>
Subject: [PATCH v2 0/5] Add dynamic updates to trace ring buffer
Date: Tue, 16 Aug 2011 14:46:14 -0700 [thread overview]
Message-ID: <1313531179-9323-1-git-send-email-vnagarnaik@google.com> (raw)
In-Reply-To: <1311721194-12164-1-git-send-email-vnagarnaik@google.com>
These patches are in response to the fact that sometimes there is higher
rate of events generated on some CPUs as compared to others. This makes
it inefficient to have equal memory size allocated to each of the
per-cpu ring buffers.
This patch series adds 3 things to achieve this:
* Add a way to measure the rate of events generated on a CPU. This is a
part of patch#2 which makes the 'stats' files print out the number of
bytes in the ring buffer, the oldest time stamp ("head ts"), and the
current time stamp ("now ts"). The rate is measured as: bytes /
(now-head)
* The next patch#3 adds the flexibility to assign different sizes to
individual per-cpu ring buffers. This is done by adding a
"buffer_size_kb" debugfs file entry under per_cpu/* directories.
* The final two patches provide a way to change the size of ring
buffer concurrent to events being added to the ring buffer. Patch#4
adds functionality to remove pages from the ring buffer and patch#5
adds functionality to add pages to the ring buffer.
Patch#1 adds a debugfs entry "buffer_total_size_kb" which provides the
total memory allocated for the ring buffer.
This makes it easy for a user process to monitor the rate at which the
ring buffers are being filled up and update the individual per-cpu ring
buffer sizes in response to it.
Changelog v2-v1:
* This changes the logic of page removal from the ring buffer, based on
comments from Steven Rostedt about the racey behavior of earlier code.
* Some other changes to the functionality and variable names as asked by
Steven Rostedt.
Vaibhav Nagarnaik (5):
trace: Add a new readonly entry to report total buffer size
trace: Add ring buffer stats to measure rate of events
trace: Add per_cpu ring buffer control files
trace: Make removal of ring buffer pages atomic
trace: Make addition of pages in ring buffer atomic
include/linux/ring_buffer.h | 8 +-
kernel/trace/ring_buffer.c | 543 ++++++++++++++++++++++++++++++-------------
kernel/trace/trace.c | 247 +++++++++++++++-----
kernel/trace/trace.h | 2 +-
4 files changed, 583 insertions(+), 217 deletions(-)
--
1.7.3.1
next prev parent reply other threads:[~2011-08-16 21:47 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-26 22:59 [PATCH 0/5] Add dynamic updates to trace ring buffer Vaibhav Nagarnaik
2011-07-26 22:59 ` [PATCH 1/5] trace: Add a new readonly entry to report total buffer size Vaibhav Nagarnaik
2011-07-29 18:01 ` Steven Rostedt
2011-07-29 19:09 ` Vaibhav Nagarnaik
2011-07-26 22:59 ` [PATCH 2/5] trace: Add ring buffer stats to measure rate of events Vaibhav Nagarnaik
2011-07-29 18:10 ` Steven Rostedt
2011-07-29 19:10 ` Vaibhav Nagarnaik
2011-07-26 22:59 ` [PATCH 3/5] trace: Add per_cpu ring buffer control files Vaibhav Nagarnaik
2011-07-29 18:14 ` Steven Rostedt
2011-07-29 19:13 ` Vaibhav Nagarnaik
2011-07-29 21:25 ` Steven Rostedt
2011-07-26 22:59 ` [PATCH 4/5] trace: Make removal of ring buffer pages atomic Vaibhav Nagarnaik
2011-07-29 21:23 ` Steven Rostedt
2011-07-29 23:30 ` Vaibhav Nagarnaik
2011-07-30 1:12 ` Steven Rostedt
2011-07-30 1:50 ` David Sharp
2011-07-30 2:43 ` Steven Rostedt
2011-07-30 3:44 ` David Sharp
2011-07-26 22:59 ` [PATCH 5/5] trace: Make addition of pages in ring buffer atomic Vaibhav Nagarnaik
2011-08-16 21:46 ` Vaibhav Nagarnaik [this message]
2011-08-16 21:46 ` [PATCH v2 1/5] trace: Add a new readonly entry to report total buffer size Vaibhav Nagarnaik
2011-08-16 21:46 ` [PATCH v2 2/5] trace: Add ring buffer stats to measure rate of events Vaibhav Nagarnaik
2011-08-16 21:46 ` [PATCH v2 3/5] trace: Add per_cpu ring buffer control files Vaibhav Nagarnaik
2011-08-22 20:29 ` Steven Rostedt
2011-08-22 20:36 ` Vaibhav Nagarnaik
2011-08-22 22:09 ` [PATCH v3] " Vaibhav Nagarnaik
2011-08-23 0:49 ` Steven Rostedt
2011-08-23 1:16 ` Vaibhav Nagarnaik
2011-08-23 1:17 ` Vaibhav Nagarnaik
2011-09-03 2:45 ` Steven Rostedt
2011-09-06 18:56 ` Vaibhav Nagarnaik
2011-09-07 17:13 ` Steven Rostedt
2011-10-12 1:20 ` [PATCH v4 1/4] " Vaibhav Nagarnaik
2012-01-31 23:53 ` Vaibhav Nagarnaik
2012-02-02 2:42 ` Steven Rostedt
2012-02-02 19:20 ` Vaibhav Nagarnaik
2012-02-02 20:00 ` [PATCH v5 " Vaibhav Nagarnaik
2012-02-02 20:00 ` [PATCH v5 2/4] trace: Make removal of ring buffer pages atomic Vaibhav Nagarnaik
2012-04-21 4:27 ` Steven Rostedt
2012-04-23 17:31 ` Vaibhav Nagarnaik
2012-04-25 21:18 ` [PATCH v6 1/3] " Vaibhav Nagarnaik
2012-04-25 21:18 ` [PATCH v6 2/3] trace: Make addition of pages in ring buffer atomic Vaibhav Nagarnaik
2012-04-25 21:18 ` [PATCH v6 3/3] trace: change CPU ring buffer state from tracing_cpumask Vaibhav Nagarnaik
2012-05-03 1:55 ` [PATCH v6 1/3] trace: Make removal of ring buffer pages atomic Steven Rostedt
2012-05-03 6:40 ` Vaibhav Nagarnaik
2012-05-03 12:57 ` Steven Rostedt
2012-05-03 14:12 ` Steven Rostedt
2012-05-03 18:43 ` Vaibhav Nagarnaik
2012-05-03 18:54 ` Steven Rostedt
2012-05-03 18:54 ` Vaibhav Nagarnaik
2012-05-04 1:59 ` [PATCH v7 " Vaibhav Nagarnaik
2012-05-04 1:59 ` [PATCH v7 2/3] trace: Make addition of pages in ring buffer atomic Vaibhav Nagarnaik
2012-05-19 10:18 ` [tip:perf/core] ring-buffer: " tip-bot for Vaibhav Nagarnaik
2012-05-04 1:59 ` [PATCH v7 3/3] trace: change CPU ring buffer state from tracing_cpumask Vaibhav Nagarnaik
2012-05-19 10:21 ` [tip:perf/core] tracing: " tip-bot for Vaibhav Nagarnaik
2012-05-07 20:22 ` [PATCH v7 1/3] trace: Make removal of ring buffer pages atomic Steven Rostedt
2012-05-07 21:48 ` Vaibhav Nagarnaik
2012-05-08 0:14 ` Steven Rostedt
2012-05-09 3:38 ` Steven Rostedt
2012-05-09 5:00 ` Vaibhav Nagarnaik
2012-05-09 14:29 ` Steven Rostedt
2012-05-09 17:46 ` Vaibhav Nagarnaik
2012-05-09 17:54 ` Steven Rostedt
2012-05-19 10:17 ` [tip:perf/core] ring-buffer: " tip-bot for Vaibhav Nagarnaik
2012-02-02 20:00 ` [PATCH v5 3/4] trace: Make addition of pages in ring buffer atomic Vaibhav Nagarnaik
2012-02-02 20:00 ` [PATCH v5 4/4] trace: change CPU ring buffer state from tracing_cpumask Vaibhav Nagarnaik
2012-03-08 23:51 ` [PATCH v5 1/4] trace: Add per_cpu ring buffer control files Vaibhav Nagarnaik
2012-05-02 21:03 ` [tip:perf/core] ring-buffer: " tip-bot for Vaibhav Nagarnaik
2011-10-12 1:20 ` [PATCH v4 2/4] trace: Make removal of ring buffer pages atomic Vaibhav Nagarnaik
2011-10-12 1:20 ` [PATCH v4 3/4] trace: Make addition of pages in ring buffer atomic Vaibhav Nagarnaik
2011-10-12 1:20 ` [PATCH v4 4/4] trace: change CPU ring buffer state from tracing_cpumask Vaibhav Nagarnaik
2011-08-16 21:46 ` [PATCH v2 4/5] trace: Make removal of ring buffer pages atomic Vaibhav Nagarnaik
2011-08-23 3:27 ` Steven Rostedt
2011-08-23 18:55 ` Vaibhav Nagarnaik
2011-08-23 18:55 ` [PATCH v3 " Vaibhav Nagarnaik
2011-08-23 19:16 ` David Sharp
2011-08-23 19:20 ` Vaibhav Nagarnaik
2011-08-23 19:24 ` Steven Rostedt
2011-08-23 18:55 ` [PATCH v3 5/5] trace: Make addition of pages in ring buffer atomic Vaibhav Nagarnaik
2011-08-16 21:46 ` [PATCH v2 " Vaibhav Nagarnaik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1313531179-9323-1-git-send-email-vnagarnaik@google.com \
--to=vnagarnaik@google.com \
--cc=dhsharp@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mrubin@google.com \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.