On Sunday, April 29, 2018 at 12:47:34 PM UTC+5:30, Jan Kiszka wrote: > On 2018-04-28 15:24, [email protected] wrote: > > On Friday, April 27, 2018 at 10:58:08 PM UTC+5:30, J. Kiszka wrote: > >> On 2018-04-27 14:26, [email protected] wrote: > >>> On Thursday, April 26, 2018 at 10:07:45 PM UTC+5:30, J. Kiszka wrote: > >>>> On 2018-04-26 16:16, [email protected] wrote: > >>>>> On Monday, April 23, 2018 at 6:43:54 AM UTC-4, J. Kiszka wrote: > >>>>>> On 2018-04-23 11:45, [email protected] wrote: > >>>>>>> On Friday, April 20, 2018 at 10:51:01 AM UTC-4, [email protected] > >>>>>>> wrote: > >>>>>>>> Hi all, > >>>>>>>> > >>>>>>>> I am trying to bring virtual network interface in non-root cell and > >>>>>>>> also i am trying to understand how virtual network will initialize > >>>>>>>> while loading non-root cell, i am putting some print statements in > >>>>>>>> ivshmem-net.c file i.e present in kernel > >>>>>>>> source[drivers/net/ivshmem-net.c]. > >>>>>>>> > >>>>>>>> In ivshm_net_state_change function we have couple of cases like > >>>>>>>> IVSHM_NET_STATE_RESET, IVSHM_NET_STATE_INIT, IVSHM_NET_STATE_READY > >>>>>>>> etc.. i added some of print statements in this cases, i am able to > >>>>>>>> see logs from case IVSHM_NET_STATE_RESET after that i am not able to > >>>>>>>> see any logs from other cases. > >>>>>>>> > >>>>>>>> Assumption: > >>>>>>>> From the above behavior i assume my ivshmem-net is not brought up > >>>>>>>> properly, because i am not able to see the logs from > >>>>>>>> IVSHM_NET_STATE_INIT, IVSHM_NET_STATE_READY cases. > >>>>>>>> > >>>>>>>> Can anyone please tell me my assumption is correct or not? > >>>>>>>> I am attaching my ivshmem-net.c file[added with logs], and also my > >>>>>>>> non-root cell logs[search RH in non-root cell logs, that line is > >>>>>>>> from ivshmem-net.c] > >>>>>>>> > >>>>>>>> I am adding below configuration to both root and non-root cell. the > >>>>>>>> non-root cell have JAILHOUSE_MEM_ROOTSHARED flag. shmem_region has > >>>>>>>> changed based on the index value in non-root cell. > >>>>>>>> > >>>>>>>> { > >>>>>>>> .type = JAILHOUSE_PCI_TYPE_IVSHMEM, > >>>>>>>> .iommu = 1, > >>>>>>>> .domain = 0x0, > >>>>>>>> .bdf = 0x0e << 3, > >>>>>>>> .bar_mask = { > >>>>>>>> 0xffffff00, 0xffffffff, 0x00000000, > >>>>>>>> 0x00000000, 0xffffffe0, 0xffffffff, > >>>>>>>> }, > >>>>>>>> .num_msix_vectors = 1, > >>>>>>>> .shmem_region = 75, > >>>>>>>> .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH, > >>>>>>>> }, > >>>>>>>> > >>>>>>>> /* MemRegion: 3f200000 : IVSHMEM-net*/ > >>>>>>>> { > >>>>>>>> .phys_start = 0x3f200000, > >>>>>>>> .virt_start = 0x3f200000, > >>>>>>>> .size = 0x100000, > >>>>>>>> .flags = JAILHOUSE_MEM_READ | > >>>>>>>> JAILHOUSE_MEM_WRITE, > >>>>>>>> }, > >>>>>>>> > >>>>>>>> After loading non-root cell i am able to see the virtual network > >>>>>>>> interfaces is coming up by issuing command like ifconfig -a, and i > >>>>>>>> can pci device is also added. I can see interrupt is registered with > >>>>>>>> ivshmem-net. > >>>>>>>> > >>>>>>>> But i am not able to do any operation using these virtual network > >>>>>>>> interface[ if i try to ping any other network or root-cell network, > >>>>>>>> i am not able to ping, i am not seeing any changes in the interrupt > >>>>>>>> number]. > >>>>>>>> > >>>>>>>> I have another question regarding interrupts, how can i know > >>>>>>>> interrupt is working or not? whether i need to trigger the interrupt > >>>>>>>> externally?-> if it is yes means how can i trigger the interrupts > >>>>>>>> > >>>>>>>> Thanks > >>>>>>>> Prajwal > >>>>>>> > >>>>>>> Hi Henning, > >>>>>>> I also observed state set to IVSHM_NET_STATE_RESET and its not > >>>>>>> changed to IVSHM_NET_STATE_INIT. so I don't think that driver is not > >>>>>>> initialized properly.Is there any dependency on non rootcell config > >>>>>>> to change the state? If yes, which config parameter has dependency > >>>>>>> on this. > >>>>>> > >>>>>> Do you see interrupts related to the device on both sides? This state > >>>>>> changes is achieved on the pre-existing peer side after announcing the > >>>>>> new one via an interrupt. > >>>>>> > >>>>>> Jan > >>>>>> -- > >>>>>> Siemens AG, Corporate Technology, CT RDA IOT SES-DE > >>>>>> Corporate Competence Center Embedded Linux > >>>>> > >>>>> Hi jan and Henning, > >>>>> > >>>>> Now i am trying to bring virtual network in qemu. once it is working i > >>>>> can go back to my original machine. > >>>>> > >>>>> Based on qemu-x86.c config, i generated my root-cell config by giving > >>>>> below command > >>>>> > >>>>> #jailhouse config create --mem-inmates 74M --mem-hv 6M root.c > >>>>> > >>>>> After generating root cell i added shared memory region and PCI device > >>>>> by refering qemu-x86.c config. > >>>>> These are the below things i added from qemu-x86.c config to my > >>>>> root-cell config. > >>>>> > >>>>> /* IVSHMEM shared memory region -JH (demo) dis ind at > >>>>> 25*/ > >>>>> { > >>>>> .phys_start = 0x3f100000, > >>>>> .virt_start = 0x3f100000, > >>>>> .size = 0xff000, > >>>>> .flags = JAILHOUSE_MEM_READ | > >>>>> JAILHOUSE_MEM_WRITE | > >>>>> JAILHOUSE_MEM_ROOTSHARED, > >>>>> }, > >>>>> > >>>>> /* IVSHMEM shared memory region - JH dis idx at 26*/ > >>>>> { > >>>>> .phys_start = 0x3f1ff000, > >>>>> .virt_start = 0x3f1ff000, > >>>>> .size = 0x1000, > >>>>> .flags = JAILHOUSE_MEM_READ | > >>>>> JAILHOUSE_MEM_WRITE, > >>>>> }, > >>>>> > >>>>> /* 00:0f.0 - JH*/ > >>>>> { > >>>>> .type = JAILHOUSE_PCI_TYPE_IVSHMEM, > >>>>> .iommu = 1, > >>>> > >>>> In the QEMU setup, there is only one IOMMU unit, so this becomes 0 again. > >>> > >>> Thanks for the correction, I changed .iommu = 0, but still the state > >>> remains same. i am not able to receive interrupts and i am not able to do > >>> any operation using ivshmem-net interface. > >>> > >>> Can you please check the above thread (previous post)and point me out if > >>> their is anything wrong in that configuration? > >> > >> For the QEMU/KVM setup, there is a reference configuration and even a > >> reference image available (jailhouse-images repo). I would recommend to > >> try that first and deviate from there, rather than trying to move > >> towards it with not yet working setup. Small deltas to a known-good > >> setup are easier to find than the magic bit in larger deviation. > >> > >> Jan > >> > >> -- > >> Siemens AG, Corporate Technology, CT RDA IOT SES-DE > >> Corporate Competence Center Embedded Linux > > > > I downloaded the jailhouse-images from this git repo > > 'https://github.com/siemens/jailhouse-images', using this images i am able > > to load root cell but while loading non-root cell i am getting below crash. > > > > FATAL: Invalid PIO read, port: 3e9 size: 1 > > RIP: 0xffffffff8145296d RSP: 0xffffc9000000fdc0 FLAGS: 2 > > RAX: 0xffffffff8145295a RBX: 0xffffffff824db9e0 RCX: 0x0000000000000000 > > RDX: 0x00000000000003e9 RSI: 0x0000000000000001 RDI: 0xffffffff824db9e0 > > CS: 10 BASE: 0x0000000000000000 AR-BYTES: a09b EFER.LMA 1 > > CR0: 0x0000000080050033 CR3: 0x000000000200a000 CR4: 0x00000000000026b0 > > EFER: 0x0000000000000d01 > > Parking CPU 2 (Cell: "linux-x86-demo") > > > > For booting non-root cell, i am passing below command > > #jailhouse cell linx linux-x86-demo.cell /vmlinuz /initrd.img -c > > "consle=ttyS0,115200" > > > > > > For running pre-built images no need to change any configs because the > > configs also pre-built from repo, is that right? > > Hmm, we need to print that hint: All necessary commands are in fact > available in the shell history. > > As we are using the same kernel for booting the root cell as well as the > non-root cell (almost a distro kernel), some extra option is required: > > 8250.nr_uarts=1 > > That avoids that the non-root cell probes for uarts it does not own. > > Also provide the IP address for the ivshmem-net interface this way, you > will find it in the history. > > Jan
Hey Thanks jan, that's worked I am able ping from root-cell to non-root cell and vice-versa. suppose i want to boot the non-root cell with different kernel image how can i proceed? is their any option to copy our images to pre-built qemu machine(i want know how to copy files from host machine to qemu)? Prajwal -- 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.
