[patch 2.6.13-rc2] all archs: add "__slow" tag for slow code

From: Chuck Ebbert
Date: Sun Jul 10 2005 - 21:18:51 EST




This patch adds a tag, "__slow" for marking non-performance-critical
functions in all architectures.

===================================================================
--- 2.6.13-rc2a.orig/include/linux/compiler.h 2005-06-24 00:50:34.000000000 -0400
+++ 2.6.13-rc2a/include/linux/compiler.h 2005-07-10 12:33:00.000000000 -0400
@@ -36,6 +36,10 @@

#ifdef __KERNEL__

+/* Text section for code that is not speed-critical.
+ */
+#define __slow noinline __attribute__((__section__(".slow.text")))
+
#if __GNUC__ > 4
#error no compiler-gcc.h file for this gcc version
#elif __GNUC__ == 4
===================================================================
--- 2.6.13-rc2a.orig/arch/alpha/kernel/vmlinux.lds.S 2004-09-03 19:55:27.000000000 -0400
+++ 2.6.13-rc2a/arch/alpha/kernel/vmlinux.lds.S 2005-07-10 12:46:56.000000000 -0400
@@ -20,6 +20,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
} :kernel
_etext = .; /* End of text section */
===================================================================
--- 2.6.13-rc2a.orig/arch/arm/kernel/vmlinux.lds.S 2005-06-24 00:50:17.000000000 -0400
+++ 2.6.13-rc2a/arch/arm/kernel/vmlinux.lds.S 2005-07-10 12:38:39.000000000 -0400
@@ -81,6 +81,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
*(.rodata)
*(.rodata.*)
===================================================================
--- 2.6.13-rc2a.orig/arch/arm26/kernel/vmlinux-arm26-xip.lds.in 2005-01-03 18:49:27.000000000 -0500
+++ 2.6.13-rc2a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in 2005-07-10 12:43:46.000000000 -0400
@@ -66,6 +66,7 @@
SCHED_TEXT
LOCK_TEXT /* FIXME - borrowed from arm32 - check*/
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
*(.rodata)
*(.rodata.*)
===================================================================
--- 2.6.13-rc2a.orig/arch/arm26/kernel/vmlinux-arm26.lds.in 2005-01-03 18:49:27.000000000 -0500
+++ 2.6.13-rc2a/arch/arm26/kernel/vmlinux-arm26.lds.in 2005-07-10 12:44:02.000000000 -0400
@@ -67,6 +67,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
*(.rodata)
*(.rodata.*)
===================================================================
--- 2.6.13-rc2a.orig/arch/cris/arch-v10/vmlinux.lds.S 2004-11-11 03:33:13.000000000 -0500
+++ 2.6.13-rc2a/arch/cris/arch-v10/vmlinux.lds.S 2005-07-10 12:42:05.000000000 -0400
@@ -28,6 +28,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.text.__*)
}

===================================================================
--- 2.6.13-rc2a.orig/arch/frv/kernel/vmlinux.lds.S 2005-02-04 07:35:19.000000000 -0500
+++ 2.6.13-rc2a/arch/frv/kernel/vmlinux.lds.S 2005-07-10 12:51:29.000000000 -0400
@@ -113,6 +113,7 @@
)
SCHED_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
*(.exitcall.exit)
} = 0x9090
===================================================================
--- 2.6.13-rc2a.orig/arch/h8300/kernel/vmlinux.lds.S 2004-11-15 22:29:13.000000000 -0500
+++ 2.6.13-rc2a/arch/h8300/kernel/vmlinux.lds.S 2005-07-10 12:49:14.000000000 -0400
@@ -78,6 +78,7 @@
*(.text)
SCHED_TEXT
LOCK_TEXT
+ *(.slow.text)
__etext = . ;
. = ALIGN(16); /* Exception table */
___start___ex_table = .;
===================================================================
--- 2.6.13-rc2a.orig/arch/i386/kernel/vmlinux.lds.S 2005-07-07 18:19:01.000000000 -0400
+++ 2.6.13-rc2a/arch/i386/kernel/vmlinux.lds.S 2005-07-09 22:20:29.000000000 -0400
@@ -23,6 +23,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
} = 0x9090

