From: "J.A. Magallon" <jamagallon@able.es>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: linux-kernel@vger.kernel.org, Andi Kleen <ak@muc.de>,
Tim Cambrant <cambrant@acc.umu.se>,
akpm@digeo.com
Subject: Re: 2.6.9-rc4-mm1
Date: Mon, 11 Oct 2004 14:12:40 +0000 [thread overview]
Message-ID: <1097503960l.6177l.0l@werewolf.able.es> (raw)
In-Reply-To: <200410111538.33299.rjw@sisk.pl> (from rjw@sisk.pl on Mon Oct 11 15:38:32 2004)
On 2004.10.11, Rafael J. Wysocki wrote:
> On Monday 11 of October 2004 14:40, Andi Kleen wrote:
> > Tim Cambrant <cambrant@acc.umu.se> writes:
> >
> > > On Mon, Oct 11, 2004 at 03:25:02AM -0700, Andrew Morton wrote:
> > >>
> > >> optimize-profile-path-slightly.patch
> > >> Optimize profile path slightly
> > >>
> > >
> > > I'm still getting an oops at startup with this patch. After reversing
> > > it, everything is fine. Weren't you supposed to remove that from your
> > > tree until it was fixed?
> >
> > There's a fixed version around. I thought Andrew had merged that one?
> [-- snip --]
>
> This one does not apply to -mm.
>
Use this:
diff -ruN linux-2.6.9-rc3-mm3/include/linux/profile.h linux-2.6.9-rc3-mm3-prof/include/linux/profile.h
--- linux-2.6.9-rc3-mm3/include/linux/profile.h 2004-09-30 09:46:41.000000000 +0200
+++ linux-2.6.9-rc3-mm3-prof/include/linux/profile.h 2004-10-07 19:41:36.254643765 +0200
@@ -8,6 +8,7 @@
#include <linux/init.h>
#include <linux/cpumask.h>
#include <asm/errno.h>
+#include <asm/atomic.h>
#define CPU_PROFILING 1
#define SCHED_PROFILING 2
@@ -17,8 +18,8 @@
/* init basic kernel profiler */
void __init profile_init(void);
-void profile_tick(int, struct pt_regs *);
-void profile_hit(int, void *);
+void FASTCALL(__profile_hit(void *));
+
#ifdef CONFIG_PROC_FS
void create_prof_cpu_mask(struct proc_dir_entry *);
#else
@@ -101,6 +102,26 @@
#endif /* CONFIG_PROFILING */
+static inline void profile_hit(int type, void *pc)
+{
+ extern int prof_on;
+ extern atomic_t *prof_buffer;
+
+ if (prof_on == type && prof_buffer)
+ __profile_hit(pc);
+}
+
+static inline void profile_tick(int type, struct pt_regs *regs)
+{
+ extern cpumask_t prof_cpu_mask;
+
+ if (type != CPU_PROFILING)
+ return;
+ profile_hook(regs);
+ if (!user_mode(regs) && cpu_isset(smp_processor_id(), prof_cpu_mask))
+ profile_hit(type, (void *)profile_pc(regs));
+}
+
#endif /* __KERNEL__ */
#endif /* _LINUX_PROFILE_H */
diff -ruN linux-2.6.9-rc3-mm3/kernel/profile.c linux-2.6.9-rc3-mm3-prof/kernel/profile.c
--- linux-2.6.9-rc3-mm3/kernel/profile.c 2004-10-07 14:45:02.176576637 +0200
+++ linux-2.6.9-rc3-mm3-prof/kernel/profile.c 2004-10-07 19:41:36.253643976 +0200
@@ -34,10 +34,10 @@
#define NR_PROFILE_HIT (PAGE_SIZE/sizeof(struct profile_hit))
#define NR_PROFILE_GRP (NR_PROFILE_HIT/PROFILE_GRPSZ)
-static atomic_t *prof_buffer;
+atomic_t *prof_buffer;
static unsigned long prof_len, prof_shift;
-static int prof_on;
-static cpumask_t prof_cpu_mask = CPU_MASK_ALL;
+int prof_on;
+cpumask_t prof_cpu_mask = CPU_MASK_ALL;
#ifdef CONFIG_SMP
static DEFINE_PER_CPU(struct profile_hit *[2], cpu_profile_hits);
static DEFINE_PER_CPU(int, cpu_profile_flip);
@@ -284,14 +284,12 @@
up(&profile_flip_mutex);
}
-void profile_hit(int type, void *__pc)
+void fastcall __profile_hit(void *__pc)
{
unsigned long primary, secondary, flags, pc = (unsigned long)__pc;
int i, j, cpu;
struct profile_hit *hits;
- if (prof_on != type || !prof_buffer)
- return;
pc = min((pc - (unsigned long)_stext) >> prof_shift, prof_len - 1);
i = primary = (pc & (NR_PROFILE_GRP - 1)) << PROFILE_GRPSHIFT;
secondary = (~(pc << 1) & (NR_PROFILE_GRP - 1)) << PROFILE_GRPSHIFT;
@@ -381,25 +379,17 @@
#define profile_flip_buffers() do { } while (0)
#define profile_discard_flip_buffers() do { } while (0)
-inline void profile_hit(int type, void *__pc)
+void profile_hit(int type, void *__pc)
{
unsigned long pc;
+ if (prof_on != type || !prof_buffer)
+ return;
pc = ((unsigned long)__pc - (unsigned long)_stext) >> prof_shift;
atomic_inc(&prof_buffer[min(pc, prof_len - 1)]);
}
#endif /* !CONFIG_SMP */
-void profile_tick(int type, struct pt_regs *regs)
-{
- if (type == CPU_PROFILING)
- profile_hook(regs);
- if (prof_on != type || !prof_buffer)
- return;
- if (!user_mode(regs) && cpu_isset(smp_processor_id(), prof_cpu_mask))
- profile_hit(type, (void *)profile_pc(regs));
-}
-
#ifdef CONFIG_PROC_FS
#include <linux/proc_fs.h>
#include <asm/uaccess.h>
--
J.A. Magallon <jamagallon()able!es> \ Software is like sex:
werewolf!able!es \ It's better when it's free
Mandrakelinux release 10.1 (Community) for i586
Linux 2.6.9-rc4-mm1 (gcc 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk)) #1
next prev parent reply other threads:[~2004-10-11 14:13 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <2O5L3-5Jq-11@gated-at.bofh.it>
[not found] ` <2O6Ho-6ra-51@gated-at.bofh.it>
2004-10-11 12:40 ` 2.6.9-rc4-mm1 Andi Kleen
2004-10-11 13:38 ` 2.6.9-rc4-mm1 Rafael J. Wysocki
2004-10-11 14:12 ` J.A. Magallon [this message]
2004-10-11 14:23 ` 2.6.9-rc4-mm1 Rafael J. Wysocki
2004-10-11 14:28 ` 2.6.9-rc4-mm1 J.A. Magallon
2004-10-11 15:17 ` 2.6.9-rc4-mm1 Rafael J. Wysocki
2004-10-11 14:50 ` 2.6.9-rc4-mm1 Andi Kleen
2004-10-11 15:21 ` 2.6.9-rc4-mm1 Rafael J. Wysocki
2004-10-14 20:56 2.6.9-rc4-mm1 William Wolf
2004-10-14 23:15 ` 2.6.9-rc4-mm1 Dmitry Torokhov
2004-10-15 3:23 ` 2.6.9-rc4-mm1 William Wolf
2004-10-15 3:30 ` 2.6.9-rc4-mm1 Dmitry Torokhov
2004-10-15 4:43 ` 2.6.9-rc4-mm1 William Wolf
2004-10-15 7:04 ` 2.6.9-rc4-mm1 Mathieu Segaud
[not found] ` <200410142305.29859.dtor_core@ameritech.net>
2004-10-15 5:14 ` 2.6.9-rc4-mm1 William Wolf
2004-10-15 4:25 ` 2.6.9-rc4-mm1 Dmitry Torokhov
2004-10-15 5:26 ` 2.6.9-rc4-mm1 William Wolf
-- strict thread matches above, loose matches on Subject: below --
2004-10-12 4:07 2.6.9-rc4-mm1 Paul Blazejowski
2004-10-11 14:30 2.6.9-rc4-mm1 Albert Cahalan
2004-10-11 12:41 2.6.9-rc4-mm1 Oleg Nesterov
2004-10-11 10:25 2.6.9-rc4-mm1 Andrew Morton
2004-10-11 11:29 ` 2.6.9-rc4-mm1 Eyal Lebedinsky
2004-10-11 11:37 ` 2.6.9-rc4-mm1 Tim Cambrant
2004-10-11 11:38 ` 2.6.9-rc4-mm1 Nick Piggin
2004-10-11 19:13 ` 2.6.9-rc4-mm1 Andrew Morton
2004-10-11 22:57 ` 2.6.9-rc4-mm1 Nick Piggin
2004-10-11 11:43 ` 2.6.9-rc4-mm1 Brice Goglin
2004-10-11 12:30 ` 2.6.9-rc4-mm1 Con Kolivas
2004-10-11 13:17 ` 2.6.9-rc4-mm1 Alan Cox
2004-10-11 14:23 ` 2.6.9-rc4-mm1 Con Kolivas
2004-10-11 14:30 ` 2.6.9-rc4-mm1 J.A. Magallon
2004-10-11 13:43 ` 2.6.9-rc4-mm1 Jack Byer
2004-10-11 21:58 ` 2.6.9-rc4-mm1 Andrew Morton
2004-10-11 22:10 ` 2.6.9-rc4-mm1 Tom Rini
2004-10-11 23:14 ` 2.6.9-rc4-mm1 Thayne Harbaugh
2004-10-12 0:32 ` 2.6.9-rc4-mm1 Jack Byer
2004-10-11 14:22 ` 2.6.9-rc4-mm1 J.A. Magallon
2004-10-11 14:23 ` 2.6.9-rc4-mm1 Eyal Lebedinsky
2004-10-11 15:47 ` 2.6.9-rc4-mm1 Zwane Mwaikambo
2004-10-11 15:49 ` 2.6.9-rc4-mm1 Andi Kleen
2004-10-11 15:58 ` 2.6.9-rc4-mm1 Zwane Mwaikambo
2004-10-11 16:01 ` 2.6.9-rc4-mm1 Andi Kleen
2004-10-11 19:55 ` 2.6.9-rc4-mm1 Andrew Morton
2004-10-11 21:52 ` 2.6.9-rc4-mm1 Andi Kleen
2004-10-12 14:24 ` 2.6.9-rc4-mm1 Zwane Mwaikambo
2004-10-11 16:08 ` 2.6.9-rc4-mm1 Jeff Garzik
2004-10-11 22:38 ` 2.6.9-rc4-mm1 Lee Revell
2004-10-11 18:51 ` 2.6.9-rc4-mm1 Brice Goglin
2004-10-11 20:18 ` 2.6.9-rc4-mm1 Adrian Bunk
2004-10-13 7:42 ` 2.6.9-rc4-mm1 Wen-chien Jesse Sung
2004-10-13 8:16 ` 2.6.9-rc4-mm1 Hideo AOKI
2004-10-13 13:07 ` 2.6.9-rc4-mm1 Jesse Stockall
2004-10-13 13:19 ` 2.6.9-rc4-mm1 Mathieu Segaud
2004-10-13 13:34 ` 2.6.9-rc4-mm1 Jesse Stockall
2004-10-13 17:27 ` 2.6.9-rc4-mm1 Peter Adebahr
2004-10-14 4:42 ` 2.6.9-rc4-mm1 Hiroyuki KAMEZAWA
2004-10-14 4:50 ` 2.6.9-rc4-mm1 Andrew Morton
2004-10-14 5:23 ` 2.6.9-rc4-mm1 Hiroyuki KAMEZAWA
2004-10-14 17:50 ` 2.6.9-rc4-mm1 Christian Borntraeger
2004-10-15 7:08 ` 2.6.9-rc4-mm1 J.A. Magallon
2004-10-15 16:47 ` 2.6.9-rc4-mm1 Lee Revell
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=1097503960l.6177l.0l@werewolf.able.es \
--to=jamagallon@able.es \
--cc=ak@muc.de \
--cc=akpm@digeo.com \
--cc=cambrant@acc.umu.se \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@sisk.pl \
/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
all inboxes | Powered by JetHome®