How can a thread map memory to itself
doebel at os.inf.tu-dresden.de
Wed Aug 20 22:15:38 CEST 2014
-----BEGIN PGP SIGNED MESSAGE-----
let us stay on the list - others might be interested in your problems
> Thank you very much, I tried what you said, But met a problem. In
> my test case, I have multiple threads within the same task, but
> running on different cores, doing capability mapping to itself.
> Each thread runs in a tight loop, which are 1,000,000 iterations.
How does this look like in code?
> The problem is after some while, the program did not make any
> progress. And this only happens when I have more than 5 threads. If
> I only have 2 or 3 threads, they work well. I have no idea how to
> debug this. Could you give me some hints?
Fiasco has a kernel debugger which you can enter by pressing <ESC> at
runtime. Pressing <h> will give you a list of commands.
Some interesting ones:
lp -> lists all present threads. It will show you thread IDs, on
which CPU they are running, what address space they belong
to and which state they are in.
t<id> -> gives you information about a specific thread with a given
debug ID (the one from the lp list). Here you will see at which
user or kernel EIP the thread is right now. This may help you
figuring out where in the code your threads get stuck.
Q -> gives you a list of all known kernel objects. Use this for instance
to find the task your program is running in.
dt<id> <addr> -> dump the address space of a given task starting at
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Icedove - http://www.enigmail.net/
-----END PGP SIGNATURE-----
More information about the l4-hackers