Re: [PATCH] Move some more structures into "mostly_readonly"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 7 Jun 2005, Brian Gerst wrote:

> It doesn't really matter.  .rodata isn't actually mapped read-only. Doing so
> would break up the large pages used to map the kernel.

In that case.... here is a patch that moves the table into rodata.

Subject: Move some more structures into "mostly_readonly" and readonly

---

Move syscall timer_hpet and the boot_cpu_data into the "mostly_readonly"
section. And move the syscall table to readonly

Signed-off-by: Alok N Kataria <[email protected]>
Signed-off-by: Shai Fultheim <[email protected]>
Signed-off-by: Christoph Lameter <[email protected]>

Index: linux-2.6.12-rc6-mm1/arch/i386/kernel/entry.S
===================================================================
--- linux-2.6.12-rc6-mm1.orig/arch/i386/kernel/entry.S	2005-06-07 15:17:15.000000000 -0700
+++ linux-2.6.12-rc6-mm1/arch/i386/kernel/entry.S	2005-06-07 15:18:20.000000000 -0700
@@ -680,6 +680,8 @@ ENTRY(spurious_interrupt_bug)
 	pushl $do_spurious_interrupt_bug
 	jmp error_code
 
+.section .ro_data,"a"
 #include "syscall_table.S"
 
 syscall_table_size=(.-sys_call_table)
+.previous
Index: linux-2.6.12-rc6-mm1/arch/i386/kernel/setup.c
===================================================================
--- linux-2.6.12-rc6-mm1.orig/arch/i386/kernel/setup.c	2005-06-07 15:17:15.000000000 -0700
+++ linux-2.6.12-rc6-mm1/arch/i386/kernel/setup.c	2005-06-07 15:18:51.000000000 -0700
@@ -82,7 +82,8 @@ EXPORT_SYMBOL(efi_enabled);
 /* cpu data as detected by the assembly code in head.S */
 struct cpuinfo_x86 new_cpu_data __initdata = { 0, 0, 0, 0, -1, 1, 0, 0, -1 };
 /* common cpu data for all cpus */
-struct cpuinfo_x86 boot_cpu_data = { 0, 0, 0, 0, -1, 1, 0, 0, -1 };
+struct cpuinfo_x86 boot_cpu_data  __cacheline_aligned_mostly_readonly
+		= { 0, 0, 0, 0, -1, 1, 0, 0, -1 };
 EXPORT_SYMBOL(boot_cpu_data);
 
 unsigned long mmu_cr4_features;
Index: linux-2.6.12-rc6-mm1/arch/i386/kernel/syscall_table.S
===================================================================
--- linux-2.6.12-rc6-mm1.orig/arch/i386/kernel/syscall_table.S	2005-06-07 15:17:15.000000000 -0700
+++ linux-2.6.12-rc6-mm1/arch/i386/kernel/syscall_table.S	2005-06-07 15:18:20.000000000 -0700
@@ -1,4 +1,3 @@
-.data
 ENTRY(sys_call_table)
 	.long sys_restart_syscall	/* 0 - old "setup()" system call, used for restarting */
 	.long sys_exit
Index: linux-2.6.12-rc6-mm1/arch/i386/kernel/timers/timer_hpet.c
===================================================================
--- linux-2.6.12-rc6-mm1.orig/arch/i386/kernel/timers/timer_hpet.c	2005-06-07 15:17:15.000000000 -0700
+++ linux-2.6.12-rc6-mm1/arch/i386/kernel/timers/timer_hpet.c	2005-06-07 15:18:20.000000000 -0700
@@ -180,7 +180,7 @@ static int __init init_hpet(char* overri
 /************************************************************/
 
 /* tsc timer_opts struct */
-static struct timer_opts timer_hpet = {
+static struct timer_opts timer_hpet __cacheline_aligned_mostly_readonly = {
 	.name = 		"hpet",
 	.mark_offset =		mark_offset_hpet,
 	.get_offset =		get_offset_hpet,
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux