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