Mohammed Anees commented on a discussion: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1121#note_145161


sure this is the config.ini i have used, its generated with `/waf bspdefaults` 
i have just set the Tests to True and SMP to True

```
[i386/pc686]
# Selects the compiler used to build the BSP (allowed values are "gcc" and
# "clang").  Please note that the values of some options depend on the compiler
# selection and changing the compiler may lead to unpredictable behaviour if
# these options are not adjusted as well.  Use the --rtems-compiler command line
# option to get the default values for a particular compiler via
# ./waf bspdefaults.
COMPILER = gcc
# Defines the program prefix of tools (compiler, assembler, linker)
# used to build RTEMS. This option may be used to build RTEMS with a
# vendor tool suite. Please note, support issues related to using this
# option with vendor tool suites should be directed to the vendor of
# the tools.
PROGRAM_PREFIX = ${ARCH}-rtems${__RTEMS_MAJOR__}-
# Flags passed to the library archiver
ARFLAGS = crD
# Specifies the C Language version and additional APIs available to
# the program. gnuNN allows GCC extensions and POSIX APIs. Switching
# to stdNN requires the addition of -D_POSIX_C_SOURCE=202405L to
# compit le for POSIX Issue 8 that RTEMS is aligned to.
CC_STD_VERSION_FLAGS = -std=gnu23 -D_BSD_SOURCE
# Warning flags passed to the C and C++ compiler
WARNING_FLAGS = -Wall -Wextra -Werror
# Warning flags passed to the C compiler
CC_WARNING_FLAGS = -Wmissing-prototypes -Wimplicit-function-declaration 
-Wstrict-prototypes -Wnested-externs -Wold-style-declaration
# Warning flags passed to the C++ compiler
CXX_WARNING_FLAGS = 
# Enable the Ada support
__RTEMS_ADA__ = False
# Defines the build label returned by rtems_get_build_label().
RTEMS_BUILD_LABEL = DEFAULT
# Default size in CAN frames of FIFO queues.
RTEMS_CAN_FIFO_SIZE = 64
# Number of available priorities for CAN priority queues.
RTEMS_CAN_QUEUE_PRIO_NR = 3
# Enable the RTEMS internal debug support
RTEMS_DEBUG = False
# Enable the Driver Manager startup
RTEMS_DRVMGR_STARTUP = False
# Enable the Newlib C library support
RTEMS_NEWLIB = True
# Enable the para-virtualization support
RTEMS_PARAVIRT = False
# Enable support for POSIX signals, sporadic server and lio_listio()
RTEMS_POSIX_API = False
# Enable the SMP lock profiling support
RTEMS_PROFILING = False
# Enable the Symmetric Multiprocessing (SMP) support
RTEMS_SMP = True 
# Enable the code and branch coverage support.
RTEMS_GCOV_COVERAGE = False
# Compiler flags recommended for components which should generate
# coverage information.
COVERAGE_COMPILER_FLAGS = 
# Linker flags recommended for executables which contain modules which
# generate coverage information.
COVERAGE_LINKER_FLAGS = 
# Enable support for JFFS2 Erase Block Summary (EBS)
CONFIG_JFFS2_SUMMARY = False
# Build the test programs
BUILD_TESTS = True 
# are "Verbose", "Normal", and "Quiet".  For normal test runs you can
# use a verbosity of "Normal".  If you need a more detailed output,
# then you can set it to "Verbose".  For example, in case a regression
# occurred.  Reducing the verbosity level can significantly reduce the
# test duration especially on targets with a slow serial output
# device.  All verbosity levels produce enough output to notice failed
# test cases.  In particular, the begin and end of test information is
# not affected by the verbosity level.
RTEMS_TEST_VERBOSITY = Normal
# Default optimization flags for C and C++ compilers.
OPTIMIZATION_FLAGS = -O2 -g -fdata-sections -ffunction-sections
# ABI flags
ABI_FLAGS = -mtune=pentiumpro -march=pentium
# Set the value of RELOCADDR to the address where you want your image
# to load. If you'll be using GRUB to load the images it will have to
# be >= 0x100000 (1024K). If you are using NetBoot to load the images
# it can be >= 0x10000 (64K) AND <= 0x97C00 (607K) OR >= 0x100000
# (1024K). The memory top is of course another limit. Make sure there
# is enough space before the upper memory limits for the image and the
# memory allocated by it to fit. Make sure the value you choose is
# aligned to 4 bytes.
RELOCADDR = 0x00100000
# Defined by default. Enables use of the Vesa Bios Extensions - real
# mode interface, which enables graphical mode and introduce it upon
# bootup.
USE_VBE_RM = True
# If defined, enables use of the Cirrus GD5446 controller rather than
# the controller utilizing Vesa Bios Extensions - real mode interface.
# NOTE: This has only been tested on Qemu.
USE_CIRRUS_GD5446 = False
# None
CLOCK_DRIVER_USE_8254 = False
# None
CLOCK_DRIVER_USE_TSC = False
# Determines, whether the console will be associated with the standard
# VGA display or with the COM1 serial port.  Currently only the VGA
# display and COM1 support printk.
USE_COM1_AS_CONSOLE = False
# Set if COM1..COM4 support is enabled.
BSP_ENABLE_COM1_COM4 = True
# Set if IDE support is enabled.
BSP_ENABLE_IDE = True
# Set if the VGA and keyboard console support is enabled.
BSP_ENABLE_VGA = True
# Defined by default. Enables use of the GDB stub for debugging via a
# serial port.
BSP_GDB_STUB = True
# Determines, whether RTEMS will try to use the primary IDE interface.
# Disable it, if: - you have no primary IDE interface - or you have no
# disk attached to this interface - or you do not want to access disks
# attached to this interface
IDE_USE_PRIMARY_INTERFACE = True
# Determines, whether RTEMS will try to use the secondary IDE
# interface.  Enable it, if: - you have a secondary IDE interface -
# and you have at least one disk attached to this interface - and you
# do want to access disks attached to this interface
IDE_USE_SECONDARY_INTERFACE = False
# If defined, enables use of the very basic VGA driver for framebuffer
# support rather than the controller utilizing Vesa Bios Extensions -
# real mode interface.
USE_VGA = False
# If defined, set the VGA display to 80x50.
BSP_VIDEO_80x50 = False
# Defines how many descriptors in GDT may be allocated for application
# or driver usage.
NUM_APP_DRV_GDT_DESCRIPTORS = 0
# Do the clock tick processing on the boot processor on behalf of all
# other processors.
CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR = False
# Optimization flags passed to C and C++ compilers for the BSP.
BSP_OPTIMIZATION_FLAGS = ${OPTIMIZATION_FLAGS}
# Optimization flags passed to C and C++ compilers for the CPU kit.
CPUKIT_OPTIMIZATION_FLAGS = ${OPTIMIZATION_FLAGS}
# Optimization flags passed to C and C++ compiler for tests.
TEST_OPTIMIZATION_FLAGS = ${OPTIMIZATION_FLAGS}
# If defined to a non-zero value, prints the some information in case
# of a fatal error.
BSP_VERBOSE_FATAL_EXTENSION = 1
# Flags passed to the linker.
LINKFLAGS = 
# Flags passed to the linker at the end of the link command.
LDFLAGS = -Wl,--gc-sections
# Install the legacy application Makefile framework.
INSTALL_LEGACY_MAKEFILES = True
# If defined to a non-zero value, prints the exception context when an
# unexpected exception occurs.
BSP_PRINT_EXCEPTION_CONTEXT = 1
# If defined to a non-zero value, reset the board when the application
# exits.
BSP_RESET_BOARD_AT_EXIT = 1
# If defined to a non-zero value, print a message and wait until
# pressed before resetting board when application exits.
BSP_PRESS_KEY_FOR_RESET = 0
```

