Fwd: l4shmnet and its structure

cem akpolat akpolatcem at gmail.com
Thu Jun 19 17:59:42 CEST 2014


Dear Adam,

First of all, thanks again for the response. The problem is now solved. I
tried to use a .lua file in which functions such as setConsole, setRamdisk,
etc. were defined, that was a lua file that I have found while googling.
This method led to a page fault error while creating a ttyLv0 console for
the second client. I removed the function and used "console=ttyLv0"
instead. I also defined the second shm device driver as shm1 for the server
side, but as shm0 for the second client. Now it works fine. I still wonder
why I got this page fault error, though.

However, there exists another problem that I want to ask you about. Do we
actually need a server while using l4shmnet?

My final question, does fiasco has more than one console screen, for
instance for each l4linux can we use a separate log screen?

Thanks for all,
Cem


Cem Akpolat


On Tue, Jun 17, 2014 at 11:21 PM, Adam Lackorzynski <
adam at os.inf.tu-dresden.de> wrote:

> 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/
>
> _______________________________________________
> l4-hackers mailing list
> l4-hackers at os.inf.tu-dresden.de
> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20140619/9274c351/attachment.htm>


More information about the l4-hackers mailing list