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) {width="600" height="487"} ### RTEMS-TEST (FEATURE BRANCH) {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[?7l[2J[0mSeaBIOS (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[?7l[2J[0mSeaBIOS (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[?7l[2J[0mSeaBIOS (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? {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
