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