On 03.08.21 09:53, Chen, Hongzhan wrote:
> 
> 
>> -----Original Message-----
>> From: Jan Kiszka <jan.kis...@siemens.com> 
>> Sent: Tuesday, August 3, 2021 3:40 PM
>> To: Chen, Hongzhan <hongzhan.c...@intel.com>; xenomai@xenomai.org
>> Subject: Re: about RTnet* smokey test skipped issue on Qemu
>>
>> On 03.08.21 08:46, Chen, Hongzhan wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Jan Kiszka <jan.kis...@siemens.com> 
>>>> Sent: Tuesday, August 3, 2021 12:59 PM
>>>> To: Chen, Hongzhan <hongzhan.c...@intel.com>; xenomai@xenomai.org
>>>> Subject: Re: about RTnet* smokey test skipped issue on Qemu
>>>>
>>>> On 03.08.21 06:31, Chen, Hongzhan wrote:
>>>>> Firstly, I found that all smokey tests including RTnet* pass on bare
>>>>> metal x86 platform
>>>>> but three RTnet* related test items  are skipped on Qemu.  After further
>>>>> debug, actually there is
>>>>> no supported rtnet device found on Qemu with current network setting
>>>>> when xenomai image
>>>>> is running over even we already enable all supported rtnet devices on
>>>>> xenomai so that
>>>>> the test is skipped on qemu.
>>>>>
>>>>> After I replace virtio-net-pci with e1000 device like [1] patch ,
>>>>> rt_e1000 and rtnet modules
>>>>> would be automatically loaded by udevd so that rtnet* test item can go
>>>>> on without test skipped issue.
>>>>
>>>> By default, we are only doing loopback tests in smokey, nothing that
>>>> requires a real NIC driver to be loaded. These are the modules loaded
>>>> during a test with udp:
>>>>
>>>> Module                  Size  Used by
>>>> rtudp                  24576  0
>>>> rtipv4                 49152  1 rtudp
>>>> rt_loopback            16384  1
>>>> rtnet                  81920  3 rtipv4,rtudp,rt_loopback
>>>>
>>>> You can set the rtnet_driver and rtnet_interface parameters to switch to
>>>> real NICs, but that is not happening during a default xeno-test run.
>>>
>  > The problem is that rtnet module is not loaded individually by current 
> system but because
>> RT NIC device driver module depend on it and then rtnet module will be 
>> loaded when specific
>> RT NIC device driver module is modprobed after triggered by udev service. 
>> That means
>> We have to add and modify something to explicitly load rtnet module by 
>> default when system bootup 
>> if we do not want to depends on real NIC in our case. For example we may add 
>> corresponding *.conf  
>> like [3] to make  rtnet load automatically when system bootup in our case?
>>
>>
>> RTnet and udp/rtpacket/loopback etc. modules are loaded by the test
>> cases. See testsuite/smokey/net_common/setup.c.
> 
> Actually ,rtnet should be loaded before smokey_net_setup run or else  err = 
> cobalt_corectl(_CC_COBALT_GET_NET_CONFIG,
>                         &net_config, sizeof(net_config)); would return 
> -EINVAL directly in smokey_net_setup and there is no chance to go ahead 
> because no cobalt_add_config_chain was called at that time if rtnet module 
> was not loaded but it is only called by rtnet_corectl_register per my 
> understanding.

OK, now I understand (and was able reproduce).

Two options to solve that:

 - add loading of the rtnet module to setup.c
 - make the rtnet core a built-in

I'm leaning towards the first option.

Jan

-- 
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux

Reply via email to