forked from Minki/linux
[MIPS] Make SMTC_IDLE_HOOK_DEBUG a proper option in Kconfig.debug.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
e016c38d18
commit
c68644d330
@ -37,6 +37,15 @@ config DEBUG_STACK_USAGE
|
||||
|
||||
This option will slow down process creation somewhat.
|
||||
|
||||
config CONFIG_SMTC_IDLE_HOOK_DEBUG
|
||||
bool "Enable additional debug checks before going into CPU idle loop"
|
||||
depends on DEBUG_KERNEL && MIPS_MT_SMTC
|
||||
help
|
||||
This option enables Enable additional debug checks before going into
|
||||
CPU idle loop. For details on these checks, see
|
||||
arch/mips/kernel/smtc.c. This debugging option result in significant
|
||||
overhead so should be disabled in production kernels.
|
||||
|
||||
config KGDB
|
||||
bool "Remote GDB kernel debugging"
|
||||
depends on DEBUG_KERNEL && SYS_SUPPORTS_KGDB
|
||||
|
@ -51,11 +51,11 @@ ATTRIB_NORET void cpu_idle(void)
|
||||
/* endless idle loop with no priority at all */
|
||||
while (1) {
|
||||
while (!need_resched()) {
|
||||
#ifdef CONFIG_MIPS_MT_SMTC
|
||||
#ifdef CONFIG_SMTC_IDLE_HOOK_DEBUG
|
||||
extern void smtc_idle_loop_hook(void);
|
||||
|
||||
smtc_idle_loop_hook();
|
||||
#endif /* CONFIG_MIPS_MT_SMTC */
|
||||
#endif
|
||||
if (cpu_wait)
|
||||
(*cpu_wait)();
|
||||
}
|
||||
|
@ -141,10 +141,7 @@ __setup("ipibufs=", ipibufs);
|
||||
__setup("nostlb", stlb_disable);
|
||||
__setup("asidmask=", asidmask_set);
|
||||
|
||||
/* Enable additional debug checks before going into CPU idle loop */
|
||||
#define SMTC_IDLE_HOOK_DEBUG
|
||||
|
||||
#ifdef SMTC_IDLE_HOOK_DEBUG
|
||||
#ifdef CONFIG_SMTC_IDLE_HOOK_DEBUG
|
||||
|
||||
static int hang_trig = 0;
|
||||
|
||||
@ -176,7 +173,7 @@ int tcnoprog[NR_CPUS];
|
||||
static atomic_t idle_hook_initialized = {0};
|
||||
static int clock_hang_reported[NR_CPUS];
|
||||
|
||||
#endif /* SMTC_IDLE_HOOK_DEBUG */
|
||||
#endif /* CONFIG_SMTC_IDLE_HOOK_DEBUG */
|
||||
|
||||
/* Initialize shared TLB - the should probably migrate to smtc_setup_cpus() */
|
||||
|
||||
@ -394,10 +391,10 @@ void mipsmt_prepare_cpus(void)
|
||||
printk("ASID mask value override to 0x%x\n", asidmask);
|
||||
|
||||
/* Temporary */
|
||||
#ifdef SMTC_IDLE_HOOK_DEBUG
|
||||
#ifdef CONFIG_SMTC_IDLE_HOOK_DEBUG
|
||||
if (hang_trig)
|
||||
printk("Logic Analyser Trigger on suspected TC hang\n");
|
||||
#endif /* SMTC_IDLE_HOOK_DEBUG */
|
||||
#endif /* CONFIG_SMTC_IDLE_HOOK_DEBUG */
|
||||
|
||||
/* Put MVPE's into 'configuration state' */
|
||||
write_c0_mvpcontrol( read_c0_mvpcontrol() | MVPCONTROL_VPC );
|
||||
@ -817,9 +814,9 @@ void ipi_decode(struct smtc_ipi *pipi)
|
||||
case SMTC_CLOCK_TICK:
|
||||
/* Invoke Clock "Interrupt" */
|
||||
ipi_timer_latch[dest_copy] = 0;
|
||||
#ifdef SMTC_IDLE_HOOK_DEBUG
|
||||
#ifdef CONFIG_SMTC_IDLE_HOOK_DEBUG
|
||||
clock_hang_reported[dest_copy] = 0;
|
||||
#endif /* SMTC_IDLE_HOOK_DEBUG */
|
||||
#endif /* CONFIG_SMTC_IDLE_HOOK_DEBUG */
|
||||
local_timer_interrupt(0, NULL);
|
||||
break;
|
||||
case LINUX_SMP_IPI:
|
||||
@ -1020,7 +1017,7 @@ EXPORT_SYMBOL(smtc_ipi_replay);
|
||||
|
||||
void smtc_idle_loop_hook(void)
|
||||
{
|
||||
#ifdef SMTC_IDLE_HOOK_DEBUG
|
||||
#ifdef CONFIG_SMTC_IDLE_HOOK_DEBUG
|
||||
int im;
|
||||
int flags;
|
||||
int mtflags;
|
||||
@ -1113,7 +1110,7 @@ void smtc_idle_loop_hook(void)
|
||||
local_irq_restore(flags);
|
||||
if (pdb_msg != &id_ho_db_msg[0])
|
||||
printk("CPU%d: %s", smp_processor_id(), id_ho_db_msg);
|
||||
#endif /* SMTC_IDLE_HOOK_DEBUG */
|
||||
#endif /* CONFIG_SMTC_IDLE_HOOK_DEBUG */
|
||||
|
||||
/*
|
||||
* Replay any accumulated deferred IPIs. If "Instant Replay"
|
||||
|
Loading…
Reference in New Issue
Block a user