All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@elte.hu>, Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH 2/4] ring-buffer: only periodically call cond_resched to ring-buffer-benchmark
Date: Fri, 08 May 2009 00:32:52 -0400	[thread overview]
Message-ID: <20090508043331.301908320@goodmis.org> (raw)
In-Reply-To: 20090508043250.372421144@goodmis.org

[-- Attachment #1: 0002-ring-buffer-only-periodically-call-cond_resched-to.patch --]
[-- Type: text/plain, Size: 1483 bytes --]

From: Steven Rostedt <srostedt@redhat.com>

Calling cond_resched at every iteration of the loop adds a bit of
overhead to the benchmark.

This patch does two things.

1) only calls cond-resched when CONFIG_PREEMPT is not enabled
2) only calls cond-resched after so many traces has been performed.

[ Impact: less overhead to the ring-buffer-benchmark ]

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 kernel/trace/ring_buffer_benchmark.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/kernel/trace/ring_buffer_benchmark.c b/kernel/trace/ring_buffer_benchmark.c
index f4ceb45..a7c048b 100644
--- a/kernel/trace/ring_buffer_benchmark.c
+++ b/kernel/trace/ring_buffer_benchmark.c
@@ -218,16 +218,23 @@ static void ring_buffer_producer(void)
 		}
 		do_gettimeofday(&end_tv);
 
-		if (consumer && !(++cnt % wakeup_interval))
+		cnt++;
+		if (consumer && !(cnt % wakeup_interval))
 			wake_up_process(consumer);
 
+#ifndef CONFIG_PREEMPT
 		/*
 		 * If we are a non preempt kernel, the 10 second run will
 		 * stop everything while it runs. Instead, we will call
 		 * cond_resched and also add any time that was lost by a
 		 * rescedule.
+		 *
+		 * Do a cond resched at the same frequency we would wake up
+		 * the reader.
 		 */
-		cond_resched();
+		if (cnt % wakeup_interval)
+			cond_resched();
+#endif
 
 	} while (end_tv.tv_sec < (start_tv.tv_sec + RUN_TIME) && !kill_test);
 	pr_info("End ring buffer hammer\n");
-- 
1.6.2.4

-- 

  parent reply	other threads:[~2009-05-08  4:35 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-08  4:32 [PATCH 0/4] [GIT PULL] tracing/ring-buffer: updates for tip Steven Rostedt
2009-05-08  4:32 ` [PATCH 1/4] tracing: have menu default enabled when kernel debug is configured Steven Rostedt
2009-05-08  4:32 ` Steven Rostedt [this message]
2009-05-08  4:32 ` [PATCH 3/4] ring-buffer: add total count in ring-buffer-benchmark Steven Rostedt
2009-05-08  4:52   ` Andrew Morton
2009-05-08 10:52     ` Steven Rostedt
2009-05-08  4:32 ` [PATCH 4/4] ring-buffer: change WARN_ON from checking preempt_count to preemptible Steven Rostedt
2009-05-08  4:54   ` Andrew Morton
2009-05-08 10:53     ` Steven Rostedt
2009-05-08 11:31       ` Ingo Molnar
2009-05-08 16:56       ` Andrew Morton
2009-05-08 17:23         ` Steven Rostedt
2009-05-08 11:30 ` [PATCH 0/4] [GIT PULL] tracing/ring-buffer: updates for tip Ingo Molnar

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=20090508043331.301908320@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    /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.