===================================================================
--- 2.6.13-rc2a.orig/arch/ia64/kernel/vmlinux.lds.S 2005-07-07 18:19:01.000000000 -0400
+++ 2.6.13-rc2a/arch/ia64/kernel/vmlinux.lds.S 2005-07-10 12:45:56.000000000 -0400
@@ -48,6 +48,7 @@
*(.text)
SCHED_TEXT
LOCK_TEXT
+ *(.slow.text)
*(.gnu.linkonce.t*)
}
.text2 : AT(ADDR(.text2) - LOAD_OFFSET)
===================================================================
--- 2.6.13-rc2a.orig/arch/m32r/kernel/vmlinux.lds.S 2004-09-24 04:27:50.000000000 -0400
+++ 2.6.13-rc2a/arch/m32r/kernel/vmlinux.lds.S 2005-07-10 12:49:47.000000000 -0400
@@ -29,6 +29,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
} = 0x9090
#ifdef CONFIG_SMP
===================================================================
--- 2.6.13-rc2a.orig/arch/m68k/kernel/vmlinux-std.lds 2004-10-20 04:37:09.000000000 -0400
+++ 2.6.13-rc2a/arch/m68k/kernel/vmlinux-std.lds 2005-07-10 12:44:58.000000000 -0400
@@ -14,6 +14,7 @@
*(.text)
SCHED_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
} :text = 0x4e75

===================================================================
--- 2.6.13-rc2a.orig/arch/m68k/kernel/vmlinux-sun3.lds 2004-11-19 02:03:13.000000000 -0500
+++ 2.6.13-rc2a/arch/m68k/kernel/vmlinux-sun3.lds 2005-07-10 12:45:08.000000000 -0400
@@ -15,6 +15,7 @@
*(.text)
SCHED_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
} :text = 0x4e75
RODATA
===================================================================
--- 2.6.13-rc2a.orig/arch/m68knommu/kernel/vmlinux.lds.S 2005-01-05 21:42:10.000000000 -0500
+++ 2.6.13-rc2a/arch/m68knommu/kernel/vmlinux.lds.S 2005-07-10 12:40:27.000000000 -0400
@@ -222,6 +222,7 @@
*(.text)
SCHED_TEXT
*(.text.lock)
+ *(.slow.text)

. = ALIGN(16); /* Exception table */
__start___ex_table = .;
===================================================================
--- 2.6.13-rc2a.orig/arch/mips/kernel/vmlinux.lds.S 2005-01-31 01:22:40.000000000 -0500
+++ 2.6.13-rc2a/arch/mips/kernel/vmlinux.lds.S 2005-07-10 12:30:33.000000000 -0400
@@ -31,6 +31,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
} =0

===================================================================
--- 2.6.13-rc2a.orig/arch/parisc/kernel/vmlinux.lds.S 2005-06-24 00:50:19.000000000 -0400
+++ 2.6.13-rc2a/arch/parisc/kernel/vmlinux.lds.S 2005-07-10 12:48:08.000000000 -0400
@@ -60,6 +60,7 @@
*(.text.*)
*(.fixup)
*(.lock.text) /* out-of-line lock text */
+ *(.slow.text)
*(.gnu.warning)
} = 0

===================================================================
--- 2.6.13-rc2a.orig/arch/ppc/kernel/vmlinux.lds.S 2005-06-24 00:50:19.000000000 -0400
+++ 2.6.13-rc2a/arch/ppc/kernel/vmlinux.lds.S 2005-07-09 22:21:38.000000000 -0400
@@ -34,6 +34,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.got1)
__got2_start = .;
*(.got2)
===================================================================
--- 2.6.13-rc2a.orig/arch/ppc64/kernel/vmlinux.lds.S 2004-09-13 20:23:12.000000000 -0400
+++ 2.6.13-rc2a/arch/ppc64/kernel/vmlinux.lds.S 2005-07-09 22:21:59.000000000 -0400
@@ -16,6 +16,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
. = ALIGN(4096);
_etext = .;
}
===================================================================
--- 2.6.13-rc2a.orig/arch/s390/kernel/vmlinux.lds.S 2004-09-03 19:55:27.000000000 -0400
+++ 2.6.13-rc2a/arch/s390/kernel/vmlinux.lds.S 2005-07-10 12:53:03.000000000 -0400
@@ -26,6 +26,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
} = 0x0700

