powerpc: Silence software timebase sync
When no hardware method is provided to sync the timebase registers across the machine, and the platform doesn't sync them for us, then we use a generic software implementation. Currently, the code for that has many printks, and they don't have log levels. Most of the printks are only useful for debugging the code, and since we haven't had any problems with it for years, this turns them into pr_debug. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Родитель
1fd0f52583
Коммит
a6a8e009b1
|
@ -113,7 +113,7 @@ void __devinit smp_generic_give_timebase(void)
|
||||||
{
|
{
|
||||||
int i, score, score2, old, min=0, max=5000, offset=1000;
|
int i, score, score2, old, min=0, max=5000, offset=1000;
|
||||||
|
|
||||||
printk("Synchronizing timebase\n");
|
pr_debug("Software timebase sync\n");
|
||||||
|
|
||||||
/* if this fails then this kernel won't work anyway... */
|
/* if this fails then this kernel won't work anyway... */
|
||||||
tbsync = kzalloc( sizeof(*tbsync), GFP_KERNEL );
|
tbsync = kzalloc( sizeof(*tbsync), GFP_KERNEL );
|
||||||
|
@ -123,13 +123,13 @@ void __devinit smp_generic_give_timebase(void)
|
||||||
while (!tbsync->ack)
|
while (!tbsync->ack)
|
||||||
barrier();
|
barrier();
|
||||||
|
|
||||||
printk("Got ack\n");
|
pr_debug("Got ack\n");
|
||||||
|
|
||||||
/* binary search */
|
/* binary search */
|
||||||
for (old = -1; old != offset ; offset = (min+max) / 2) {
|
for (old = -1; old != offset ; offset = (min+max) / 2) {
|
||||||
score = start_contest(kSetAndTest, offset, NUM_ITER);
|
score = start_contest(kSetAndTest, offset, NUM_ITER);
|
||||||
|
|
||||||
printk("score %d, offset %d\n", score, offset );
|
pr_debug("score %d, offset %d\n", score, offset );
|
||||||
|
|
||||||
if( score > 0 )
|
if( score > 0 )
|
||||||
max = offset;
|
max = offset;
|
||||||
|
@ -140,7 +140,7 @@ void __devinit smp_generic_give_timebase(void)
|
||||||
score = start_contest(kSetAndTest, min, NUM_ITER);
|
score = start_contest(kSetAndTest, min, NUM_ITER);
|
||||||
score2 = start_contest(kSetAndTest, max, NUM_ITER);
|
score2 = start_contest(kSetAndTest, max, NUM_ITER);
|
||||||
|
|
||||||
printk("Min %d (score %d), Max %d (score %d)\n",
|
pr_debug("Min %d (score %d), Max %d (score %d)\n",
|
||||||
min, score, max, score2);
|
min, score, max, score2);
|
||||||
score = abs(score);
|
score = abs(score);
|
||||||
score2 = abs(score2);
|
score2 = abs(score2);
|
||||||
|
@ -155,7 +155,7 @@ void __devinit smp_generic_give_timebase(void)
|
||||||
if (score2 <= score || score2 < 20)
|
if (score2 <= score || score2 < 20)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
printk("Final offset: %d (%d/%d)\n", offset, score2, NUM_ITER );
|
pr_debug("Final offset: %d (%d/%d)\n", offset, score2, NUM_ITER );
|
||||||
|
|
||||||
/* exiting */
|
/* exiting */
|
||||||
tbsync->cmd = kExit;
|
tbsync->cmd = kExit;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче