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;
}
next prev parent 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