I also tried rtl8139 and other qemu network options, but couldn't get rid of the DHCP delay.
libbsd has a README.md[1] where they use -net nic,model=cadence_gem, so presumably the RTEMS team tests with that nic, but even that I couldn't get to work. It makes me think there's some other issue at play here besides just selecting different nics.
1. https://git.rtems.org/rtems-libbsd/tree/README.md
________________________________________
From: Core-talk <core-talk-bounces at aps.anl.gov> on behalf of Johnson, Andrew N. via Core-talk <core-talk at aps.anl.gov>
Sent: Monday, June 7, 2021 10:52
To: Heinz Junkes
Cc: EPICS core-talk
Subject: Re: Tests on RTEMS-pc686-qemu
Good idea Hienz, it behaved slightly differently again, but unfortunately didn’t work either:
tux% time perl epicsTypesTest.t
(process:2816): GLib-WARNING **: 10:30:47.121: gmem.c:489: custom memory allocation vtable not supported
i386: isr=0 irr=1
i386: isr=0 irr=1
initConsole --- Info ---
stdin: fileno: 0, ttyname: /dev/console
stdout: fileno: 1, ttyname: /dev/console
stderr: fileno: 2, ttyname: /dev/console
time set to : 04/14/14 07:30:06.000169266 UTC
Startup.
epicsThreadSetPriority called by non epics thread
***** RTEMS Version: rtems-5.0.0 (Intel i386/Pentium/pc686) *****
***** Initializing network (libbsd, dhcpcd) *****
***** ifconfig lo0 *****
***** add dhcpcd hook *****
***** Start default network dhcpcd *****
--Info (hpj)-- bsd task prio IRQS: 96 -----
--Info (hpj)-- bsd task prio TIME: 98 -----
---- Waiting for DHCP ...
***** Primary Network interface : re0 *****
all out ---> interface = re0
all out ---> reason = PREINIT
all out ---> pid = 1
all out ---> ifmetric = 201
all out ---> ifwireless = 0
all out ---> ifflags = 4294936643
all out ---> ifmtu = 1500
all out ---> interface_order = re0
all out ---> if_up = false
all out ---> if_down = true
***** Primary Network interface : re0 *****
all out ---> interface = re0
all out ---> reason = CARRIER
all out ---> pid = 1
all out ---> ifmetric = 201
all out ---> ifwireless = 0
all out ---> ifflags = 4294936643
all out ---> ifmtu = 1500
all out ---> interface_order = re0
all out ---> if_up = false
all out ---> if_down = true
There was a pause here which I didn’t time...
***** Primary Network interface : re0 *****
all out ---> interface = re0
all out ---> reason = IPV4LL
all out ---> pid = 1
all out ---> ifmetric = 201
all out ---> ifwireless = 0
all out ---> ifflags = 4294936643
all out ---> ifmtu = 1500
all out ---> interface_order = re0
all out ---> if_up = true
all out ---> if_down = false
all out ---> new_ip_address = 169.254.217.71
all out ---> new_subnet_cidr = 16
all out ---> new_network_number = 169.254.0.0
all out ---> new_subnet_mask = 255.255.0.0
all out ---> new_broadcast_address = 169.254.255.255
#### Test stopped by epicsTypesTest.t after 500 seconds
epicsTypesTest.t: Timed out 'qemu-system-i386 ... -kernel epicsTypesTest' after 500 seconds
0.021u 0.008s 8:20.03 0.0% 0+0k 0+0io 0pf+0w
- Andrew
On Jun 7, 2021, at 2:34 AM, Heinz Junkes <junkes at fhi-berlin.mpg.de<mailto:junkes at fhi-berlin.mpg.de>> wrote:
You could use
-net nic,model=rtl8139
to try it out if this is faster …
Heinz
On 7. Jun 2021, at 03:57, Johnson, Andrew N. via Core-talk <core-talk at aps.anl.gov<mailto:core-talk at aps.anl.gov>> wrote:
We still have very slow qemu tests of the RTEMS-pc686-qemu target, there’s a 45-second startup delay while initializing the network (libbsd). I just ran some timings:
This is from a timed run of epicsTypesTest.t from the current 7.0 branch, run on RHEL-7:
tux% time perl epicsTypesTest.t
(process:16546): GLib-WARNING **: 20:28:55.351: gmem.c:489: custom memory allocation vtable not supported
i386: isr=0 irr=1
i386: isr=0 irr=1
initConsole --- Info ---
stdin: fileno: 0, ttyname: /dev/console
stdout: fileno: 1, ttyname: /dev/console
stderr: fileno: 2, ttyname: /dev/console
time set to : 04/14/14 07:30:06.000168836 UTC
Startup.
epicsThreadSetPriority called by non epics thread
***** RTEMS Version: rtems-5.0.0 (Intel i386/Pentium/pc686) *****
***** Initializing network (libbsd, dhcpcd) *****
Roughly 45 seconds of the total run-time is spent here with no output...
***** ifconfig lo0 *****
***** add dhcpcd hook *****
***** Start default network dhcpcd *****
--Info (hpj)-- bsd task prio IRQS: 96 -----
--Info (hpj)-- bsd task prio TIME: 98 -----
---- Waiting for DHCP ...
***** Primary Network interface : em0 *****
all out ---> interface = em0
all out ---> reason = PREINIT
all out ---> pid = 1
all out ---> ifmetric = 201
all out ---> ifwireless = 0
all out ---> ifflags = 4294936643
all out ---> ifmtu = 1500
all out ---> interface_order = em0
all out ---> if_up = false
all out ---> if_down = true
***** Primary Network interface : em0 *****
all out ---> interface = em0
all out ---> reason = NOCARRIER
all out ---> pid = 1
all out ---> ifmetric = 201
all out ---> ifwireless = 0
all out ---> ifflags = 4294936643
all out ---> ifmtu = 1500
all out ---> interface_order = em0
all out ---> if_up = false
all out ---> if_down = true
***** Primary Network interface : em0 *****
all out ---> interface = em0
all out ---> reason = CARRIER
all out ---> pid = 1
all out ---> ifmetric = 201
all out ---> ifwireless = 0
all out ---> ifflags = 4294936643
all out ---> ifmtu = 1500
all out ---> interface_order = em0
all out ---> if_up = false
all out ---> if_down = true
***** Primary Network interface : em0 *****
all out ---> interface = em0
all out ---> reason = NOCARRIER
all out ---> pid = 1
all out ---> ifmetric = 201
all out ---> ifwireless = 0
all out ---> ifflags = 34818
all out ---> ifmtu = 1500
all out ---> interface_order = em0
all out ---> if_up = false
all out ---> if_down = true
***** Primary Network interface : em0 *****
all out ---> interface = em0
all out ---> reason = CARRIER
all out ---> pid = 1
all out ---> ifmetric = 201
all out ---> ifwireless = 0
all out ---> ifflags = 4294936643
all out ---> ifmtu = 1500
all out ---> interface_order = em0
all out ---> if_up = false
all out ---> if_down = true
***** Primary Network interface : em0 *****
all out ---> interface = em0
all out ---> reason = BOUND
Interface em0 bounded
all out ---> pid = 1
all out ---> ifmetric = 201
all out ---> ifwireless = 0
all out ---> ifflags = 4294936643
all out ---> ifmtu = 1500
all out ---> interface_order = em0
all out ---> if_up = true
all out ---> if_down = false
all out ---> new_ip_address = 10.0.2.15
all out ---> new_subnet_cidr = 24
all out ---> new_broadcast_address = 10.0.2.255
all out ---> new_network_number = 10.0.2.0
all out ---> new_subnet_mask = 255.255.255.0
all out ---> new_dhcp_lease_time = 86400
all out ---> new_dhcp_message_type = 5
all out ---> new_dhcp_server_identifier = 10.0.2.2
-------------- IFCONFIG -----------------
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=81209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWFILTER>
ether 52:54:00:12:34:56
inet6 fe80::5054:ff:fe12:3456%em0 prefixlen 64 scopeid 0x1
inet 10.0.2.15 netmask 0xffffff00 broadcast 10.0.2.255
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet 127.0.0.1 netmask 0xffffff00
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
groups: lo
-------------- NETSTAT ------------------
Routing tables
Internet:
Destination Gateway Flags Netif Expire
10.0.2.0/24 link#1 U em0
10.0.2.15 link#1 UHS lo0
127.0.0.1 link#2 UH lo0
Internet6:
Destination Gateway Flags Netif Expire
::1 link#2 UH lo0
fe80::%em0/64 link#1 U em0
fe80::5054:ff:fe12:3456%em0 link#1 UHS lo0
fe80::%lo0/64 link#2 U lo0
fe80::1%lo0 link#2 UHS lo0
***** Until now no NTP support in RTEMS 5 with rtems-libbsd *****
***** Ask ntp server once... *****
epicsNtpGetTime: Network is unreachable
***** Can't get time from ntp ...
***** Setting up file system *****
***** Using compiled in file data *****
-> /iocshTestBadArgIndirect.cmd - ok
-> /iocshTestBadArg.cmd - ok
-> /iocshTestSuccessIndirect.cmd - ok
-> /iocshTestSuccess.cmd - ok
***** Initializing NFS *****
check for time registered , C++ initialization ...
***** Preparing EPICS application *****
chdir("/")
***** Starting EPICS application *****
1..10
ok 1 - sizeof(epicsInt8) == 1
ok 2 - sizeof(epicsUInt8) == 1
ok 3 - sizeof(epicsInt16) == 2
ok 4 - sizeof(epicsUInt16) == 2
ok 5 - sizeof(epicsInt32) == 4
ok 6 - sizeof(epicsUInt32) == 4
ok 7 - sizeof(epicsInt64) == 8
ok 8 - sizeof(epicsUInt64) == 8
ok 9 - sizeof(epicsFloat32) == 4
ok 10 - sizeof(epicsFloat64) == 8
Results
=======
Tests: 10
Passed: 10 = 100.00%
***** IOC application terminating *****
*** FATAL ***
fatal source: 5 (RTEMS_FATAL_SOURCE_EXIT)
fatal code: 0 (0x00000000)
RTEMS version: 5.0.0.ebc3abe40309f47f3d024c6f2636d9682863a9e6-modified
RTEMS tools: 7.5.0 20191114 (RTEMS 5, RSB 5 (ebc3abe40309), Newlib 7947581)
executing thread ID: 0x08b010001
executing thread name:
3.375u 0.533s 0:56.18 6.9%
0+0k 0+0io 0pf+0w
If I delete the qemu-system-i386 argument -net nic,model=e1000 and run it again it initializes the network almost instantaneously with the other NIC, but then it hangs waiting for a DHCP response (I gave up on it after 5 minutes):
tux% time perl epicsTypesTest.t
(process:17732): GLib-WARNING **: 20:39:53.515: gmem.c:489: custom memory allocation vtable not supported
i386: isr=0 irr=1
i386: isr=0 irr=1
initConsole --- Info ---
stdin: fileno: 0, ttyname: /dev/console
stdout: fileno: 1, ttyname: /dev/console
stderr: fileno: 2, ttyname: /dev/console
time set to : 04/14/14 07:30:06.000172872 UTC
Startup.
epicsThreadSetPriority called by non epics thread
***** RTEMS Version: rtems-5.0.0 (Intel i386/Pentium/pc686) *****
***** Initializing network (libbsd, dhcpcd) *****
***** ifconfig lo0 *****
***** add dhcpcd hook *****
***** Start default network dhcpcd *****
--Info (hpj)-- bsd task prio IRQS: 96 -----
--Info (hpj)-- bsd task prio TIME: 98 -----
---- Waiting for DHCP ...
qemu: terminating on signal 2
0.019u 0.008s 5:09.20 0.0%
0+0k 0+0io 0pf+0w
I haven’t tried this with the RTEMS image built for legacy networking instead of libbsd, that might be worth trying if someone has a copy available.
- Andrew
--
Complexity comes for free, simplicity you have to work for.
--
Complexity comes for free, simplicity you have to work for.
- References:
- Tests on RTEMS-pc686-qemu Johnson, Andrew N. via Core-talk
- Re: Tests on RTEMS-pc686-qemu Heinz Junkes via Core-talk
- Re: Tests on RTEMS-pc686-qemu Johnson, Andrew N. via Core-talk
- Navigate by Date:
- Prev:
Re: Deadlock on VxWorks 6.7 Zimoch Dirk (PSI) via Core-talk
- Next:
Re: Deadlock on VxWorks 6.7 Zimoch Dirk (PSI) via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
<2021>
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Tests on RTEMS-pc686-qemu Johnson, Andrew N. via Core-talk
- Next:
Bug in vxWorks implementation and/or usage of epicsAtomicCmpAndSwapIntT Zimoch Dirk (PSI) via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
<2021>
2022
2023
2024
|