Hi All,
I want to know what kernel idle thread does. Does it just execute "halt" instruction or anything else? Where is code for the idle thread?
Thank you so much.
Best, Yuxin
Hi,
On Wed Sep 24, 2014 at 16:25:31 -0400, Yuxin Ren wrote:
I want to know what kernel idle thread does. Does it just execute "halt" instruction or anything else?
Mostly it is calling a halt instruction but it can also do remote work.
Where is code for the idle thread?
Please look for 'for (;;) idle_op()' in kernel_thread.cpp and app_cpu_thread.cpp.
Adam
Thank you very much. I have a further question. The idle thread creates another two threads--sigma0_thread and boot_thread (in Kernel_thread::init_workload in kernel_thread-std.cpp file ). I am curious about what their priority is and when they finish. In addition in my test, I only have a single thread doing memory map and unmap. But I find it is always preempted by another two threads. I do not know what they are. Could you give me some hints?
Thank you again. Yuxin
On Thu, Sep 25, 2014 at 5:46 PM, Adam Lackorzynski < adam@os.inf.tu-dresden.de> wrote:
Hi,
On Wed Sep 24, 2014 at 16:25:31 -0400, Yuxin Ren wrote:
I want to know what kernel idle thread does. Does it just execute "halt" instruction or anything else?
Mostly it is calling a halt instruction but it can also do remote work.
Where is code for the idle thread?
Please look for 'for (;;) idle_op()' in kernel_thread.cpp and app_cpu_thread.cpp.
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
On Fri Sep 26, 2014 at 13:52:12 -0400, Yuxin Ren wrote:
Thank you very much. I have a further question. The idle thread creates another two threads--sigma0_thread and boot_thread (in Kernel_thread::init_workload in kernel_thread-std.cpp file ). I am curious about what their priority is and when they finish.
Their priority at creation time is 1, and they never finish, as those are the sigma0 and moe threads.
In addition in my test, I only have a single thread doing memory map and unmap. But I find it is always preempted by another two threads. I do not know what they are. Could you give me some hints?
I suggest do use context switch logging to find out. Use shift-O in jdb, toggle "Context switch" to on, let the system run, enter jdb again, look at trace with shift-T. You need to have extended logging enabled in Fiasco's config.
Adam
l4-hackers@os.inf.tu-dresden.de