===================================================================
--- 2.6.13-rc2a.orig/arch/sh/kernel/vmlinux.lds.S 2004-09-03 19:55:27.000000000 -0400
+++ 2.6.13-rc2a/arch/sh/kernel/vmlinux.lds.S 2005-07-10 12:40:58.000000000 -0400
@@ -25,6 +25,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
} = 0x0009

===================================================================
--- 2.6.13-rc2a.orig/arch/sh64/kernel/vmlinux.lds.S 2004-09-03 19:55:27.000000000 -0400
+++ 2.6.13-rc2a/arch/sh64/kernel/vmlinux.lds.S 2005-07-10 12:52:23.000000000 -0400
@@ -61,6 +61,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
#ifdef CONFIG_LITTLE_ENDIAN
} = 0x6ff0fff0
===================================================================
--- 2.6.13-rc2a.orig/arch/sparc/kernel/vmlinux.lds.S 2004-09-03 19:55:27.000000000 -0400
+++ 2.6.13-rc2a/arch/sparc/kernel/vmlinux.lds.S 2005-07-10 12:34:42.000000000 -0400
@@ -14,6 +14,7 @@
*(.text)
SCHED_TEXT
LOCK_TEXT
+ *(.slow.text)
*(.gnu.warning)
} =0
_etext = .;
===================================================================
--- 2.6.13-rc2a.orig/arch/sparc64/kernel/vmlinux.lds.S 2005-06-24 00:50:20.000000000 -0400
+++ 2.6.13-rc2a/arch/sparc64/kernel/vmlinux.lds.S 2005-07-10 12:39:20.000000000 -0400
@@ -17,6 +17,7 @@
*(.text)
SCHED_TEXT
LOCK_TEXT
+ *(.slow.text)
*(.gnu.warning)
} =0
_etext = .;
===================================================================
--- 2.6.13-rc2a.orig/arch/um/kernel/dyn.lds.S 2005-01-15 17:01:56.000000000 -0500
+++ 2.6.13-rc2a/arch/um/kernel/dyn.lds.S 2005-07-10 12:36:51.000000000 -0400
@@ -64,6 +64,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.stub .text.* .gnu.linkonce.t.*)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
===================================================================
--- 2.6.13-rc2a.orig/arch/um/kernel/uml.lds.S 2005-07-07 18:19:03.000000000 -0400
+++ 2.6.13-rc2a/arch/um/kernel/uml.lds.S 2005-07-10 12:37:14.000000000 -0400
@@ -36,6 +36,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)
===================================================================
--- 2.6.13-rc2a.orig/arch/v850/kernel/vmlinux.lds.S 2004-11-02 09:40:41.000000000 -0500
+++ 2.6.13-rc2a/arch/v850/kernel/vmlinux.lds.S 2005-07-10 12:54:02.000000000 -0400
@@ -74,6 +74,7 @@
*(.exit.text) /* 2.5 convention */ \
*(.text.exit) /* 2.4 convention */ \
*(.text.lock) \
+ *(.slow.text)
*(.exitcall.exit) \
__real_etext = . ; /* There may be data after here. */ \
RODATA_CONTENTS \
===================================================================
--- 2.6.13-rc2a.orig/arch/x86_64/kernel/vmlinux.lds.S 2005-07-07 18:19:04.000000000 -0400
+++ 2.6.13-rc2a/arch/x86_64/kernel/vmlinux.lds.S 2005-07-09 22:22:26.000000000 -0400
@@ -22,6 +22,7 @@
SCHED_TEXT
LOCK_TEXT
*(.fixup)
+ *(.slow.text)
*(.gnu.warning)
} = 0x9090
/* out-of-line lock text */
===================================================================
--- 2.6.13-rc2a.orig/arch/xtensa/kernel/vmlinux.lds.S 2005-07-07 18:19:04.000000000 -0400
+++ 2.6.13-rc2a/arch/xtensa/kernel/vmlinux.lds.S 2005-07-10 12:54:53.000000000 -0400
@@ -88,6 +88,7 @@
/* The .head.text section must be the first section! */
*(.head.text)
*(.literal .text)
+ *(.slow.text)
*(.srom.text)
VMLINUX_SYMBOL(__sched_text_start) = .;
*(.sched.text.literal .sched.text)
__
Chuck
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/