Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
c68644d3
Commit
c68644d3
authored
Feb 26, 2007
by
Ralf Baechle
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[MIPS] Make SMTC_IDLE_HOOK_DEBUG a proper option in Kconfig.debug.
Signed-off-by:
Ralf Baechle
<
ralf@linux-mips.org
>
parent
e016c38d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
13 deletions
+19
-13
arch/mips/Kconfig.debug
arch/mips/Kconfig.debug
+9
-0
arch/mips/kernel/process.c
arch/mips/kernel/process.c
+2
-2
arch/mips/kernel/smtc.c
arch/mips/kernel/smtc.c
+8
-11
No files found.
arch/mips/Kconfig.debug
View file @
c68644d3
...
@@ -37,6 +37,15 @@ config DEBUG_STACK_USAGE
...
@@ -37,6 +37,15 @@ config DEBUG_STACK_USAGE
This option will slow down process creation somewhat.
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
config KGDB
bool "Remote GDB kernel debugging"
bool "Remote GDB kernel debugging"
depends on DEBUG_KERNEL && SYS_SUPPORTS_KGDB
depends on DEBUG_KERNEL && SYS_SUPPORTS_KGDB
...
...
arch/mips/kernel/process.c
View file @
c68644d3
...
@@ -51,11 +51,11 @@ ATTRIB_NORET void cpu_idle(void)
...
@@ -51,11 +51,11 @@ ATTRIB_NORET void cpu_idle(void)
/* endless idle loop with no priority at all */
/* endless idle loop with no priority at all */
while
(
1
)
{
while
(
1
)
{
while
(
!
need_resched
())
{
while
(
!
need_resched
())
{
#ifdef CONFIG_
MIPS_MT_SMTC
#ifdef CONFIG_
SMTC_IDLE_HOOK_DEBUG
extern
void
smtc_idle_loop_hook
(
void
);
extern
void
smtc_idle_loop_hook
(
void
);
smtc_idle_loop_hook
();
smtc_idle_loop_hook
();
#endif
/* CONFIG_MIPS_MT_SMTC */
#endif
if
(
cpu_wait
)
if
(
cpu_wait
)
(
*
cpu_wait
)();
(
*
cpu_wait
)();
}
}
...
...
arch/mips/kernel/smtc.c
View file @
c68644d3
...
@@ -141,10 +141,7 @@ __setup("ipibufs=", ipibufs);
...
@@ -141,10 +141,7 @@ __setup("ipibufs=", ipibufs);
__setup
(
"nostlb"
,
stlb_disable
);
__setup
(
"nostlb"
,
stlb_disable
);
__setup
(
"asidmask="
,
asidmask_set
);
__setup
(
"asidmask="
,
asidmask_set
);
/* Enable additional debug checks before going into CPU idle loop */
#ifdef CONFIG_SMTC_IDLE_HOOK_DEBUG
#define SMTC_IDLE_HOOK_DEBUG
#ifdef SMTC_IDLE_HOOK_DEBUG
static
int
hang_trig
=
0
;
static
int
hang_trig
=
0
;
...
@@ -176,7 +173,7 @@ int tcnoprog[NR_CPUS];
...
@@ -176,7 +173,7 @@ int tcnoprog[NR_CPUS];
static
atomic_t
idle_hook_initialized
=
{
0
};
static
atomic_t
idle_hook_initialized
=
{
0
};
static
int
clock_hang_reported
[
NR_CPUS
];
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() */
/* Initialize shared TLB - the should probably migrate to smtc_setup_cpus() */
...
@@ -394,10 +391,10 @@ void mipsmt_prepare_cpus(void)
...
@@ -394,10 +391,10 @@ void mipsmt_prepare_cpus(void)
printk
(
"ASID mask value override to 0x%x
\n
"
,
asidmask
);
printk
(
"ASID mask value override to 0x%x
\n
"
,
asidmask
);
/* Temporary */
/* Temporary */
#ifdef SMTC_IDLE_HOOK_DEBUG
#ifdef
CONFIG_
SMTC_IDLE_HOOK_DEBUG
if
(
hang_trig
)
if
(
hang_trig
)
printk
(
"Logic Analyser Trigger on suspected TC hang
\n
"
);
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' */
/* Put MVPE's into 'configuration state' */
write_c0_mvpcontrol
(
read_c0_mvpcontrol
()
|
MVPCONTROL_VPC
);
write_c0_mvpcontrol
(
read_c0_mvpcontrol
()
|
MVPCONTROL_VPC
);
...
@@ -817,9 +814,9 @@ void ipi_decode(struct smtc_ipi *pipi)
...
@@ -817,9 +814,9 @@ void ipi_decode(struct smtc_ipi *pipi)
case
SMTC_CLOCK_TICK
:
case
SMTC_CLOCK_TICK
:
/* Invoke Clock "Interrupt" */
/* Invoke Clock "Interrupt" */
ipi_timer_latch
[
dest_copy
]
=
0
;
ipi_timer_latch
[
dest_copy
]
=
0
;
#ifdef SMTC_IDLE_HOOK_DEBUG
#ifdef
CONFIG_
SMTC_IDLE_HOOK_DEBUG
clock_hang_reported
[
dest_copy
]
=
0
;
clock_hang_reported
[
dest_copy
]
=
0
;
#endif
/* SMTC_IDLE_HOOK_DEBUG */
#endif
/*
CONFIG_
SMTC_IDLE_HOOK_DEBUG */
local_timer_interrupt
(
0
,
NULL
);
local_timer_interrupt
(
0
,
NULL
);
break
;
break
;
case
LINUX_SMP_IPI
:
case
LINUX_SMP_IPI
:
...
@@ -1020,7 +1017,7 @@ EXPORT_SYMBOL(smtc_ipi_replay);
...
@@ -1020,7 +1017,7 @@ EXPORT_SYMBOL(smtc_ipi_replay);
void
smtc_idle_loop_hook
(
void
)
void
smtc_idle_loop_hook
(
void
)
{
{
#ifdef SMTC_IDLE_HOOK_DEBUG
#ifdef
CONFIG_
SMTC_IDLE_HOOK_DEBUG
int
im
;
int
im
;
int
flags
;
int
flags
;
int
mtflags
;
int
mtflags
;
...
@@ -1113,7 +1110,7 @@ void smtc_idle_loop_hook(void)
...
@@ -1113,7 +1110,7 @@ void smtc_idle_loop_hook(void)
local_irq_restore
(
flags
);
local_irq_restore
(
flags
);
if
(
pdb_msg
!=
&
id_ho_db_msg
[
0
])
if
(
pdb_msg
!=
&
id_ho_db_msg
[
0
])
printk
(
"CPU%d: %s"
,
smp_processor_id
(),
id_ho_db_msg
);
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"
* Replay any accumulated deferred IPIs. If "Instant Replay"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment