Hi Jaeyong,
On 01/15/2013 02:03 AM, jaeyong yoo wrote:
Hello!
Here goes an example line of jdb IPC call trace output:
ipc: 04df repl->[C:INV] DID=ffffffff L=0 [00000000]
(00000000,00000000) TO=0/0 ipc: 045f call ipc->[C:205003] DID=40d L=0 [0000000b] (00000fb0,00000003) TO=INF/INF
I have looked through the fiasco source code that generates this output and figured out that
L=0 is the label of message [00000000] is the tag of the message (00000fb0,00000003) is the first two words of the message
My questions are:
- I observe most labels are zero in the output. I think genode defines
label 0 as invalid capability, then this value looks like not correct?
Label doesn't mean the label of Genode's capability here. Given the abstraction level of the kernel's IPC trace buffer entries, "label" is a user-defined value, which is AFAIK used to distinct messages of different types. For example, you can use it to distinct pagefault, or exception messages from other IPC. Have a look here:
http://os.inf.tu-dresden.de/L4Re/doc/group__l4__msgtag__api.html#ga80cb4e4d8...
- What is the tag of the message?
It's a message descriptor that is set up by the user land code to tell the kernel how to interpret the UTCB content when an IPC syscall is triggered. The descriptor has the size of one machine word:
http://os.inf.tu-dresden.de/L4Re/doc/structl4__msgtag__t.html
Therefore, 0x0000000b in your example would tell the kernel that 11 words have to be transfered, but no mappings at all. The kernel debugger seems to interpret a part of the message tag on the basis of the chosen label, have a look at:
kernel/fiasco/src/kern/tb_entry_output.cpp:121
For non Genode-specific information about trace buffer entries, and their general structure, it's even better to ask on the l4-hackers mailing list, because the kernel maintainers are much more aware of the kernel internals, than me.
- By any chance, the second word of the message is the opcode? (Since I
would like to know the opcode in IPC, that is my wish)
Mostly yes. Whenever it is a call of a client to a server, it is the opcode, obviously that doesn't count for e.g.: replies where it is the return value.
I hope that helps. Regards Stefan
Best regards Jaeyong
Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS and more. Get SQL Server skills now (including 2012) with LearnDevNow - 200+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only - learn more at: http://p.sf.net/sfu/learnmore_122512
Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main