Re: [PATCH] Some love to default profiler

From: Jesper Juhl
Date: Wed Jul 04 2007 - 19:50:37 EST


On 04/07/07, Alexey Dobriyan <adobriyan@xxxxxxxxx> wrote:
1) Drop __KERNEL__ out of profile.h. It contains only internal kernel stuff and
not in exported headers list

Even if it's not in the list of exported headers, does it really hurt
to retain that extra safeguard?

2) Put profile.c under CONFIG_PROFILING. You enabled profiling in config, you
will get it.

Makes logical sense. If the user didn't enable CONFIG_PROFILING why
should she get any profiling related overhead of any kind if we can
avoid it?

Removes conditional branch from schedule(). Code savings on my
usual config:

text data bss dec hex filename
2921871 179895 180224 3281990 321446 vmlinux before
2920141 179847 180224 3280212 320d54 vmlinux after
--------------------------------------------------------------
-1730 -48 -1778

Nice savings there. Not that 1.7K is huge, but it's kernel memory is
precious :-)

3) Make timer_hook static (hi, Adrian!)

Makes perfect sense to me.

4) Convert do {} while (0) into static inline functions

Seems reasonable.

5) minor misc stuff


One tiny comment below.


Signed-off-by: Alexey Dobriyan <adobriyan@xxxxxxxxx>
---

include/linux/profile.h | 78 +++++++++++++++++++++++++-----------------------
kernel/Makefile | 3 +
kernel/profile.c | 2 -
3 files changed, 44 insertions(+), 39 deletions(-)

[snip]
+#define prof_on 0
+static inline void profile_init(void)
+{
+}

Just to be pedantic; don't we want a blank line between functions
here, even if they are empty?

+static inline void profile_tick(int type)
+{
+}
+static inline void profile_hits(int type, void *ip, unsigned int nr_hits)
+{
+}
+static inline void profile_hit(int type, void *ip)
+{
+}
+static inline void profile_munmap(unsigned long addr)
+{
+}
+static inline void profile_task_exit(struct task_struct *tsk)
+{
+}
+static inline int profile_handoff_task(struct task_struct *tsk)
+{
+ return 0;
+}
[snip]

--
Jesper Juhl <jesper.juhl@xxxxxxxxx>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/