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.

Reply via email to