EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Tests on RTEMS-pc686-qemu
From: "Johnson, Andrew N. via Core-talk" <core-talk at aps.anl.gov>
To: EPICS core-talk <core-talk at aps.anl.gov>
Date: Mon, 7 Jun 2021 01:57:41 +0000
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.


Replies:
Re: Tests on RTEMS-pc686-qemu Heinz Junkes via Core-talk

Navigate by Date:
Prev: Build failed in Jenkins: EPICS-3.14 #1056 Jenkins EPICS PSI via Core-talk
Next: Re: Tests on RTEMS-pc686-qemu Heinz Junkes via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
Navigate by Thread:
Prev: Build failed in Jenkins: EPICS-3.14 #1056 Jenkins EPICS PSI via Core-talk
Next: Re: Tests on RTEMS-pc686-qemu Heinz Junkes via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
ANJ, 07 Jun 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·