Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=141a892f57972b01891df7036f567a70459c19ac
Commit:     141a892f57972b01891df7036f567a70459c19ac
Parent:     0260c196c97e48e4b821031ae55912c22113ed87
Author:     Eric Dumazet <[EMAIL PROTECTED]>
AuthorDate: Wed May 2 19:27:18 2007 +0200
Committer:  Andi Kleen <[EMAIL PROTECTED]>
CommitDate: Wed May 2 19:27:18 2007 +0200

    [PATCH] x86-64: move __vgetcpu_mode & __jiffies to the vsyscall_2 zone
    
    We apparently hit the 1024 limit of vsyscall_0 zone when some debugging
    options are set, or if __vsyscall_gtod_data is 64 bytes larger.
    
    In order to save 128 bytes from the vsyscall_0 zone, we move __vgetcpu_mode
    & __jiffies to vsyscall_2 zone where they really belong, since they are
    used only from vgetcpu() (which is in this vsyscall_2 area).
    
    After patch is applied, new layout is :
    
    ffffffffff600000 T vgettimeofday
    ffffffffff60004e t vsysc2
    ffffffffff600140 t vread_hpet
    ffffffffff600150 t vread_tsc
    ffffffffff600180 D __vsyscall_gtod_data
    ffffffffff600400 T vtime
    ffffffffff600413 t vsysc1
    ffffffffff600800 T vgetcpu
    ffffffffff600870 D __vgetcpu_mode
    ffffffffff600880 D __jiffies
    ffffffffff600c00 T venosys_1
    
    Signed-off-by: Eric Dumazet <[EMAIL PROTECTED]>
    Signed-off-by: Andi Kleen <[EMAIL PROTECTED]>
    Cc: Andi Kleen <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
 arch/x86_64/kernel/vmlinux.lds.S |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S
index 7ef0b88..32e427a 100644
--- a/arch/x86_64/kernel/vmlinux.lds.S
+++ b/arch/x86_64/kernel/vmlinux.lds.S
@@ -95,6 +95,12 @@ SECTIONS
                { *(.vsyscall_gtod_data) }
   vsyscall_gtod_data = VVIRT(.vsyscall_gtod_data);
 
+
+  .vsyscall_1 ADDR(.vsyscall_0) + 1024: AT(VLOAD(.vsyscall_1))
+               { *(.vsyscall_1) }
+  .vsyscall_2 ADDR(.vsyscall_0) + 2048: AT(VLOAD(.vsyscall_2))
+               { *(.vsyscall_2) }
+
   .vgetcpu_mode : AT(VLOAD(.vgetcpu_mode)) { *(.vgetcpu_mode) }
   vgetcpu_mode = VVIRT(.vgetcpu_mode);
 
@@ -102,10 +108,6 @@ SECTIONS
   .jiffies : AT(VLOAD(.jiffies)) { *(.jiffies) }
   jiffies = VVIRT(.jiffies);
 
-  .vsyscall_1 ADDR(.vsyscall_0) + 1024: AT(VLOAD(.vsyscall_1))
-               { *(.vsyscall_1) }
-  .vsyscall_2 ADDR(.vsyscall_0) + 2048: AT(VLOAD(.vsyscall_2))
-               { *(.vsyscall_2) }
   .vsyscall_3 ADDR(.vsyscall_0) + 3072: AT(VLOAD(.vsyscall_3))
                { *(.vsyscall_3) }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to