Re: Fwd: l4shmnet and its structure

Adam Lackorzynski <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
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                 [email protected]
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.