mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-27 17:11:46 +00:00
[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>
This commit is contained in:
parent
6dc2f0c7df
commit
c4eb2a9331
3 changed files with 24 additions and 57 deletions
|
@ -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();
|
||||||
|
|
|
@ -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 )
|
lpaca->default_decr = tb_ticks_per_jiffy;
|
||||||
decr_overclock_proc0 = decr_overclock;
|
|
||||||
|
|
||||||
lpaca->default_decr = tb_ticks_per_jiffy / decr_overclock_proc0;
|
|
||||||
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.
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue