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 -- 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.
