mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:37:37 +00:00
Kernel: Split SCHEDULER_DEBUG into a new SCHEDULER_RUNNABLE_DEBUG
And use dbgprintf() consistently on a few of the pieces of logging here. This is useful when trying to track thread switching when you don't really care about what it's switching _to_.
This commit is contained in:
parent
a648331e26
commit
4f94fbc9e1
2 changed files with 4 additions and 3 deletions
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
//#define LOG_EVERY_CONTEXT_SWITCH
|
//#define LOG_EVERY_CONTEXT_SWITCH
|
||||||
//#define SCHEDULER_DEBUG
|
//#define SCHEDULER_DEBUG
|
||||||
|
//#define SCHEDULER_RUNNABLE_DEBUG
|
||||||
|
|
||||||
static u32 time_slice_for(Process::Priority priority)
|
static u32 time_slice_for(Process::Priority priority)
|
||||||
{
|
{
|
||||||
|
@ -233,7 +234,7 @@ bool Scheduler::pick_next()
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
#ifdef SCHEDULER_DEBUG
|
#ifdef SCHEDULER_RUNNABLE_DEBUG
|
||||||
dbgprintf("Non-runnables:\n");
|
dbgprintf("Non-runnables:\n");
|
||||||
for (auto* thread = g_nonrunnable_threads->head(); thread; thread = thread->next()) {
|
for (auto* thread = g_nonrunnable_threads->head(); thread; thread = thread->next()) {
|
||||||
auto* process = &thread->process();
|
auto* process = &thread->process();
|
||||||
|
@ -258,7 +259,7 @@ bool Scheduler::pick_next()
|
||||||
|
|
||||||
if (!thread->process().is_being_inspected() && (thread->state() == Thread::Runnable || thread->state() == Thread::Running)) {
|
if (!thread->process().is_being_inspected() && (thread->state() == Thread::Runnable || thread->state() == Thread::Running)) {
|
||||||
#ifdef SCHEDULER_DEBUG
|
#ifdef SCHEDULER_DEBUG
|
||||||
kprintf("switch to %s(%u:%u) @ %w:%x\n", thread->process().name().characters(), thread->process().pid(), thread->tid(), thread->tss().cs, thread->tss().eip);
|
dbgprintf("switch to %s(%u:%u) @ %w:%x\n", thread->process().name().characters(), thread->process().pid(), thread->tid(), thread->tss().cs, thread->tss().eip);
|
||||||
#endif
|
#endif
|
||||||
return context_switch(*thread);
|
return context_switch(*thread);
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,7 @@ void Thread::block(Thread::State new_state)
|
||||||
{
|
{
|
||||||
bool did_unlock = process().big_lock().unlock_if_locked();
|
bool did_unlock = process().big_lock().unlock_if_locked();
|
||||||
if (state() != Thread::Running) {
|
if (state() != Thread::Running) {
|
||||||
kprintf("Thread::block: %s(%u) block(%u/%s) with state=%u/%s\n", process().name().characters(), process().pid(), new_state, to_string(new_state), state(), to_string(state()));
|
dbgprintf("Thread::block: %s(%u) block(%u/%s) with state=%u/%s\n", process().name().characters(), process().pid(), new_state, to_string(new_state), state(), to_string(state()));
|
||||||
}
|
}
|
||||||
ASSERT(state() == Thread::Running);
|
ASSERT(state() == Thread::Running);
|
||||||
m_was_interrupted_while_blocked = false;
|
m_was_interrupted_while_blocked = false;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue