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