Mark profile notifier blocks __read_mostly

From: Matt Helsley
Date: Mon Jun 12 2006 - 22:12:08 EST


Mark profile notifier blocks __read_mostly since once registered they tend
not to be written. This seems like a good idea but I'm not yet familiar
enough with the profile paths to be certain.

Compiles, boots, and runs with CONFIG_PROFILING=y and readprofile on a 4-way
Opteron running Debian Sarge.

Signed-off-by: Matt Helsley <matthltc@xxxxxxxxxx>
Cc: oprofile-list@xxxxxxxxxxxx
--

Booted with profile=2
Profiling 3 iterations of kernbench
readprofile output | grep profile:
without this patch:
1 write_profile 0.0037
1 profile_tick 0.0112
1 profile_munmap 0.0435

with this patch:
1 write_profile 0.0037

(full readprofile results available for posting upon request)

drivers/oprofile/buffer_sync.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)

Index: linux-2.6.17-rc6-mm2/drivers/oprofile/buffer_sync.c
===================================================================
--- linux-2.6.17-rc6-mm2.orig/drivers/oprofile/buffer_sync.c
+++ linux-2.6.17-rc6-mm2/drivers/oprofile/buffer_sync.c
@@ -115,23 +115,23 @@ static int module_load_notify(struct not
#endif
return 0;
}


-static struct notifier_block task_free_nb = {
+static struct notifier_block __read_mostly task_free_nb = {
.notifier_call = task_free_notify,
};

-static struct notifier_block task_exit_nb = {
+static struct notifier_block __read_mostly task_exit_nb = {
.notifier_call = task_exit_notify,
};

-static struct notifier_block munmap_nb = {
+static struct notifier_block __read_mostly munmap_nb = {
.notifier_call = munmap_notify,
};

-static struct notifier_block module_load_nb = {
+static struct notifier_block __read_mostly module_load_nb = {
.notifier_call = module_load_notify,
};


static void end_sync(void)


-
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/