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.

Reply via email to