2008-12-03 23:58:35

by Joe Korty

[permalink] [raw]
Subject: [PATCH] x86: Change thread_info's flag field back to 32 bits

Change x86_64's thread_info 'flags' field back to __u32.

This was changed to 'unsigned long' when the thread_info*.h
for i386 and x86_64 were merged. Change it back. We can
do this as only 27 bits of 'flags' are actually used.

This change actually packs down thread_info by 64 bits:
32 bits are saved by the smaller flags, and 32 bits are
saved by the following 'mm_segment_t field' becoming
naturally 64-bit aligned.

Signed-off-by: Joe Korty <[email protected]>

Index: 2.6.28-rc7/arch/x86/include/asm/thread_info.h
===================================================================
--- 2.6.28-rc7.orig/arch/x86/include/asm/thread_info.h 2008-12-03 17:53:10.000000000 -0500
+++ 2.6.28-rc7/arch/x86/include/asm/thread_info.h 2008-12-03 18:31:40.000000000 -0500
@@ -24,7 +24,7 @@
struct thread_info {
struct task_struct *task; /* main task structure */
struct exec_domain *exec_domain; /* execution domain */
- unsigned long flags; /* low level flags */
+ __u32 flags; /* low level flags */
__u32 status; /* thread synchronous flags */
__u32 cpu; /* current CPU */
int preempt_count; /* 0 => preemptable,


2008-12-04 10:07:01

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86: Change thread_info's flag field back to 32 bits


* Joe Korty <[email protected]> wrote:

> Change x86_64's thread_info 'flags' field back to __u32.
>
> This was changed to 'unsigned long' when the thread_info*.h
> for i386 and x86_64 were merged. Change it back. We can
> do this as only 27 bits of 'flags' are actually used.
>
> This change actually packs down thread_info by 64 bits:
> 32 bits are saved by the smaller flags, and 32 bits are
> saved by the following 'mm_segment_t field' becoming
> naturally 64-bit aligned.
>
> Signed-off-by: Joe Korty <[email protected]>

applied, thanks Joe!

Ingo