Fwd: l4shmnet and its structure
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Tue Jun 17 23:21:32 CEST 2014
On Mon Jun 16, 2014 at 20:49:12 +0200, cem akpolat wrote:
> "So I understand that you configured one L4Linux with two l4shmnet
> network interfaces and one of those two did not work? Hard to tell for
> me what's wrong without more info."
>
> I added printf lines to shmc.c file and the output I get the following
> output while a connection is created btw. the server and the first client.
>
> //*************************************//
> client1 | l4shmc_create : starting
> client1 | l4shmc_create : l4re_ns_register_obj_srv returned error
> client1 | l4shmc_attach_to : starting
> client1 | l4shmc_attach_to : no problem, returning L4_OK
> client1 | l4shmc_add_chunk : starting
> client1 | l4shmc_add_chunk : executing chunk_get
> client1 | l4shmc_add_chunk : in the else side due to offs
> client1 | l4shmc_add_chunk : returning L4_OK
> client1 | l4shmc_add_signal : starting
> client1 | l4shmc_add_signal : returning L4_EOK
> client1 | l4shmc_get_chunk_to :starting
> server | l4shmc_get_chunk_to :starting
>
> net shm0: shm0: L4ShmNet established, with 54:42:00:00:ff:01, IRQ 66
> client1 net shm0: shm0: L4ShmNet established, with 54:42:00:00:ff:02, IRQ
> 65
>
>
> And the following output between the server and the second client:
>
> //*************************************//
> client2 | l4shmc_create : starting
> client2 | l4shmc_create : l4re_ns_register_obj_srv returned error
> client2 | l4shmc_attach_to : starting
> client2 | l4shmc_attach_to : no problem, returning L4_OK
> client2 | l4shmc_add_chunk : starting
> client2 | l4shmc_add_chunk : executing chunk_get
> client2 | l4shmc_add_chunk : in the else side due to offs
> client2 | l4shmc_add_chunk : returning L4_OK
> client2 | l4shmc_add_signal : starting
> client2 | l4shmc_add_signal : returning L4_EOK
> client2 | l4shmc_get_chunk_to :starting
> server | l4shmc_get_chunk_to :starting
> net shm1: shm1: L4ShmNet established, with 54:42:00:00:ff:04, IRQ 67
> //*************************************//
>
> As you can see, the second client does not respond after the connection
> established message from the server. I have two questions regarding this
> problem:
>
> 1) Is the message "l4re_ns_register_obj_srv returned error" the source of
> the problem? If so, then what might be the reason for this error? And also,
> why does the connection work properly between the first server and the
> client if that is the source of the problem?
The source tells me that EEXISTS is ok as a return code. Is it this one?
> 2) Could it be the case that the second client obtains the same IRQ number
> with the first client(IRQ 65) or the server (IRQ66 or 67), and therefore
> the trigger signal is not received by the second client?
No. Those interrupts are virtual ones that are local to the Linux, thus
IRQ65 is a different one in each Linux.
> How can I detect
> this problem? Which function is responsible for the IRQ numbering?
The IRQ number allocation for virtual IRQs is in arch/l4/kernel/irq.c.
Does client2+shm1 work if you do not configure client1+shm0?
Adam
--
Adam adam at os.inf.tu-dresden.de
Lackorzynski http://os.inf.tu-dresden.de/~adam/
More information about the l4-hackers
mailing list