On Friday, April 20, 2018 at 12:07:58 PM UTC+5:30, J. Kiszka wrote:
> On 2018-04-20 07:01, [email protected] wrote:
> > On Thursday, April 19, 2018 at 8:17:18 PM UTC+5:30, J. Kiszka wrote:
> >> On 2018-04-19 09:51, [email protected] wrote:
> >>> Hi,
> >>>
> >>>   I am trying some experiments in Shared memory, 
> >>> CASE 1:
> >>> I have shared some common memory region between root and non-root cell. 
> >>> using this mem-region i am able to communicate between root and non-root 
> >>> cell(if i write data from root cell to that mem-region i am able to read 
> >>> the same data in non-root cell). I have added shared memory in the root 
> >>> cell at the end-of mem-region(last-index of mem-region).
> >>>
> >>> CASE 2:
> >>>  But when i add this shared mem-region in the middle of root cell 
> >>> mem-region, i am not able to communicate between root and non-root 
> >>> cell(read and write is not happening from root-cell to non-root cell). 
> >>>
> >>> Can someone please explain me why CASE 2 is not working, is that 
> >>> mandatory to add shared memory config at the end-of mem-region(last 
> >>> index)?  
> >>>
> >>> * I am not linked any PCI device to shared mem-region in both the cases.
> >>>
> >>> * For reading and writing from shared mem-region we are using our 
> >>> application.
> >>>
> > Thanks for the replay Jan,
> > 
> >> It's hard to give you any good suggestion without seeing the configs in
> >> question. 
> > I am attaching both root and non-root cell configs can you please take look 
> > at it once.
> > 
> >> Maybe you didn't split up that larger mem region properly into
> >> two regions, 
> > 
> >  My inmate starting address is: 0x404000000, and my inmate high RAM starts 
> > from 0x404300000, I am adding below region into both root and non-root 
> > cell(non-root cell i added JAILHOUSE_MEM_ROOTSHARED flag). 
> > 
> >     /* MemRegion: 404100000 : IVSHMEM :JH-added */
> >                 {
> >                         .phys_start = 0x404100000,
> >                         .virt_start = 0x404100000,
> >                         .size = 0x100000,
> >                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
> >                 },
> > 
> > 
> >> maybe the reference from the ivshmem device to the share
> >> memory region by index is not longer correct, 
> > 
> > i am not linking PCI config to mem-region, index is only matter when we 
> > link PCI and mem-region is that correct?
> 
> Your configs do not contain any shared memory device.
I agreed my config do not contain any shared memory device but my config 
contain 
shared memory region. The below region i am sharing both root and non-root 
cell, but i am not linking any PCI device to these region.

            /* MemRegion: 404100000 : IVSHMEM :JH-added */
                {
                        .phys_start = 0x404100000,
                        .virt_start = 0x404100000,
                        .size = 0x100000,
                        .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
                },


> Look at
> configs/[x86/]qemu-x86.c and .../linux-x86-demo.c to see what is
> missing. 
As you suggested i comapred my configs and above mentioned configs(qemu-x86.c 
and linux-x86-demo.c), In this configs they are using PCI device to link 
between root and non-root cell.
                 { /* IVSHMEM (networking) */
                        .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
                        .domain = 0x0000,
                        .bdf = 0x0e << 3,
                        .bar_mask = {
                                0xffffff00, 0xffffffff, 0x00000000,
                                0x00000000, 0xffffffe0, 0xffffffff,
                        },
                        .num_msix_vectors = 1,
                        .shmem_region = 14,
                        .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
                },

 But i don't want to add above PCI configuration to my configs,  Without adding 
this configuration to my config i can communicate between root and non-root 
cell, but only problem is i need to add my shared-region at the end of my 
config(in mem-region). is that mandatory to add the shared-region at the end-of 
my config(mem-region)?


Moyin


> There is also a tutorial at ELC-E 2016 where I addressed the
> topic (slides and video [1]). It just misses one addtional important
> point: .iommu has to be set as well on real machines, in your case
> likely to 1.
> 
> Jan
> 
> [1] https://elinux.org/ELC_Europe_2016_Presentations
> 
> -- 
> Siemens AG, Corporate Technology, CT RDA IOT SES-DE
> Corporate Competence Center Embedded Linux

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to