2011-03-07 15:47:06

by Richard Kennedy

[permalink] [raw]
Subject: [PATCH] trace: reorder perf_event_context to remove alignment padding on 64 bit builds

Remove 8 bytes of alignment padding from perf_event_context on 64 bit
builds which shrinks its size to 192 bytes allowing it to fit into one
fewer cache lines and into a smaller slab.

Signed-off-by: Richard Kennedy <[email protected]>
---
patch against v2.6.38-rc7
compiled and tested on x86_64

regards
Richard



diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index dda5b0a..59792fe 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -846,8 +846,8 @@ enum perf_event_context_type {
* Used as a container for task events and CPU events as well:
*/
struct perf_event_context {
- enum perf_event_context_type type;
struct pmu *pmu;
+ enum perf_event_context_type type;
/*
* Protect the states of the events in the list,
* nr_active, and the list:


2011-03-16 13:59:48

by Richard Kennedy

[permalink] [raw]
Subject: [tip:perf/urgent] perf: Reorder & optimize perf_event_context to remove alignment padding on 64 bit builds

Commit-ID: ee643c4179c3a18b018de3a4c07a7bb3a75c8e4e
Gitweb: http://git.kernel.org/tip/ee643c4179c3a18b018de3a4c07a7bb3a75c8e4e
Author: Richard Kennedy <[email protected]>
AuthorDate: Mon, 7 Mar 2011 15:46:59 +0000
Committer: Ingo Molnar <[email protected]>
CommitDate: Wed, 16 Mar 2011 14:04:14 +0100

perf: Reorder & optimize perf_event_context to remove alignment padding on 64 bit builds

Remove 8 bytes of alignment padding from perf_event_context on 64 bit
builds which shrinks its size to 192 bytes allowing it to fit into one
fewer cache lines and into a smaller slab.

Signed-off-by: Richard Kennedy <[email protected]>
Signed-off-by: Peter Zijlstra <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
---
include/linux/perf_event.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 614615b..f495c01 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -878,8 +878,8 @@ enum perf_event_context_type {
* Used as a container for task events and CPU events as well:
*/
struct perf_event_context {
- enum perf_event_context_type type;
struct pmu *pmu;
+ enum perf_event_context_type type;
/*
* Protect the states of the events in the list,
* nr_active, and the list: