2010-08-05 11:31:21

by Richard Kennedy

[permalink] [raw]
Subject: [PATCH] stop_machine: struct cpu_stopper, remove alignment padding on 64 bits

Reorder elements in structure cpu_stopper to remove alignment padding on
64 bit builds, this shrinks its size from 40 to 32 bytes saving 8 bytes
per cpu.

Signed-off-by: Richard Kennedy <[email protected]>
---
patch against 2.6.35
compiled & tested on x86_64

regards
Richard


diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c
index 70f8d90..4372ccb 100644
--- a/kernel/stop_machine.c
+++ b/kernel/stop_machine.c
@@ -35,9 +35,9 @@ struct cpu_stop_done {
/* the actual stopper, one per every possible cpu, enabled on online cpus */
struct cpu_stopper {
spinlock_t lock;
+ bool enabled; /* is this stopper enabled? */
struct list_head works; /* list of pending works */
struct task_struct *thread; /* stopper thread */
- bool enabled; /* is this stopper enabled? */
};

static DEFINE_PER_CPU(struct cpu_stopper, cpu_stopper);


2010-08-05 11:40:44

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH] stop_machine: struct cpu_stopper, remove alignment padding on 64 bits

On Thu, 2010-08-05 at 12:11 +0100, Richard Kennedy wrote:
> Reorder elements in structure cpu_stopper to remove alignment padding on
> 64 bit builds, this shrinks its size from 40 to 32 bytes saving 8 bytes
> per cpu.
>
> Signed-off-by: Richard Kennedy <[email protected]>

Looks good to me. Tejun will you take it or should I send it Ingo wards?

> ---
> diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c
> index 70f8d90..4372ccb 100644
> --- a/kernel/stop_machine.c
> +++ b/kernel/stop_machine.c
> @@ -35,9 +35,9 @@ struct cpu_stop_done {
> /* the actual stopper, one per every possible cpu, enabled on online cpus */
> struct cpu_stopper {
> spinlock_t lock;
> + bool enabled; /* is this stopper enabled? */
> struct list_head works; /* list of pending works */
> struct task_struct *thread; /* stopper thread */
> - bool enabled; /* is this stopper enabled? */
> };
>
> static DEFINE_PER_CPU(struct cpu_stopper, cpu_stopper);
>
>

2010-08-05 11:41:42

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] stop_machine: struct cpu_stopper, remove alignment padding on 64 bits

Hello,

On 08/05/2010 01:11 PM, Richard Kennedy wrote:
> Reorder elements in structure cpu_stopper to remove alignment padding on
> 64 bit builds, this shrinks its size from 40 to 32 bytes saving 8 bytes
> per cpu.
>
> Signed-off-by: Richard Kennedy <[email protected]>

Acked-by: Tejun Heo <[email protected]>

Andrew, do you mind routing this one through your tree?

http://lkml.org/lkml/2010/8/5/168

Thank you.

--
tejun

2010-08-05 11:46:37

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] stop_machine: struct cpu_stopper, remove alignment padding on 64 bits

Hello, Peter.

On 08/05/2010 01:40 PM, Peter Zijlstra wrote:
> On Thu, 2010-08-05 at 12:11 +0100, Richard Kennedy wrote:
>> Reorder elements in structure cpu_stopper to remove alignment padding on
>> 64 bit builds, this shrinks its size from 40 to 32 bytes saving 8 bytes
>> per cpu.
>>
>> Signed-off-by: Richard Kennedy <[email protected]>
>
> Looks good to me. Tejun will you take it or should I send it Ingo wards?

I already asked whether Andrew could take it but routing through
Ingo's tree would be good too. Let's wait for Andrew a bit for now.

Thank you.

--
tejun