### RTEMS-TEST (UPSTREAM)

![Screenshot 2026-03-13 at 
00.11.09.png](/uploads/1022a683adb2ce428ba5353744597156/Screenshot_2026-03-13_at_00.11.09.png){width="600"
 height="487"}

### RTEMS-TEST (FEATURE BRANCH)

![Screenshot 2026-03-13 at 
00.04.33.png](/uploads/3f385ea9e79feab008069fcb53ac3088/Screenshot_2026-03-13_at_00.04.33.png){width="613"
 height="489"}

Both upstream and feature branch have the same cases which are timeout / 
invalid, they are the following

```

[13/60] p:5  f:0  u:0  e:0  I:0  B:0  t:0  L:0  i:0  W:0  | i386/pc686: 
smpclock01.exe

Result: timeout   
Time: 0:04:05.099036 smpclock01.exe

=>  exe: qemu-system-i386 -no-reboot -nographic -monitor none -serial stdio 
-append --console=/dev/com1 -m 128 -no-reboot -smp 2,sockets=2 -machine 
pc,acpi=off -kernel build/i386/pc686/testsuites/smptests/smpclock01.exe
] c[?7lSeaBIOS (version rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org)
] 
] 
] iPXE (http://ipxe.org) 00:03.0 CA00 PCI2.10 PnP PMM+06FD21C0+06F321C0 CA00
] Press Ctrl-B to configure iPXE (PCI 00:03.0)...                               
                                                
] 
] 
] Booting from ROM..i386: isr=0 irr=1
] i386: isr=0 irr=1
] Scanning from 0x9fc00 for 1024 bytes
] Scanning from 0xf0000 for 65536 bytes
] Found MP Floating Structure Pointer at f54b0
] Intel MultiProcessor Spec 1.4 BIOS support detected
]     APIC config: "Virtual Wire mode"    Local APIC address: 0xfee00000
]   OEM id: BOCHSCPU  Product id: 0.1         
]   Processor [APIC id 0 ver 20]: #0  BootStrap Processor (BSP)
]   Processor [APIC id 1 ver 20]: #1  Application Processor (AP)
]   Bus id 0 is PCI   
]   Bus id 1 is ISA   
]   I/O APIC id 0 ver 17, address: 0xfec00000  
] 
] 
=>  test start: SMPCLOCK 1
] *** BEGIN OF TEST SMPCLOCK 1 ***
] *** TEST VERSION: 7.0.0.4e4c3601c94573e05ef5111142bde43d23029bc2
] *** TEST STATE: EXPECTED_PASS
] *** TEST BUILD: RTEMS_SMP
] *** TEST TOOLS: 15.2.0 20250808 (RTEMS 7, RSB 
3b4587c6a3ac7c738d7bc42713152bcdb9bfc557, Newlib a7c61498)
] *** TIMEOUT TIMEOUT

[21/60] p:13 f:0  u:0  e:0  I:0  B:0  t:0  L:0  i:0  W:0  | i386/pc686: 
smpfatal09.exe

Result: invalid   
Time: 0:00:00.257238 smpfatal09.exe

=>  exe: qemu-system-i386 -no-reboot -nographic -monitor none -serial stdio 
-append --console=/dev/com1 -m 128 -no-reboot -smp 2,sockets=2 -machine 
pc,acpi=off -kernel build/i386/pc686/testsuites/smptests/smpfatal09.exe
] c[?7lSeaBIOS (version rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org)
] 
] 
] iPXE (http://ipxe.org) 00:03.0 CA00 PCI2.10 PnP PMM+06FD21C0+06F321C0 CA00
] Press Ctrl-B to configure iPXE (PCI 00:03.0)...                               
                                                
] 
] 
] Booting from ROM..
] Booting from ROM..

[57/60] p:48 f:0  u:0  e:0  I:0  B:0  t:0  L:0  i:1  W:0  | i386/pc686: 
smpthreadlife01.exe

Result: timeout   
Time: 0:04:05.404437 smpthreadlife01.exe

=>  exe: qemu-system-i386 -no-reboot -nographic -monitor none -serial stdio 
-append --console=/dev/com1 -m 128 -no-reboot -smp 2,sockets=2 -machine 
pc,acpi=off -kernel build/i386/pc686/testsuites/smptests/smpthreadlife01.exe
] c[?7lSeaBIOS (version rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org)
] 
] 
] iPXE (http://ipxe.org) 00:03.0 CA00 PCI2.10 PnP PMM+06FD21C0+06F321C0 CA00
] Press Ctrl-B to configure iPXE (PCI 00:03.0)...                               
                                                
] 
] 
] Booting from ROM..i386: isr=0 irr=1
] i386: isr=0 irr=1
] Scanning from 0x9fc00 for 1024 bytes
] Scanning from 0xf0000 for 65536 bytes
] Found MP Floating Structure Pointer at f54b0
] Intel MultiProcessor Spec 1.4 BIOS support detected
]     APIC config: "Virtual Wire mode"    Local APIC address: 0xfee00000
]   OEM id: BOCHSCPU  Product id: 0.1         
]   Processor [APIC id 0 ver 20]: #0  BootStrap Processor (BSP)
]   Processor [APIC id 1 ver 20]: #1  Application Processor (AP)
]   Bus id 0 is PCI   
]   Bus id 1 is ISA   
]   I/O APIC id 0 ver 17, address: 0xfec00000  
] 
] 
=>  test start: SMPTHREADLIFE 1
] *** BEGIN OF TEST SMPTHREADLIFE 1 ***
] *** TEST VERSION: 7.0.0.4e4c3601c94573e05ef5111142bde43d23029bc2
] *** TEST STATE: EXPECTED_PASS
] *** TEST BUILD: RTEMS_SMP
] *** TEST TOOLS: 15.2.0 20250808 (RTEMS 7, RSB 
3b4587c6a3ac7c738d7bc42713152bcdb9bfc557, Newlib a7c61498)
] *** TIMEOUT TIMEOUT
```

running `smpthreadlife01.exe` separately seems to not cause timeout for both?

![Screenshot 2026-03-13 at 
00.17.58.png](/uploads/877207851e311d8642d6b27175f6601a/Screenshot_2026-03-13_at_00.17.58.png){width=530
 height=306}

also side note, I added a tester configuration to run the tests with SMP enabled

```
[pc-qemu-mps]
bsp                     = pc686
arch                    = i386
qemu_use_serial_console = yes
tester                  = %{_rtscripts}/qemu.cfg
bsp_qemu_opts           = %{qemu_opts_base} %{qemu_opts_serial} -append 
"--console=/dev/com1" -m 128 -no-reboot -smp 2,sockets=2 -machine pc,acpi=off
```

-- 
View it on GitLab: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1121#note_145161
You're receiving this email because of your account on gitlab.rtems.org.


_______________________________________________
bugs mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/bugs

Reply via email to