فهرست منبع

[PATCH] ppc64: remove decr_overclock

Now that we have HZ=1000 there is much less of a need for decr_overclock.
Remove it.

Leave spread_lpevents but move it into iSeries_setup.c.  We should look at
making event spreading the default some day.

Signed-off-by: Anton Blanchard <anton@samba.org>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard 20 سال پیش
والد
کامیت
c4eb2a9331
3فایلهای تغییر یافته به همراه24 افزوده شده و 57 حذف شده
  1. 22 0
      arch/ppc64/kernel/iSeries_setup.c
  2. 1 55
      arch/ppc64/kernel/setup.c
  3. 1 2
      arch/ppc64/kernel/smp.c

+ 22 - 0
arch/ppc64/kernel/iSeries_setup.c

@@ -852,6 +852,28 @@ static int __init iSeries_src_init(void)
 
 
 late_initcall(iSeries_src_init);
 late_initcall(iSeries_src_init);
 
 
+static int set_spread_lpevents(char *str)
+{
+	unsigned long i;
+	unsigned long val = simple_strtoul(str, NULL, 0);
+
+	/*
+	 * The parameter is the number of processors to share in processing
+	 * lp events.
+	 */
+	if (( val > 0) && (val <= NR_CPUS)) {
+		for (i = 1; i < val; ++i)
+			paca[i].lpqueue_ptr = paca[0].lpqueue_ptr;
+
+		printk("lpevent processing spread over %ld processors\n", val);
+	} else {
+		printk("invalid spread_lpevents %ld\n", val);
+	}
+
+	return 1;
+}
+__setup("spread_lpevents=", set_spread_lpevents);
+
 void __init iSeries_early_setup(void)
 void __init iSeries_early_setup(void)
 {
 {
 	iSeries_fixup_klimit();
 	iSeries_fixup_klimit();

+ 1 - 55
arch/ppc64/kernel/setup.c

@@ -103,11 +103,6 @@ extern void unflatten_device_tree(void);
 
 
 extern void smp_release_cpus(void);
 extern void smp_release_cpus(void);
 
 
-unsigned long decr_overclock = 1;
-unsigned long decr_overclock_proc0 = 1;
-unsigned long decr_overclock_set = 0;
-unsigned long decr_overclock_proc0_set = 0;
-
 int have_of = 1;
 int have_of = 1;
 int boot_cpuid = 0;
 int boot_cpuid = 0;
 int boot_cpuid_phys = 0;
 int boot_cpuid_phys = 0;
@@ -1120,64 +1115,15 @@ void ppc64_dump_msg(unsigned int src, const char *msg)
 	printk("[dump]%04x %s\n", src, msg);
 	printk("[dump]%04x %s\n", src, msg);
 }
 }
 
 
-int set_spread_lpevents( char * str )
-{
-	/* The parameter is the number of processors to share in processing lp events */
-	unsigned long i;
-	unsigned long val = simple_strtoul( str, NULL, 0 );
-	if ( ( val > 0 ) && ( val <= NR_CPUS ) ) {
-		for ( i=1; i<val; ++i )
-			paca[i].lpqueue_ptr = paca[0].lpqueue_ptr;
-		printk("lpevent processing spread over %ld processors\n", val);
-	}
-	else
-		printk("invalid spreaqd_lpevents %ld\n", val);
-	return 1;
-}	
-
 /* This should only be called on processor 0 during calibrate decr */
 /* This should only be called on processor 0 during calibrate decr */
 void setup_default_decr(void)
 void setup_default_decr(void)
 {
 {
 	struct paca_struct *lpaca = get_paca();
 	struct paca_struct *lpaca = get_paca();
 
 
-	if ( decr_overclock_set && !decr_overclock_proc0_set )
-		decr_overclock_proc0 = decr_overclock;
-
-	lpaca->default_decr = tb_ticks_per_jiffy / decr_overclock_proc0;	
+	lpaca->default_decr = tb_ticks_per_jiffy;
 	lpaca->next_jiffy_update_tb = get_tb() + tb_ticks_per_jiffy;
 	lpaca->next_jiffy_update_tb = get_tb() + tb_ticks_per_jiffy;
 }
 }
 
 
-int set_decr_overclock_proc0( char * str )
-{
-	unsigned long val = simple_strtoul( str, NULL, 0 );
-	if ( ( val >= 1 ) && ( val <= 48 ) ) {
-		decr_overclock_proc0_set = 1;
-		decr_overclock_proc0 = val;
-		printk("proc 0 decrementer overclock factor of %ld\n", val);
-	}
-	else
-		printk("invalid proc 0 decrementer overclock factor of %ld\n", val);
-	return 1;
-}
-
-int set_decr_overclock( char * str )
-{
-	unsigned long val = simple_strtoul( str, NULL, 0 );
-	if ( ( val >= 1 ) && ( val <= 48 ) ) {
-		decr_overclock_set = 1;
-		decr_overclock = val;
-		printk("decrementer overclock factor of %ld\n", val);
-	}
-	else
-		printk("invalid decrementer overclock factor of %ld\n", val);
-	return 1;
-
-}
-
-__setup("spread_lpevents=", set_spread_lpevents );
-__setup("decr_overclock_proc0=", set_decr_overclock_proc0 );
-__setup("decr_overclock=", set_decr_overclock );
-
 #ifndef CONFIG_PPC_ISERIES
 #ifndef CONFIG_PPC_ISERIES
 /*
 /*
  * This function can be used by platforms to "find" legacy serial ports.
  * This function can be used by platforms to "find" legacy serial ports.

+ 1 - 2
arch/ppc64/kernel/smp.c

@@ -334,7 +334,6 @@ void smp_call_function_interrupt(void)
 	}
 	}
 }
 }
 
 
-extern unsigned long decr_overclock;
 extern struct gettimeofday_struct do_gtod;
 extern struct gettimeofday_struct do_gtod;
 
 
 struct thread_info *current_set[NR_CPUS];
 struct thread_info *current_set[NR_CPUS];
@@ -491,7 +490,7 @@ int __devinit __cpu_up(unsigned int cpu)
 	if (smp_ops->cpu_bootable && !smp_ops->cpu_bootable(cpu))
 	if (smp_ops->cpu_bootable && !smp_ops->cpu_bootable(cpu))
 		return -EINVAL;
 		return -EINVAL;
 
 
-	paca[cpu].default_decr = tb_ticks_per_jiffy / decr_overclock;
+	paca[cpu].default_decr = tb_ticks_per_jiffy;
 
 
 	if (!cpu_has_feature(CPU_FTR_SLB)) {
 	if (!cpu_has_feature(CPU_FTR_SLB)) {
 		void *tmp;
 		void *tmp;