2011-06-07 15:33:43

by Richard Kennedy

[permalink] [raw]
Subject: [PATCH] perf events: remove 64bit alignment padding from perf_event_context

Reorder perf_event_context to remove 8 bytes of 64 bit alignment padding
shrinking its size to 192 bytes, allowing it to fit into a smaller slab
and use one fewer cache lines.


Signed-off-by: Richard Kennedy <[email protected]>

---

patch against v3.0-rc2
compiled & tested on x86_64

regards
Richard


diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 3412684..9d5b3d5 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -919,8 +919,8 @@ struct perf_event_context {
u64 parent_gen;
u64 generation;
int pin_count;
- struct rcu_head rcu_head;
int nr_cgroups; /* cgroup events present */
+ struct rcu_head rcu_head;
};

/*


2011-06-07 15:40:16

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH] perf events: remove 64bit alignment padding from perf_event_context

On Tue, 2011-06-07 at 16:33 +0100, Richard Kennedy wrote:
> Reorder perf_event_context to remove 8 bytes of 64 bit alignment padding
> shrinking its size to 192 bytes, allowing it to fit into a smaller slab
> and use one fewer cache lines.
>
>
> Signed-off-by: Richard Kennedy <[email protected]>

Nice, thanks!