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