public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: William Lee Irwin III <wli@holomorphy.com>
To: John Hawkes <hawkes@sgi.com>
Cc: Andrea Arcangeli <andrea@novell.com>,
	Andrew Morton <akpm@osdl.org>, Ray Bryant <raybry@sgi.com>,
	linux-kernel@vger.kernel.org, Jesse Barnes <jbarnes@engr.sgi.com>,
	Rusty Russell <rusty@rustcorp.com.au>
Subject: Re: [profile] amortize atomic hit count increments
Date: Tue, 14 Sep 2004 14:04:22 -0700	[thread overview]
Message-ID: <20040914210422.GM9106@holomorphy.com> (raw)
In-Reply-To: <20040914200453.GI9106@holomorphy.com>

On Tue, Sep 14, 2004 at 12:00:30PM -0700, William Lee Irwin III wrote:
>>> Goddamn fscking short-format VHPT crap. Rusty, how the hell do I
>>> hotplug-ize this?

On Tue, Sep 14, 2004 at 01:02:20PM -0700, William Lee Irwin III wrote:
>> Okay, here's an attempt to hotplug-ize it. I have no clue whether this
>> actually works, compiles, or follows whatever rules there are about
>> dynamically allocated data referenced by per_cpu areas.

On Tue, Sep 14, 2004 at 01:04:53PM -0700, William Lee Irwin III wrote:
> Take 2: actually register the notifier I wrote.

As pointed out by John Hawkes, I forgot to flush the pending hits at
the time of profile buffer reset. The following patch, atop the cpu
hotplug notifier bits, does so.

Index: mm5-2.6.9-rc1/kernel/profile.c
===================================================================
--- mm5-2.6.9-rc1.orig/kernel/profile.c	2004-09-14 12:56:33.871160032 -0700
+++ mm5-2.6.9-rc1/kernel/profile.c	2004-09-14 13:43:55.826117208 -0700
@@ -37,6 +37,7 @@
 #ifdef CONFIG_SMP
 static DEFINE_PER_CPU(struct profile_hit *[2], cpu_profile_hits);
 static DEFINE_PER_CPU(int, cpu_profile_flip);
+static DECLARE_MUTEX(profile_flip_mutex);
 #endif /* CONFIG_SMP */
 
 static int __init profile_setup(char * str)
@@ -242,7 +243,6 @@
 
 static void profile_flip_buffers(void)
 {
-	static DECLARE_MUTEX(profile_flip_mutex);
 	int i, j, cpu;
 
 	down(&profile_flip_mutex);
@@ -261,6 +261,22 @@
 	up(&profile_flip_mutex);
 }
 
