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.

Reply via email to