From: Rusty Russell <rusty@rustcorp.com.au>
To: torvalds@transmeta.com
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH] 2.5.1-pre5 cacheline align cleanup
Date: Wed, 05 Dec 2001 15:45:43 +1100 [thread overview]
Message-ID: <E16BTwF-0003IJ-00@wagner> (raw)
There are some confusing uses of the __cacheline_aligned macros. This
cleans them up.
1) __cacheline_aligned should always be applied to variable
definitions, as before,
2) __aligned_type should be applied to struct declarations.
3) __aligned_section can be applied to array declarations (which must
be arrays of an __aligned_type type, of course).
And all of them vanish on SMP (if you want it on UP, do it manually).
Thanks,
Rusty.
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/linux/cache.h working-2.5.1-pre5-align/include/linux/cache.h
--- linux-2.5.1-pre5/include/linux/cache.h Tue Dec 4 17:17:27 2001
+++ working-2.5.1-pre5-align/include/linux/cache.h Wed Dec 5 12:09:08 2001
@@ -12,34 +12,25 @@
#define SMP_CACHE_BYTES L1_CACHE_BYTES
#endif
-#ifndef ____cacheline_aligned
-#define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
-#endif
-
-#ifndef ____cacheline_aligned_in_smp
#ifdef CONFIG_SMP
-#define ____cacheline_aligned_in_smp ____cacheline_aligned
-#else
-#define ____cacheline_aligned_in_smp
-#endif /* CONFIG_SMP */
-#endif
+/* Use this with types. */
+#define __aligned_type __attribute__((__aligned__(SMP_CACHE_BYTES)))
-#ifndef __cacheline_aligned
-#ifdef MODULE
-#define __cacheline_aligned ____cacheline_aligned
-#else
+#ifndef MODULE
+/* This with simple variables whose types are not aligned (not arrays!) */
#define __cacheline_aligned \
__attribute__((__aligned__(SMP_CACHE_BYTES), \
__section__(".data.cacheline_aligned")))
-#endif
-#endif /* __cacheline_aligned */
-
-#ifndef __cacheline_aligned_in_smp
-#ifdef CONFIG_SMP
-#define __cacheline_aligned_in_smp __cacheline_aligned
+/* This is for variables whose types are declared __aligned_type */
+#define __aligned_section __attribute__((__section__(".data.cacheline_aligned")))
#else
-#define __cacheline_aligned_in_smp
-#endif /* CONFIG_SMP */
-#endif
+#define __cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
+#define __aligned_section
+#endif /* MODULE */
+#else
+#define __aligned_type
+#define __cacheline_aligned
+#define __aligned_section
+#endif /* !CONFIG_SMP */
#endif /* __LINUX_CACHE_H */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/arch/alpha/kernel/irq.c working-2.5.1-pre5-align/arch/alpha/kernel/irq.c
--- linux-2.5.1-pre5/arch/alpha/kernel/irq.c Tue Dec 4 17:17:18 2001
+++ working-2.5.1-pre5-align/arch/alpha/kernel/irq.c Tue Dec 4 19:45:07 2001
@@ -33,7 +33,7 @@
/*
* Controller mappings for all interrupt sources:
*/
-irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned = {
+irq_desc_t irq_desc[NR_IRQS] __aligned_section = {
[0 ... NR_IRQS-1] = { 0, &no_irq_type, NULL, 0, SPIN_LOCK_UNLOCKED}
};
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/arch/alpha/kernel/smp.c working-2.5.1-pre5-align/arch/alpha/kernel/smp.c
--- linux-2.5.1-pre5/arch/alpha/kernel/smp.c Tue Nov 27 16:53:27 2001
+++ working-2.5.1-pre5-align/arch/alpha/kernel/smp.c Tue Dec 4 19:45:14 2001
@@ -56,8 +56,8 @@
/* A collection of single bit ipi messages. */
static struct {
- unsigned long bits ____cacheline_aligned;
-} ipi_data[NR_CPUS] __cacheline_aligned;
+ unsigned long bits __aligned_type;
+} ipi_data[NR_CPUS] __aligned_section;
enum ipi_message_type {
IPI_RESCHEDULE,
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/arch/i386/kernel/init_task.c working-2.5.1-pre5-align/arch/i386/kernel/init_task.c
--- linux-2.5.1-pre5/arch/i386/kernel/init_task.c Tue Sep 18 08:29:09 2001
+++ working-2.5.1-pre5-align/arch/i386/kernel/init_task.c Tue Dec 4 19:05:01 2001
@@ -29,5 +29,5 @@
* section. Since TSS's are completely CPU-local, we want them
* on exact cacheline boundaries, to eliminate cacheline ping-pong.
*/
-struct tss_struct init_tss[NR_CPUS] __cacheline_aligned = { [0 ... NR_CPUS-1] = INIT_TSS };
+struct tss_struct init_tss[NR_CPUS] __aligned_section = { [0 ... NR_CPUS-1] = INIT_TSS };
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/arch/i386/kernel/irq.c working-2.5.1-pre5-align/arch/i386/kernel/irq.c
--- linux-2.5.1-pre5/arch/i386/kernel/irq.c Tue Dec 4 17:17:18 2001
+++ working-2.5.1-pre5-align/arch/i386/kernel/irq.c Tue Dec 4 19:04:08 2001
@@ -66,7 +66,7 @@
/*
* Controller mappings for all interrupt sources:
*/
-irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned =
+irq_desc_t irq_desc[NR_IRQS] __aligned_section =
{ [0 ... NR_IRQS-1] = { 0, &no_irq_type, NULL, 0, SPIN_LOCK_UNLOCKED}};
static void register_irq_proc (unsigned int irq);
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/arch/ia64/kernel/irq.c working-2.5.1-pre5-align/arch/ia64/kernel/irq.c
--- linux-2.5.1-pre5/arch/ia64/kernel/irq.c Tue Dec 4 17:17:18 2001
+++ working-2.5.1-pre5-align/arch/ia64/kernel/irq.c Tue Dec 4 19:46:01 2001
@@ -65,7 +65,7 @@
/*
* Controller mappings for all interrupt sources:
*/
-irq_desc_t _irq_desc[NR_IRQS] __cacheline_aligned =
+irq_desc_t _irq_desc[NR_IRQS] __aligned_section =
{ [0 ... NR_IRQS-1] = { IRQ_DISABLED, &no_irq_type, NULL, 0, SPIN_LOCK_UNLOCKED}};
static void register_irq_proc (unsigned int irq);
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/arch/ia64/kernel/perfmon.c working-2.5.1-pre5-align/arch/ia64/kernel/perfmon.c
--- linux-2.5.1-pre5/arch/ia64/kernel/perfmon.c Tue Nov 27 16:53:28 2001
+++ working-2.5.1-pre5-align/arch/ia64/kernel/perfmon.c Tue Dec 4 18:31:38 2001
@@ -276,7 +276,7 @@
struct {
struct task_struct *owner;
-} ____cacheline_aligned pmu_owners[NR_CPUS];
+} __aligned_type pmu_owners[NR_CPUS];
/*
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/arch/mips/kernel/irq.c working-2.5.1-pre5-align/arch/mips/kernel/irq.c
--- linux-2.5.1-pre5/arch/mips/kernel/irq.c Tue Dec 4 17:17:18 2001
+++ working-2.5.1-pre5-align/arch/mips/kernel/irq.c Tue Dec 4 19:45:22 2001
@@ -24,7 +24,7 @@
/*
* Controller mappings for all interrupt sources:
*/
-irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned =
+irq_desc_t irq_desc[NR_IRQS] __aligned_section =
{ [0 ... NR_IRQS-1] = { 0, &no_irq_type, NULL, 0, SPIN_LOCK_UNLOCKED}};
/*
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/arch/ppc/kernel/irq.c working-2.5.1-pre5-align/arch/ppc/kernel/irq.c
--- linux-2.5.1-pre5/arch/ppc/kernel/irq.c Tue Dec 4 17:17:18 2001
+++ working-2.5.1-pre5-align/arch/ppc/kernel/irq.c Tue Dec 4 19:45:30 2001
@@ -75,7 +75,7 @@
#define MAXCOUNT 10000000
-irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned =
+irq_desc_t irq_desc[NR_IRQS] __aligned_section =
{ [0 ... NR_IRQS-1] = { 0, NULL, NULL, 0, SPIN_LOCK_UNLOCKED}};
int ppc_spurious_interrupts = 0;
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/arch/ppc/kernel/ppc_defs.h working-2.5.1-pre5-align/arch/ppc/kernel/ppc_defs.h
--- linux-2.5.1-pre5/arch/ppc/kernel/ppc_defs.h Thu Jan 1 10:00:00 1970
+++ working-2.5.1-pre5-align/arch/ppc/kernel/ppc_defs.h Wed Dec 5 12:48:56 2001
@@ -0,0 +1,82 @@
+/*
+ * WARNING! This file is automatically generated - DO NOT EDIT!
+ */
+#define STATE 0
+#define NEXT_TASK 72
+#define COUNTER 32
+#define PROCESSOR 48
+#define SIGPENDING 8
+#define THREAD 624
+#define MM 44
+#define ACTIVE_MM 80
+#define TASK_STRUCT_SIZE 1536
+#define KSP 0
+#define PGDIR 16
+#define LAST_SYSCALL 20
+#define PT_REGS 8
+#define PT_TRACESYS 2
+#define TASK_FLAGS 4
+#define TASK_PTRACE 24
+#define NEED_RESCHED 20
+#define THREAD_FPR0 24
+#define THREAD_FPSCR 284
+#define THREAD_VR0 288
+#define THREAD_VRSAVE 816
+#define THREAD_VSCR 800
+#define TASK_UNION_SIZE 8192
+#define STACK_FRAME_OVERHEAD 16
+#define INT_FRAME_SIZE 192
+#define GPR0 16
+#define GPR1 20
+#define GPR2 24
+#define GPR3 28
+#define GPR4 32
+#define GPR5 36
+#define GPR6 40
+#define GPR7 44
+#define GPR8 48
+#define GPR9 52
+#define GPR10 56
+#define GPR11 60
+#define GPR12 64
+#define GPR13 68
+#define GPR14 72
+#define GPR15 76
+#define GPR16 80
+#define GPR17 84
+#define GPR18 88
+#define GPR19 92
+#define GPR20 96
+#define GPR21 100
+#define GPR22 104
+#define GPR23 108
+#define GPR24 112
+#define GPR25 116
+#define GPR26 120
+#define GPR27 124
+#define GPR28 128
+#define GPR29 132
+#define GPR30 136
+#define GPR31 140
+#define _NIP 144
+#define _MSR 148
+#define _CTR 156
+#define _LINK 160
+#define _CCR 168
+#define _MQ 172
+#define _XER 164
+#define _DAR 180
+#define _DSISR 184
+#define _DEAR 180
+#define _ESR 184
+#define ORIG_GPR3 152
+#define RESULT 188
+#define TRAP 176
+#define CLONE_VM 256
+#define MM_PGD 12
+#define CPU_SPEC_ENTRY_SIZE 32
+#define CPU_SPEC_PVR_MASK 0
+#define CPU_SPEC_PVR_VALUE 4
+#define CPU_SPEC_FEATURES 12
+#define CPU_SPEC_SETUP 28
+#define NUM_USER_SEGMENTS 8
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/arch/sh/kernel/irq.c working-2.5.1-pre5-align/arch/sh/kernel/irq.c
--- linux-2.5.1-pre5/arch/sh/kernel/irq.c Tue Dec 4 17:17:18 2001
+++ working-2.5.1-pre5-align/arch/sh/kernel/irq.c Tue Dec 4 19:45:54 2001
@@ -40,7 +40,7 @@
/*
* Controller mappings for all interrupt sources:
*/
-irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned =
+irq_desc_t irq_desc[NR_IRQS] __aligned_section =
{ [0 ... NR_IRQS-1] = { 0, &no_irq_type, }};
/*
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/drivers/net/acenic.h working-2.5.1-pre5-align/drivers/net/acenic.h
--- linux-2.5.1-pre5/drivers/net/acenic.h Tue Nov 27 16:53:30 2001
+++ working-2.5.1-pre5-align/drivers/net/acenic.h Wed Dec 5 13:41:48 2001
@@ -647,7 +647,7 @@
* RX elements
*/
unsigned long std_refill_busy
- __attribute__ ((aligned (SMP_CACHE_BYTES)));
+ __aligned_type;
unsigned long mini_refill_busy, jumbo_refill_busy;
atomic_t cur_rx_bufs;
atomic_t cur_mini_bufs;
@@ -682,7 +682,7 @@
char name[48];
#ifdef INDEX_DEBUG
spinlock_t debug_lock
- __attribute__ ((aligned (SMP_CACHE_BYTES)));;
+ __aligned_type;
u32 last_tx, last_std_rx, last_mini_rx;
#endif
struct net_device_stats stats;
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/fs/block_dev.c working-2.5.1-pre5-align/fs/block_dev.c
--- linux-2.5.1-pre5/fs/block_dev.c Tue Dec 4 17:17:26 2001
+++ working-2.5.1-pre5-align/fs/block_dev.c Wed Dec 5 12:09:00 2001
@@ -234,7 +234,7 @@
#define HASH_SIZE (1UL << HASH_BITS)
#define HASH_MASK (HASH_SIZE-1)
static struct list_head bdev_hashtable[HASH_SIZE];
-static spinlock_t bdev_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
+static spinlock_t bdev_lock __cacheline_aligned = SPIN_LOCK_UNLOCKED;
static kmem_cache_t * bdev_cachep;
#define alloc_bdev() \
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/fs/buffer.c working-2.5.1-pre5-align/fs/buffer.c
--- linux-2.5.1-pre5/fs/buffer.c Tue Dec 4 17:17:26 2001
+++ working-2.5.1-pre5-align/fs/buffer.c Wed Dec 5 12:09:00 2001
@@ -74,7 +74,7 @@
static rwlock_t hash_table_lock = RW_LOCK_UNLOCKED;
static struct buffer_head *lru_list[NR_LIST];
-static spinlock_t lru_list_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
+static spinlock_t lru_list_lock __cacheline_aligned = SPIN_LOCK_UNLOCKED;
static int nr_buffers_type[NR_LIST];
static unsigned long size_buffers_type[NR_LIST];
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/fs/dcache.c working-2.5.1-pre5-align/fs/dcache.c
--- linux-2.5.1-pre5/fs/dcache.c Tue Dec 4 17:17:26 2001
+++ working-2.5.1-pre5-align/fs/dcache.c Tue Dec 4 18:32:28 2001
@@ -29,7 +29,7 @@
#define DCACHE_PARANOIA 1
/* #define DCACHE_DEBUG 1 */
-spinlock_t dcache_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
+spinlock_t dcache_lock __cacheline_aligned = SPIN_LOCK_UNLOCKED;
/* Right now the dcache depends on the kernel lock */
#define check_lock() if (!kernel_locked()) BUG()
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-alpha/cache.h working-2.5.1-pre5-align/include/asm-alpha/cache.h
--- linux-2.5.1-pre5/include/asm-alpha/cache.h Fri Oct 5 11:47:08 2001
+++ working-2.5.1-pre5-align/include/asm-alpha/cache.h Wed Dec 5 13:36:26 2001
@@ -18,7 +18,4 @@
# define L1_CACHE_SHIFT 5
#endif
-#define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
-#define SMP_CACHE_BYTES L1_CACHE_BYTES
-
#endif
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-alpha/hardirq.h working-2.5.1-pre5-align/include/asm-alpha/hardirq.h
--- linux-2.5.1-pre5/include/asm-alpha/hardirq.h Tue Jul 10 07:47:39 2001
+++ working-2.5.1-pre5-align/include/asm-alpha/hardirq.h Tue Dec 4 18:23:39 2001
@@ -11,7 +11,7 @@
unsigned int __local_bh_count;
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task;
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-arm/cache.h working-2.5.1-pre5-align/include/asm-arm/cache.h
--- linux-2.5.1-pre5/include/asm-arm/cache.h Tue Sep 19 09:15:23 2000
+++ working-2.5.1-pre5-align/include/asm-arm/cache.h Tue Dec 4 18:39:02 2001
@@ -5,15 +5,4 @@
#define __ASMARM_CACHE_H
#define L1_CACHE_BYTES 32
-#define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
-#define SMP_CACHE_BYTES L1_CACHE_BYTES
-
-#ifdef MODULE
-#define __cacheline_aligned __attribute__((__aligned__(L1_CACHE_BYTES)))
-#else
-#define __cacheline_aligned \
- __attribute__((__aligned__(L1_CACHE_BYTES), \
- __section__(".data.cacheline_aligned")))
-#endif
-
#endif
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-arm/hardirq.h working-2.5.1-pre5-align/include/asm-arm/hardirq.h
--- linux-2.5.1-pre5/include/asm-arm/hardirq.h Fri Oct 12 02:04:57 2001
+++ working-2.5.1-pre5-align/include/asm-arm/hardirq.h Tue Dec 4 18:25:41 2001
@@ -12,7 +12,7 @@
unsigned int __local_bh_count;
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task; /* waitqueue is too large */
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-cris/hardirq.h working-2.5.1-pre5-align/include/asm-cris/hardirq.h
--- linux-2.5.1-pre5/include/asm-cris/hardirq.h Fri Jul 27 08:10:07 2001
+++ working-2.5.1-pre5-align/include/asm-cris/hardirq.h Wed Dec 5 12:08:59 2001
@@ -12,7 +12,7 @@
unsigned int __local_bh_count;
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task; /* waitqueue is too large */
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-i386/hardirq.h working-2.5.1-pre5-align/include/asm-i386/hardirq.h
--- linux-2.5.1-pre5/include/asm-i386/hardirq.h Tue Nov 27 16:53:39 2001
+++ working-2.5.1-pre5-align/include/asm-i386/hardirq.h Tue Dec 4 18:23:25 2001
@@ -13,7 +13,7 @@
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task; /* waitqueue is too large */
unsigned int __nmi_count; /* arch dependent */
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-i386/processor.h working-2.5.1-pre5-align/include/asm-i386/processor.h
--- linux-2.5.1-pre5/include/asm-i386/processor.h Tue Nov 27 16:53:39 2001
+++ working-2.5.1-pre5-align/include/asm-i386/processor.h Wed Dec 5 13:35:29 2001
@@ -53,7 +53,7 @@
unsigned long *pmd_quick;
unsigned long *pte_quick;
unsigned long pgtable_cache_sz;
-} __attribute__((__aligned__(SMP_CACHE_BYTES)));
+} __aligned_type;
#define X86_VENDOR_INTEL 0
#define X86_VENDOR_CYRIX 1
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-m68k/hardirq.h working-2.5.1-pre5-align/include/asm-m68k/hardirq.h
--- linux-2.5.1-pre5/include/asm-m68k/hardirq.h Tue Nov 6 11:41:42 2001
+++ working-2.5.1-pre5-align/include/asm-m68k/hardirq.h Tue Dec 4 18:23:44 2001
@@ -11,7 +11,7 @@
unsigned int __local_bh_count;
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task;
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-mips/cache.h working-2.5.1-pre5-align/include/asm-mips/cache.h
--- linux-2.5.1-pre5/include/asm-mips/cache.h Tue Jul 3 06:56:40 2001
+++ working-2.5.1-pre5-align/include/asm-mips/cache.h Wed Dec 5 13:35:50 2001
@@ -34,6 +34,4 @@
#define L1_CACHE_BYTES 32 /* A guess */
#endif
-#define SMP_CACHE_BYTES L1_CACHE_BYTES
-
#endif /* _ASM_CACHE_H */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-mips/hardirq.h working-2.5.1-pre5-align/include/asm-mips/hardirq.h
--- linux-2.5.1-pre5/include/asm-mips/hardirq.h Mon Sep 10 03:43:01 2001
+++ working-2.5.1-pre5-align/include/asm-mips/hardirq.h Tue Dec 4 18:23:33 2001
@@ -21,7 +21,7 @@
unsigned int __local_bh_count;
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task; /* waitqueue is too large */
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-mips64/hardirq.h working-2.5.1-pre5-align/include/asm-mips64/hardirq.h
--- linux-2.5.1-pre5/include/asm-mips64/hardirq.h Mon Sep 10 03:43:02 2001
+++ working-2.5.1-pre5-align/include/asm-mips64/hardirq.h Tue Dec 4 18:26:27 2001
@@ -20,7 +20,7 @@
unsigned int __local_bh_count;
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task; /* waitqueue is too large */
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-parisc/cache.h working-2.5.1-pre5-align/include/asm-parisc/cache.h
--- linux-2.5.1-pre5/include/asm-parisc/cache.h Thu Dec 7 06:46:39 2000
+++ working-2.5.1-pre5-align/include/asm-parisc/cache.h Wed Dec 5 13:38:29 2001
@@ -31,12 +31,6 @@
#define L1_CACHE_BYTES 32
#endif
-#define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
-
-#define SMP_CACHE_BYTES L1_CACHE_BYTES
-
-#define __cacheline_aligned __attribute__((__aligned__(L1_CACHE_BYTES)))
-
extern void init_cache(void); /* initializes cache-flushing */
extern void flush_data_cache(void); /* flushes data-cache only */
extern void flush_instruction_cache(void);/* flushes code-cache only */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-parisc/hardirq.h working-2.5.1-pre5-align/include/asm-parisc/hardirq.h
--- linux-2.5.1-pre5/include/asm-parisc/hardirq.h Wed Dec 6 07:29:39 2000
+++ working-2.5.1-pre5-align/include/asm-parisc/hardirq.h Wed Dec 5 12:09:00 2001
@@ -16,7 +16,7 @@
unsigned int __local_irq_count;
unsigned int __local_bh_count;
unsigned int __syscall_count;
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-ppc/cache.h working-2.5.1-pre5-align/include/asm-ppc/cache.h
--- linux-2.5.1-pre5/include/asm-ppc/cache.h Fri Nov 30 20:57:34 2001
+++ working-2.5.1-pre5-align/include/asm-ppc/cache.h Wed Dec 5 12:09:08 2001
@@ -27,18 +27,7 @@
#endif
#define L1_CACHE_BYTES L1_CACHE_LINE_SIZE
-#define SMP_CACHE_BYTES L1_CACHE_BYTES
-
-#define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
#define L1_CACHE_PAGES 8
-
-#ifdef MODULE
-#define __cacheline_aligned __attribute__((__aligned__(L1_CACHE_BYTES)))
-#else
-#define __cacheline_aligned \
- __attribute__((__aligned__(L1_CACHE_BYTES), \
- __section__(".data.cacheline_aligned")))
-#endif
#if defined(__KERNEL__) && !defined(__ASSEMBLY__)
extern void flush_dcache_range(unsigned long start, unsigned long stop);
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-ppc/hardirq.h working-2.5.1-pre5-align/include/asm-ppc/hardirq.h
--- linux-2.5.1-pre5/include/asm-ppc/hardirq.h Fri Nov 30 20:57:34 2001
+++ working-2.5.1-pre5-align/include/asm-ppc/hardirq.h Wed Dec 5 12:09:08 2001
@@ -21,7 +21,7 @@
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task;
unsigned int __last_jiffy_stamp;
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-s390/hardirq.h working-2.5.1-pre5-align/include/asm-s390/hardirq.h
--- linux-2.5.1-pre5/include/asm-s390/hardirq.h Thu Jul 26 07:12:02 2001
+++ working-2.5.1-pre5-align/include/asm-s390/hardirq.h Wed Dec 5 12:09:00 2001
@@ -24,7 +24,7 @@
unsigned int __local_bh_count;
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task; /* waitqueue is too large */
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-s390/init.h working-2.5.1-pre5-align/include/asm-s390/init.h
--- linux-2.5.1-pre5/include/asm-s390/init.h Thu Jul 26 07:12:02 2001
+++ working-2.5.1-pre5-align/include/asm-s390/init.h Tue Dec 4 18:42:02 2001
@@ -22,8 +22,5 @@
#define __FINIT .previous
#define __INITDATA .section ".data.init",#alloc,#write
*/
-
-#define __cacheline_aligned __attribute__ ((__aligned__(256)))
-
#endif
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-s390x/hardirq.h working-2.5.1-pre5-align/include/asm-s390x/hardirq.h
--- linux-2.5.1-pre5/include/asm-s390x/hardirq.h Thu Jul 26 07:12:02 2001
+++ working-2.5.1-pre5-align/include/asm-s390x/hardirq.h Wed Dec 5 12:08:59 2001
@@ -24,7 +24,7 @@
unsigned int __local_bh_count;
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task; /* waitqueue is too large */
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-s390x/init.h working-2.5.1-pre5-align/include/asm-s390x/init.h
--- linux-2.5.1-pre5/include/asm-s390x/init.h Thu Jul 26 07:12:02 2001
+++ working-2.5.1-pre5-align/include/asm-s390x/init.h Tue Dec 4 18:42:59 2001
@@ -23,7 +23,5 @@
#define __INITDATA .section ".data.init",#alloc,#write
*/
-#define __cacheline_aligned __attribute__ ((__aligned__(256)))
-
#endif
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-sh/hardirq.h working-2.5.1-pre5-align/include/asm-sh/hardirq.h
--- linux-2.5.1-pre5/include/asm-sh/hardirq.h Sun Sep 9 05:29:09 2001
+++ working-2.5.1-pre5-align/include/asm-sh/hardirq.h Tue Dec 4 18:26:19 2001
@@ -11,7 +11,7 @@
unsigned int __local_bh_count;
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task;
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-sparc/cache.h working-2.5.1-pre5-align/include/asm-sparc/cache.h
--- linux-2.5.1-pre5/include/asm-sparc/cache.h Wed Sep 1 04:23:30 1999
+++ working-2.5.1-pre5-align/include/asm-sparc/cache.h Tue Dec 4 18:36:26 2001
@@ -11,17 +11,6 @@
#include <asm/asi.h>
#define L1_CACHE_BYTES 32
-#define L1_CACHE_ALIGN(x) ((((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1)))
-
-#define SMP_CACHE_BYTES 32
-
-#ifdef MODULE
-#define __cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
-#else
-#define __cacheline_aligned \
- __attribute__((__aligned__(SMP_CACHE_BYTES), \
- __section__(".data.cacheline_aligned")))
-#endif
/* Direct access to the instruction cache is provided through and
* alternate address space. The IDC bit must be off in the ICCR on
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-sparc/hardirq.h working-2.5.1-pre5-align/include/asm-sparc/hardirq.h
--- linux-2.5.1-pre5/include/asm-sparc/hardirq.h Tue Jul 10 07:47:39 2001
+++ working-2.5.1-pre5-align/include/asm-sparc/hardirq.h Tue Dec 4 18:23:50 2001
@@ -24,7 +24,7 @@
unsigned int __local_bh_count;
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task;
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
/* Note that local_irq_count() is replaced by sparc64 specific version for SMP */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-sparc64/cache.h working-2.5.1-pre5-align/include/asm-sparc64/cache.h
--- linux-2.5.1-pre5/include/asm-sparc64/cache.h Thu Oct 18 07:16:39 2001
+++ working-2.5.1-pre5-align/include/asm-sparc64/cache.h Tue Dec 4 18:39:09 2001
@@ -7,17 +7,7 @@
/* bytes per L1 cache line */
#define L1_CACHE_BYTES 32 /* Two 16-byte sub-blocks per line. */
-#define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
-
#define SMP_CACHE_BYTES_SHIFT 6
#define SMP_CACHE_BYTES (1 << SMP_CACHE_BYTES_SHIFT) /* L2 cache line size. */
-
-#ifdef MODULE
-#define __cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
-#else
-#define __cacheline_aligned \
- __attribute__((__aligned__(SMP_CACHE_BYTES), \
- __section__(".data.cacheline_aligned")))
-#endif
#endif
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/asm-sparc64/hardirq.h working-2.5.1-pre5-align/include/asm-sparc64/hardirq.h
--- linux-2.5.1-pre5/include/asm-sparc64/hardirq.h Thu Oct 18 07:16:39 2001
+++ working-2.5.1-pre5-align/include/asm-sparc64/hardirq.h Tue Dec 4 18:25:32 2001
@@ -24,7 +24,7 @@
unsigned int __local_bh_count;
unsigned int __syscall_count;
struct task_struct * __ksoftirqd_task;
-} ____cacheline_aligned irq_cpustat_t;
+} __aligned_type irq_cpustat_t;
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
/* Note that local_irq_count() is replaced by sparc64 specific version for SMP */
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/linux/brlock.h working-2.5.1-pre5-align/include/linux/brlock.h
--- linux-2.5.1-pre5/include/linux/brlock.h Wed Dec 5 12:09:29 2001
+++ working-2.5.1-pre5-align/include/linux/brlock.h Wed Dec 5 13:34:57 2001
@@ -68,7 +68,7 @@
#ifndef __BRLOCK_USE_ATOMICS
struct br_wrlock {
spinlock_t lock;
-} __attribute__ ((__aligned__(SMP_CACHE_BYTES)));
+} __aligned_type;
extern struct br_wrlock __br_write_locks[__BR_IDX_MAX];
#endif
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/linux/interrupt.h working-2.5.1-pre5-align/include/linux/interrupt.h
--- linux-2.5.1-pre5/include/linux/interrupt.h Wed Dec 5 12:09:08 2001
+++ working-2.5.1-pre5-align/include/linux/interrupt.h Wed Dec 5 13:25:55 2001
@@ -125,7 +125,7 @@
struct tasklet_head
{
struct tasklet_struct *list;
-} __attribute__ ((__aligned__(SMP_CACHE_BYTES)));
+} __aligned_type;
extern struct tasklet_head tasklet_vec[NR_CPUS];
extern struct tasklet_head tasklet_hi_vec[NR_CPUS];
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/linux/irq.h working-2.5.1-pre5-align/include/linux/irq.h
--- linux-2.5.1-pre5/include/linux/irq.h Fri Nov 30 21:10:04 2001
+++ working-2.5.1-pre5-align/include/linux/irq.h Wed Dec 5 12:48:56 2001
@@ -62,7 +62,7 @@
struct irqaction *action; /* IRQ action list */
unsigned int depth; /* nested irq disables */
spinlock_t lock;
-} ____cacheline_aligned irq_desc_t;
+} __aligned_type irq_desc_t;
extern irq_desc_t irq_desc [NR_IRQS];
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/linux/netdevice.h working-2.5.1-pre5-align/include/linux/netdevice.h
--- linux-2.5.1-pre5/include/linux/netdevice.h Fri Nov 30 20:59:16 2001
+++ working-2.5.1-pre5-align/include/linux/netdevice.h Wed Dec 5 13:34:29 2001
@@ -161,7 +161,7 @@
unsigned fastroute_deferred_out;
unsigned fastroute_latency_reduction;
unsigned cpu_collision;
-} __attribute__ ((__aligned__(SMP_CACHE_BYTES)));
+} __aligned_type;
extern struct netif_rx_stats netdev_rx_stat[];
@@ -478,7 +478,7 @@
struct sk_buff_head input_pkt_queue;
struct net_device *output_queue;
struct sk_buff *completion_queue;
-} __attribute__((__aligned__(SMP_CACHE_BYTES)));
+} __aligned_type;
extern struct softnet_data softnet_data[NR_CPUS];
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/net/route.h working-2.5.1-pre5-align/include/net/route.h
--- linux-2.5.1-pre5/include/net/route.h Fri Nov 30 20:59:28 2001
+++ working-2.5.1-pre5-align/include/net/route.h Wed Dec 5 12:41:21 2001
@@ -109,7 +109,7 @@
unsigned int out_hit;
unsigned int out_slow_tot;
unsigned int out_slow_mc;
-} ____cacheline_aligned_in_smp;
+} __aligned_type;
extern struct ip_rt_acct *ip_rt_acct;
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/net/snmp.h working-2.5.1-pre5-align/include/net/snmp.h
--- linux-2.5.1-pre5/include/net/snmp.h Fri Nov 30 20:59:28 2001
+++ working-2.5.1-pre5-align/include/net/snmp.h Wed Dec 5 12:41:21 2001
@@ -62,7 +62,7 @@
unsigned long IpFragFails;
unsigned long IpFragCreates;
unsigned long __pad[0];
-} ____cacheline_aligned;
+} __aligned_type;
struct ipv6_mib
{
@@ -89,7 +89,7 @@
unsigned long Ip6InMcastPkts;
unsigned long Ip6OutMcastPkts;
unsigned long __pad[0];
-} ____cacheline_aligned;
+} __aligned_type;
struct icmp_mib
{
@@ -121,7 +121,7 @@
unsigned long IcmpOutAddrMaskReps;
unsigned long dummy;
unsigned long __pad[0];
-} ____cacheline_aligned;
+} __aligned_type;
struct icmpv6_mib
{
@@ -159,7 +159,7 @@
unsigned long Icmp6OutGroupMembResponses;
unsigned long Icmp6OutGroupMembReductions;
unsigned long __pad[0];
-} ____cacheline_aligned;
+} __aligned_type;
struct tcp_mib
{
@@ -178,7 +178,7 @@
unsigned long TcpInErrs;
unsigned long TcpOutRsts;
unsigned long __pad[0];
-} ____cacheline_aligned;
+} __aligned_type;
struct udp_mib
{
@@ -187,7 +187,7 @@
unsigned long UdpInErrors;
unsigned long UdpOutDatagrams;
unsigned long __pad[0];
-} ____cacheline_aligned;
+} __aligned_type;
struct linux_mib
{
@@ -257,7 +257,7 @@
unsigned long TCPAbortFailed;
unsigned long TCPMemoryPressures;
unsigned long __pad[0];
-} ____cacheline_aligned;
+} __aligned_type;
/*
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/include/net/tcp.h working-2.5.1-pre5-align/include/net/tcp.h
--- linux-2.5.1-pre5/include/net/tcp.h Wed Dec 5 12:41:21 2001
+++ working-2.5.1-pre5-align/include/net/tcp.h Wed Dec 5 13:37:10 2001
@@ -117,8 +117,7 @@
* Now align to a new cache line as all the following members
* are often dirty.
*/
- rwlock_t __tcp_lhash_lock
- __attribute__((__aligned__(SMP_CACHE_BYTES)));
+ rwlock_t __tcp_lhash_lock __aligned_type;
atomic_t __tcp_lhash_users;
wait_queue_head_t __tcp_lhash_wait;
spinlock_t __tcp_portalloc_lock;
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/kernel/fork.c working-2.5.1-pre5-align/kernel/fork.c
--- linux-2.5.1-pre5/kernel/fork.c Tue Dec 4 17:17:28 2001
+++ working-2.5.1-pre5-align/kernel/fork.c Tue Dec 4 18:32:59 2001
@@ -206,7 +206,7 @@
return retval;
}
-spinlock_t mmlist_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
+spinlock_t mmlist_lock __cacheline_aligned = SPIN_LOCK_UNLOCKED;
int mmlist_nr;
#define allocate_mm() (kmem_cache_alloc(mm_cachep, SLAB_KERNEL))
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/kernel/ksyms.c working-2.5.1-pre5-align/kernel/ksyms.c
--- linux-2.5.1-pre5/kernel/ksyms.c Tue Dec 4 17:17:28 2001
+++ working-2.5.1-pre5-align/kernel/ksyms.c Wed Dec 5 12:10:43 2001
@@ -60,7 +60,6 @@
extern void *sys_call_table;
extern struct timezone sys_tz;
-extern int request_dma(unsigned int dmanr, char * deviceID);
extern void free_dma(unsigned int dmanr);
extern spinlock_t dma_spin_lock;
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/kernel/sched.c working-2.5.1-pre5-align/kernel/sched.c
--- linux-2.5.1-pre5/kernel/sched.c Tue Nov 27 16:53:42 2001
+++ working-2.5.1-pre5-align/kernel/sched.c Wed Dec 5 13:27:21 2001
@@ -104,7 +104,7 @@
cycles_t last_schedule;
} schedule_data;
char __pad [SMP_CACHE_BYTES];
-} aligned_data [NR_CPUS] __cacheline_aligned = { {{&init_task,0}}};
+} aligned_data [NR_CPUS] __aligned_section = { {{&init_task,0}}};
#define cpu_curr(cpu) aligned_data[(cpu)].schedule_data.curr
#define last_schedule(cpu) aligned_data[(cpu)].schedule_data.last_schedule
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/kernel/softirq.c working-2.5.1-pre5-align/kernel/softirq.c
--- linux-2.5.1-pre5/kernel/softirq.c Tue Dec 4 17:17:28 2001
+++ working-2.5.1-pre5-align/kernel/softirq.c Wed Dec 5 13:26:20 2001
@@ -42,7 +42,7 @@
irq_cpustat_t irq_stat[NR_CPUS];
-static struct softirq_action softirq_vec[32] __cacheline_aligned_in_smp;
+static struct softirq_action softirq_vec[32] __cacheline_aligned;
/*
* we cannot loop indefinitely here to avoid userspace starvation,
@@ -145,9 +145,8 @@
/* Tasklets */
-
-struct tasklet_head tasklet_vec[NR_CPUS] __cacheline_aligned_in_smp;
-struct tasklet_head tasklet_hi_vec[NR_CPUS] __cacheline_aligned_in_smp;
+struct tasklet_head tasklet_vec[NR_CPUS] __cacheline_aligned;
+struct tasklet_head tasklet_hi_vec[NR_CPUS] __cacheline_aligned;
void __tasklet_schedule(struct tasklet_struct *t)
{
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/mm/filemap.c working-2.5.1-pre5-align/mm/filemap.c
--- linux-2.5.1-pre5/mm/filemap.c Tue Dec 4 17:17:28 2001
+++ working-2.5.1-pre5-align/mm/filemap.c Tue Dec 4 18:35:04 2001
@@ -47,7 +47,7 @@
unsigned int page_hash_bits;
struct page **page_hash_table;
-spinlock_t pagecache_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
+spinlock_t pagecache_lock __cacheline_aligned = SPIN_LOCK_UNLOCKED;
/*
* NOTE: to avoid deadlocking you must never acquire the pagemap_lru_lock
* with the pagecache_lock held.
@@ -57,7 +57,7 @@
* pagemap_lru_lock ->
* pagecache_lock
*/
-spinlock_t pagemap_lru_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED;
+spinlock_t pagemap_lru_lock __cacheline_aligned = SPIN_LOCK_UNLOCKED;
#define CLUSTER_PAGES (1 << page_cluster)
#define CLUSTER_OFFSET(x) (((x) >> page_cluster) << page_cluster)
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/net/core/dev.c working-2.5.1-pre5-align/net/core/dev.c
--- linux-2.5.1-pre5/net/core/dev.c Tue Nov 27 16:53:43 2001
+++ working-2.5.1-pre5-align/net/core/dev.c Tue Dec 4 19:03:25 2001
@@ -185,7 +185,7 @@
* Device drivers call our routines to queue packets here. We empty the
* queue in the local softnet handler.
*/
-struct softnet_data softnet_data[NR_CPUS] __cacheline_aligned;
+struct softnet_data softnet_data[NR_CPUS] __aligned_section;
#ifdef CONFIG_NET_FASTROUTE
int netdev_fastroute;
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/net/ipv4/netfilter/ip_tables.c working-2.5.1-pre5-align/net/ipv4/netfilter/ip_tables.c
--- linux-2.5.1-pre5/net/ipv4/netfilter/ip_tables.c Tue Nov 6 11:41:43 2001
+++ working-2.5.1-pre5-align/net/ipv4/netfilter/ip_tables.c Wed Dec 5 13:40:53 2001
@@ -90,7 +90,7 @@
unsigned int underflow[NF_IP_NUMHOOKS];
/* ipt_entry tables: one per CPU */
- char entries[0] __attribute__((aligned(SMP_CACHE_BYTES)));
+ char entries[0] __aligned_type;
};
static LIST_HEAD(ipt_target);
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.1-pre5/net/socket.c working-2.5.1-pre5-align/net/socket.c
--- linux-2.5.1-pre5/net/socket.c Thu Oct 18 07:38:28 2001
+++ working-2.5.1-pre5-align/net/socket.c Tue Dec 4 19:03:39 2001
@@ -188,7 +188,7 @@
static union {
int counter;
char __pad[SMP_CACHE_BYTES];
-} sockets_in_use[NR_CPUS] __cacheline_aligned = {{0}};
+} sockets_in_use[NR_CPUS] __aligned_section = {{0}};
/*
* Support routines. Move socket addresses back and forth across the kernel/user
--
Premature optmztion is rt of all evl. --DK
reply other threads:[~2001-12-05 4:46 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E16BTwF-0003IJ-00@wagner \
--to=rusty@rustcorp.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.