+static void profile_discard_flip_buffers(void)
+{
+	static DECLARE_MUTEX(profile_flip_mutex);
+	int i, cpu;
+
+	down(&profile_flip_mutex);
+	i = per_cpu(cpu_profile_flip, get_cpu());
+	put_cpu();
+	on_each_cpu(__profile_flip_buffers, NULL, 0, 1);
+	for_each_online_cpu(cpu) {
+		struct profile_hit *hits = per_cpu(cpu_profile_hits, cpu)[i];
+		memset(hits, 0, NR_PROFILE_HIT*sizeof(struct profile_hit));
+	}
+	up(&profile_flip_mutex);
+}
+
 void profile_hit(int type, void *__pc)
 {
 	unsigned long primary, secondary, flags, pc = (unsigned long)__pc;
@@ -338,6 +354,7 @@
 #endif /* CONFIG_HOTPLUG_CPU */
 #else /* !CONFIG_SMP */
 #define profile_flip_buffers()		do { } while (0)
+#define profile_discard_flip_buffers()	do { } while (0)
 
 void profile_hit(int type, void *__pc)
 {
@@ -456,7 +473,7 @@
 			return -EINVAL;
 	}
 #endif
-
+	profile_discard_flip_buffers();
 	memset(prof_buffer, 0, prof_len * sizeof(atomic_t));
 	return count;
 }

  reply	other threads:[~2004-09-14 21:14 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-13  8:50 2.6.9-rc1-mm5 Andrew Morton
2004-09-13  9:22 ` 2.6.9-rc1-mm5 Nick Piggin
2004-09-13 17:24   ` 2.6.9-rc1-mm5 Jesse Barnes
2004-09-13 18:06     ` 2.6.9-rc1-mm5 Paul Jackson
2004-09-13 18:10       ` 2.6.9-rc1-mm5 Jesse Barnes
2004-09-13 21:30         ` 2.6.9-rc1-mm5 Jesse Barnes
2004-09-14  2:02           ` 2.6.9-rc1-mm5 Nick Piggin
2004-09-14  2:12             ` 2.6.9-rc1-mm5 Jesse Barnes
2004-09-13 10:20 ` 2.6.9-rc1-mm5 Christoph Hellwig
2004-09-13 10:48 ` 2.6.9-rc1-mm5 Rafael J. Wysocki
2004-09-13 11:13   ` 2.6.9-rc1-mm5 Nikita Danilov
2004-09-13 13:40     ` 2.6.9-rc1-mm5 Christoph Hellwig
2004-09-13 11:16   ` 2.6.9-rc1-mm5 Rafael J. Wysocki
2004-09-13 11:01 ` 2.6.9-rc1-mm5 William Lee Irwin III
2004-09-13 15:09 ` 2.6.9-rc1-mm5 Martin J. Bligh
2004-09-13 15:18   ` 2.6.9-rc1-mm5 Paul Jackson
2004-09-13 16:11     ` 2.6.9-rc1-mm5 Martin J. Bligh
2004-09-13 16:22       ` 2.6.9-rc1-mm5 Paul Jackson
2004-09-13 15:20 ` 2.6.9-rc1-mm5 Kirill Korotaev
2004-09-13 20:01   ` 2.6.9-rc1-mm5 Andrew Morton
2004-09-14  6:39     ` 2.6.9-rc1-mm5 Kirill Korotaev
2004-09-13 20:30 ` 2.6.9-rc1-mm5 Pasi Savolainen
2004-09-13 21:06 ` 2.6.9-rc1-mm5 Rafael J. Wysocki
2004-09-14  9:07   ` 2.6.9-rc1-mm5 Nikita Danilov
2004-09-14  9:12     ` 2.6.9-rc1-mm5 Andrew Morton
2004-09-14 13:21       ` 2.6.9-rc1-mm5 David Howells
2004-09-14 14:24         ` 2.6.9-rc1-mm5 James Morris
2004-09-14 15:36           ` 2.6.9-rc1-mm5 David Howells
2004-09-13 21:47 ` 2.6.9-rc1-mm5 scheduling while atomic Jesse Barnes
2004-09-13 22:56   ` Paul Jackson
2004-09-13 21:56 ` 2.6.9-rc1-mm5 bug in tcp_recvmsg? Jesse Barnes
2004-09-13 22:36   ` David S. Miller
2004-09-13 22:44     ` Jesse Barnes
2004-09-13 22:47       ` David S. Miller
2004-09-13 23:54         ` Jesse Barnes
2004-09-13 23:55           ` David S. Miller
2004-09-14  0:03             ` Jesse Barnes
2004-09-14  0:21               ` David S. Miller
2004-09-14 17:09             ` Jesse Barnes
2004-09-14  0:25 ` 2.6.9-rc1-mm5: TCP oopses James Morris
2004-09-14  2:08   ` David S. Miller
2004-09-14  3:04     ` James Morris
2004-09-14  3:34     ` Herbert Xu
2004-09-14  4:53       ` David S. Miller
2004-09-14  4:55       ` David S. Miller
2004-09-14  5:07         ` James Morris
2004-09-14  2:25 ` [pidhashing] [0/3] pid allocator updates William Lee Irwin III
2004-09-14  2:28   ` [pidhashing] [1/3] retain older vendor copyright William Lee Irwin III
2004-09-14  2:31     ` [pidhashing] [2/3] lower PID_MAX_LIMIT for 32-bit machines William Lee Irwin III
2004-09-14  2:36       ` [pidhashing] [3/3] enforce PID_MAX_LIMIT in sysctls William Lee Irwin III
2004-09-14  2:38       ` [pidhashing] [2/3] lower PID_MAX_LIMIT for 32-bit machines William Lee Irwin III
2004-09-14 10:55       ` Roger Luethi
2004-09-14 11:10         ` Lars Marowsky-Bree
2004-09-14 12:06           ` Lars Marowsky-Bree
2004-09-14 12:08           ` Roger Luethi
2004-09-14 15:41         ` William Lee Irwin III
2004-09-14 15:47           ` Roger Leuthi
2004-09-14 16:41             ` William Lee Irwin III
2004-09-14 17:16               ` Roger Luethi
2004-09-14  2:53 ` [procfs] [1/1] fix task_mmu.c text size reporting William Lee Irwin III
2004-09-14  2:54   ` William Lee Irwin III
2004-09-15 10:51     ` [procfs] [2/1] report per-process pagetable usage William Lee Irwin III
2004-09-14  4:47 ` [profile] amortize atomic hit count increments William Lee Irwin III
2004-09-14  5:05   ` David S. Miller
2004-09-14  5:32     ` William Lee Irwin III
2004-09-14  5:49       ` David S. Miller
2004-09-14  6:10         ` William Lee Irwin III
2004-09-14  6:18           ` William Lee Irwin III
2004-09-14  5:05   ` Andrew Morton
2004-09-14  5:21     ` William Lee Irwin III
2004-09-14  6:43       ` William Lee Irwin III
2004-09-14  6:52         ` Andrew Morton
2004-09-14  7:55           ` William Lee Irwin III
2004-09-14  8:48             ` William Lee Irwin III
2004-09-14 11:34   ` Andrea Arcangeli
2004-09-14 15:51     ` William Lee Irwin III
2004-09-14 16:05       ` Andrea Arcangeli
2004-09-14 16:16         ` Jesse Barnes
2004-09-14 16:31           ` Andrea Arcangeli
2004-09-14 16:45             ` William Lee Irwin III
2004-09-14 19:00           ` William Lee Irwin III
2004-09-14 19:23             ` William Lee Irwin III
2004-09-14 20:02             ` William Lee Irwin III
2004-09-14 20:04               ` William Lee Irwin III
2004-09-14 21:04                 ` William Lee Irwin III [this message]
2004-09-14 21:11                   ` William Lee Irwin III
2004-09-14 10:00 ` 2.6.9-rc1-mm5 Lorenzo Allegrucci
2004-09-15 11:36 ` 2.6.9-rc1-mm5 William Lee Irwin III
2004-09-15 11:38   ` 2.6.9-rc1-mm5 Jens Axboe
2004-09-15 12:28     ` 2.6.9-rc1-mm5 William Lee Irwin III
2004-09-15 12:41       ` 2.6.9-rc1-mm5 Jens Axboe
2004-09-15 12:50         ` 2.6.9-rc1-mm5 Jens Axboe
2004-09-15 12:53           ` 2.6.9-rc1-mm5 William Lee Irwin III
2004-09-16  0:38             ` 2.6.9-rc1-mm5 William Lee Irwin III
2004-09-16  5:44               ` 2.6.9-rc1-mm5 William Lee Irwin III
2004-09-16  5:45                 ` 2.6.9-rc1-mm5 Jens Axboe

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=20040914210422.GM9106@holomorphy.com \
    --to=wli@holomorphy.com \
    --cc=akpm@osdl.org \
    --cc=andrea@novell.com \
    --cc=hawkes@sgi.com \
    --cc=jbarnes@engr.sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=raybry@sgi.com \
    --cc=rusty@rustcorp.com.au \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox