rtems_bsd_initialize() in POSIX_Init and qemu-system-i386

Heinz Junkes junkes at fhi-berlin.mpg.de
Thu Oct 1 19:34:56 UTC 2020


Dear Karel,
I have finally managed to apply the patch. Unfortunately it didn't lead to a change in the behaviour of qemu. The delay of about 45 seconds is still there.
Thanks anyway!
Heinz 


> On 28. Sep 2020, at 21:53, Karel Gardas <karel.gardas at centrum.cz> wrote:
> 
> 
> Could you be so kind and test attached patch? It basically reverses
> priority of PCI accessors and helps a lot my Thinkpad T400/T500 where
> BIOS accessors are slow and I/O are fast. I've been hit by the issue not
> on network, but while BSP tries to initialize its console -- it tries to
> find all the possible PCI UARTs and this hurt time-wise a lot.
> 
> Please report if this helps or not. I've not submitted the patch as all
> my other machines do not provide PCI BIOS in RTEMS friendly way and
> RTEMS is using PCI I/O accessors by default on them -- so speed access.
> 
> I've neither tested on qemu with nic so your report will be appreciated
> here.
> 
> Thanks,
> Karel
> 
> On 9/28/20 9:43 PM, junkes wrote:
>> I have a problem with rtems_bsd_initialize() in POSIX_Init() and qemu.
>> 
>> call of
>>     sc = rtems_bsd_initialize();
>>     assert(sc == RTEMS_SUCCESSFUL);
>> always takes about 45 seconds until it is finished.
>> 
>> The output of
>> 
>> nexus0: <RTEMS Nexus device>
>> pcib0 pcibus 0 on motherboard
>> pci0: <PCI bus> on pcib0
>> pci0: <bridge, HOST-PCI> at device 0.0 (no driver attached)
>> pci0: <bridge, PCI-ISA> at device 1.0 (no driver attached)
>> pci0: <mass storage, ATA> at device 1.1 (no driver attached)
>> pci0: <bridge> at device 1.3 (no driver attached)
>> pci0: <display, VGA> at device 2.0 (no driver attached)
>> em0: <Intel(R) PRO/1000 Network Connection> port 0xc000-0xc03f mem
>> 0xfebc0000-0xfebdffff irq 11 at device 3.0 on pci0
>> 
>> comes very fast, but then the system is "frozen" for about 45 seconds.
>> Then this output appears:
>> 
>> info: em0: Ethernet address: 0e:b0:ba:5e:ba:11
>> cpu0 on motherboard
>> 
>> The setting of
>>     default_network_set_self_prio(RTEMS_MAXIMUM_PRIORITY - 1U);
>> seems to have no influence. I also did not understand the setting of
>> priorities.
>> 
>> -------------------------------------------------------------------------------
>> 
>>                               CPU USAGE BY THREAD
>> ------------+----------------------------------------+---------------+---------
>> 
>>  ID         | NAME                                   | SECONDS       |
>> PERCENT
>> ------------+----------------------------------------+---------------+---------
>> 
>>  0x09010001 | IDLE                                   |     46.042360 | 
>> 98.800
>>  0x0a010001 | TIME                                   |      0.000067 |  
>> 0.000
>>  0x0a010002 | IRQS                                   |      0.000969 |  
>> 0.002
>>  0x0a010003 | swi6: task queu                        |      0.000000 |  
>> 0.000
>>  0x0a010004 | config_0                               |      0.000000 |  
>> 0.000
>>  0x0a010005 | swi5: fast task                        |      0.000000 |  
>> 0.000
>>  0x0a010006 | kqueue_ctx task                        |      0.000000 |  
>> 0.000
>>  0x0a010007 | thread taskq                           |      0.000000 |  
>> 0.000
>>  0x0a010008 | swi6: Giant tas                        |      0.000000 |  
>> 0.000
>>  0x0a010009 | swi1: netisr 0                         |      0.000000 |  
>> 0.000
>>  0x0a01000a | if_io_tqg_0                            |      0.000000 |  
>> 0.000
>>  0x0a01000b | if_config_tqg_0                        |      0.000000 |  
>> 0.000
>>  0x0a01000c | softirq_0                              |      0.000000 |  
>> 0.000
>>  0x0b010001 |                                        |      0.561695 |  
>> 1.205
>>  0x0b010003 |                                        |      0.001552 |  
>> 0.003
>> ------------+----------------------------------------+---------------+---------
>> 
>>  TIME SINCE LAST CPU USAGE RESET IN SECONDS:                        
>> 46.608912
>> -------------------------------------------------------------------------------
>> 
>> Task control block(Nr.: 1)
>> task control block at 0x006b33c0
>> task ID: 0x09010001
>> name_32: -- ELDI --
>> ID=0x09010001 name=IDLE
>> 
>> --Info (hpj)-- task Nr: 1
>>  id=151060481, name=IDLE, prio = 255
>> -----
>> Task control block(Nr.: 2)
>> task control block at 0x006ab8a0
>> task ID: 0x0a010001
>> name_32: -- EMIT --
>> ID=0x0a010001 name=TIME
>> 
>> --Info (hpj)-- task Nr: 2
>>  id=167837697, name=TIME, prio = 98
>> -----
>> Task control block(Nr.: 3)
>> task control block at 0x006abc38
>> task ID: 0x0a010002
>> name_32: -- SQRI --
>> ID=0x0a010002 name=IRQS
>> 
>> --Info (hpj)-- task Nr: 3
>>  id=167837698, name=IRQS, prio = 96
>> -----
>> Task control block(Nr.: 4)
>> task control block at 0x006abfd0
>> task ID: 0x0a010003
>> name_32: -- DSB_ --
>> ID=0x0a010003 name=_BSD
>> 
>> --Info (hpj)-- task Nr: 4
>>  id=167837699, name=swi6: task queu, prio = 100
>> -----
>> Task control block(Nr.: 5)
>> task control block at 0x006ac368
>> task ID: 0x0a010004
>> name_32: -- DSB_ --
>> ID=0x0a010004 name=_BSD
>> 
>> --Info (hpj)-- task Nr: 5
>>  id=167837700, name=config_0, prio = 100
>> -----
>> Task control block(Nr.: 6)
>> task control block at 0x006ac700
>> task ID: 0x0a010005
>> name_32: -- DSB_ --
>> ID=0x0a010005 name=_BSD
>> 
>> --Info (hpj)-- task Nr: 6
>>  id=167837701, name=swi5: fast task, prio = 100
>> -----
>> Task control block(Nr.: 7)
>> task control block at 0x006aca98
>> task ID: 0x0a010006
>> name_32: -- DSB_ --
>> ID=0x0a010006 name=_BSD
>> 
>> --Info (hpj)-- task Nr: 7
>>  id=167837702, name=kqueue_ctx task, prio = 100
>> -----
>> Task control block(Nr.: 8)
>> task control block at 0x006ace30
>> task ID: 0x0a010007
>> name_32: -- DSB_ --
>> ID=0x0a010007 name=_BSD
>> 
>> --Info (hpj)-- task Nr: 8
>>  id=167837703, name=thread taskq, prio = 100
>> -----
>> Task control block(Nr.: 9)
>> task control block at 0x006ad1c8
>> task ID: 0x0a010008
>> name_32: -- DSB_ --
>> ID=0x0a010008 name=_BSD
>> 
>> --Info (hpj)-- task Nr: 9
>>  id=167837704, name=swi6: Giant tas, prio = 100
>> -----
>> Task control block(Nr.: 10)
>> task control block at 0x006ad560
>> task ID: 0x0a010009
>> name_32: -- DSB_ --
>> ID=0x0a010009 name=_BSD
>> 
>> --Info (hpj)-- task Nr: 10
>>  id=167837705, name=swi1: netisr 0, prio = 100
>> -----
>> Task control block(Nr.: 11)
>> task control block at 0x006ad8f8
>> task ID: 0x0a01000a
>> name_32: -- DSB_ --
>> ID=0x0a01000a name=_BSD
>> 
>> --Info (hpj)-- task Nr: 11
>>  id=167837706, name=if_io_tqg_0, prio = 100
>> -----
>> Task control block(Nr.: 12)
>> task control block at 0x006adc90
>> task ID: 0x0a01000b
>> name_32: -- DSB_ --
>> ID=0x0a01000b name=_BSD
>> 
>> --Info (hpj)-- task Nr: 12
>>  id=167837707, name=if_config_tqg_0, prio = 100
>> -----
>> Task control block(Nr.: 13)
>> task control block at 0x006ae028
>> task ID: 0x0a01000c
>> name_32: -- DSB_ --
>> ID=0x0a01000c name=_BSD
>> 
>> --Info (hpj)-- task Nr: 13
>>  id=167837708, name=softirq_0, prio = 100
>> -----
>> Task control block(Nr.: 14)
>> task control block at 0x006a3d20
>> task ID: 0x0b010001
>> name_32: --  --
>> ID=0x0b010001 name=
>> 
>> --Info (hpj)-- task Nr: 14
>>  id=184614913, name=, prio = 30
>> -----
>> Task control block(Nr.: 15)
>> task control block at 0x006a4450
>> task ID: 0x0b010003
>> name_32: --  --
>> ID=0x0b010003 name=
>> 
>> --Info (hpj)-- task Nr: 15
>>  id=184614915, name=, prio = 229
>> -----
>> :
>> qemu is called with:
>> 
>> qemu-system-i386 -m 64 -no-reboot -serial stdio -display none -net
>> nic,model=e1000,macaddr=0e:b0:ba:5e:ba:11 -net user,restrict=yes -append
>> "--video=off --console=/dev/com1" -kernel libComTestHarness
>> 
>> Heinz
>> 
>> _______________________________________________
>> users mailing list
>> users at rtems.org
>> http://lists.rtems.org/mailman/listinfo/users
> 
> <0001-pc386-BSP-try-first-PCI-I-O-interface-instead-of-PCI.patch>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2542 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/users/attachments/20201001/7b9efc17/attachment.bin>


More information about the users mailing list