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: Re: Tests on RTEMS-pc686-qemu
From: "Chandler, Brendan via Core-talk" <core-talk at aps.anl.gov>
To: Heinz Junkes <junkes at fhi-berlin.mpg.de>, "Johnson, Andrew N." <anj at anl.gov>
Cc: EPICS core-talk <core-talk at aps.anl.gov>
Date: Tue, 8 Jun 2021 13:55:05 +0000
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  <20212022  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  <20212022  2023  2024 
ANJ, 08 Jun 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·