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