Commit Graph

484 Commits

Author SHA1 Message Date
zhangyu117 ba045061e9 apps: replace atomic_fetch_xxx with atomic_xxx
Signed-off-by: zhangyu117 <zhangyu117@xiaomi.com>
2026-04-20 15:20:23 +08:00
anpeiyun 8595cc30ff osperf: solve the issue of pthread_cond_signal_switch_performance for SMP
for SMP, the pthread_cond_signal(&perf.cond); will execute before pthread_cond_wait(&perf->cond, &perf->lock);
So the case will block at pthread_join(tid, NULL);

Signed-off-by: anpeiyun <anpeiyun@xiaomi.com>
2026-04-20 15:20:23 +08:00
hujun5 d9ac6e31f4 Fix the timing measurement error in write/poll.
When evaluating the performance of write/poll,
we shouldn't include the time taken for thread
termination in the measurements, as it could cause confusion.

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-20 15:20:20 +08:00
zhangyu117 bc5cf2aa8e osperf: add testcase about mutex, function call and atomic calculate
Signed-off-by: zhangyu117 <zhangyu117@xiaomi.com>
2026-04-20 15:20:18 +08:00
hujun5 a49ef89456 osperf: add testcase for nxmutex-[un]lock
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-20 15:20:17 +08:00
zhangyuan29 e2e8df499c osperf: fixed mqueue test build issue
Signed-off-by: zhangyuan29 <zhangyuan29@xiaomi.com>
2026-04-20 15:20:17 +08:00
hujun5 ce0c6c15ec osperf: add testcase for pthread_cond_[signal/wait]
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-20 15:20:17 +08:00
zhangyu117 93f4a0a64c benchmarks/osperf: Adjust task priorities to achieve the correct execution order for acquiring time data.
Signed-off-by: zhangyu117 <zhangyu117@xiaomi.com>
2026-04-20 15:20:16 +08:00
Bowen Wang 2126f8fe79 benchmarks/ramspeed_main: avoid the ALIGN_MASK redefine error
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-04-20 15:20:16 +08:00
hujun5 8fa2831824 fix compile error
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-20 15:20:14 +08:00
chao an c33e23d46f libc/elf: rename modlib to libelf
Renaming "modlib" to "libelf" is more in line with the implementation content,
which makes it easier for individual developers to understand the capabilities of this module.

CONFIG_LIBC_MODLIB -> CONFIG_LIBC_ELF

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-04-20 15:20:13 +08:00
yinshengkai a5258e0858 osperf: add mqueue send test case
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2026-04-20 15:19:42 +08:00
buxiasen fc932dc16c osperf: fix the sched_lock/unlock cause evaluate wrong interval
If sched_locked, we always calculate the joined cost time.
Should remove the whole sched_lock, and user ensure system idle during
running.
Rename the typo swtich to switch.

Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2026-04-20 15:19:41 +08:00
makejian 549c69ab3d benchmarks/fpu: fpu test modification precision change to millisecond
time(0) will get a time in seconds. Usually, the test cycle needs to reach more than 1s to get the result. Here it is changed to the result with millisecond accuracy.
Signed-off-by: makejian <makejian@xiaomi.com>
2026-04-20 15:19:32 +08:00
makejian 903fe3f35d benchmarks/fpu: export fpu benchmark
1.port from https://www.netlib.org/benchmark/whetstone.c
2.adapt to nuttx style
Signed-off-by: makejian <makejian@xiaomi.com>
2026-04-20 15:19:32 +08:00
Yanfeng Liu 817c0f48d0 benchmark/osperf: add nullop test
This adds a null operation test null-op to osperf which does
nothing but two perf_gettime() syscalls.

Signed-off-by: Yanfeng Liu <p-liuyanfeng9@xiaomi.com>
2026-04-20 15:19:29 +08:00
ouyangxiangzhen aa63bf55e6 include/addrenv: Clean the inclusion
This commit fixed the incorrect inclusion.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-04-20 15:19:28 +08:00
Yanfeng Liu b7f05e83bf benchmark/osperf: add non-FLAT support
This revises osperf app so that it can be used in non-FLAT build
mode. It uses perf_xxx syscall to work in non-FLAT mode.

Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>
2026-04-20 15:19:28 +08:00
ouyangxiangzhen c1045c6022 benchmark/taclebench: Add clock measurement.
This commit added clock measurement for taclebench.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2026-04-20 15:19:27 +08:00
wangzhi16 48240d07e7 osperf : remove enter critical sections.
Signed-off-by: wangzhi16 <wangzhi16@xiaomi.com>
2026-04-20 15:19:24 +08:00
wangzhi16 dbb2d7739a banchmarks/ramspeed : remove enter/leave_critical_section.
Because the purpose of using enter_critical_section function in ramspeed is to disable interrupts rather than to synchronize information between multiple cores, it is replaced by up_irq_save.

Signed-off-by: wangzhi16 <wangzhi16@xiaomi.com>
2026-04-20 15:19:24 +08:00
wangzhi16 e7e0d90081 banchmarks/cache : remove enter/leave_critical_section.
Because the purpose of using enter_critical_section function in cachespeed is to disable interrupts rather than to synchronize information between multiple cores, it is replaced by up_irq_save.

Signed-off-by: wangzhi16 <wangzhi16@xiaomi.com>
2026-04-20 15:19:24 +08:00
zhangyuan29 5443229786 ramspeed: add up_perf interface
Signed-off-by: zhangyuan29 <zhangyuan29@xiaomi.com>
2026-04-20 15:19:17 +08:00
zhangyuan29 7bbd4f02d6 benchmarks: use CONFIG_CACHESPEED_MONOTONIC_TIME
Signed-off-by: zhangyuan29 <zhangyuan29@xiaomi.com>
2026-04-20 15:19:16 +08:00
yinshengkai 9fe1894625 testing: fix compiler warning
apps/benchmarks/ramspeed/ramspeed_main.c:70:7: warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
   #if HAS_IRQ_CONTROL
       ^
apps/examples/pipe/interlock_test.c:211:12: warning: variable 'readerid' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
  else if (ret != 0)
           ^~~~~~~~
memorystress_main.c:443:41: note: format string is defined here
   443 |            " nodelen: %zu\n sleep_us: %lu\n nthreads: %zu\n debug: %s\n",
       |                                       ~~^
       |                                         |
       |                                         long unsigned int
       |                                       %u

Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2026-04-20 15:19:09 +08:00
xuxin19 66e420b26e cmake(bugfix):fix coremark cmake compile FLAGS_STR build error
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2026-04-20 15:19:05 +08:00
guoshichao 3f18fd44fa benchmarks/ramspeed: add cmake build support
Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2026-04-20 15:19:05 +08:00
chenrun1 43770e6b25 ospert.c:fix warning maybe-uninitialized
Summary:
In function 'performance_gettime',
    inlined from 'hpwork_performance' at osperf.c:245:10:
osperf.c:123:3: error: 'result.end' may be used uninitialized [-Werror=maybe-uninitialized]
  123 |   up_perf_convert(result->end - result->start, &ts);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
osperf.c: In function 'hpwork_performance':
osperf.c:228:29: note: 'result.end' was declared here
  228 |   struct performance_time_s result;
      |                             ^~~~~~
CC:  audio/lib_buffer.c
CC:  common/arm64_initialize.c
CC:  builtin/lib_builtin_getname.c

Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2026-04-20 15:19:04 +08:00
buxiasen aa56709535 ramspeed: fix dest align typo, add not-aligned print
Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2026-04-20 15:19:02 +08:00
xuxin19 44156e9667 cmake(build):add benchmarks osperf CMakeLists.txt
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2026-04-20 15:19:01 +08:00
openvela-robot 373ce0a3b0 Merge branch 'master' into vela
apache/nuttx-apps commit id: c5c18a29973802b196e77adf3fd3e6742a269d83

Signed-off-by: ligd <liguiding1@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-04-20 15:18:54 +08:00
openvela-robot 4e0a573f23 nsh: support watch command
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2026-04-20 15:18:53 +08:00
openvela-robot b0d05e45c1 cmake(snyc):fix nuttx-apps CMakeList.txt conflit
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2026-04-20 15:18:51 +08:00
openvela-robot db9da5caee nshlib:Add macro restrictions to code that uses floating point numbers
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2026-04-20 15:18:49 +08:00
openvela-robot 7344f54d1a top:fix memleak if ps_recored retrun error
7   534         128     6096556 0x44c43720  [0x0402a5ec0] <mm_zalloc+8>        mm_heap/mm_zalloc.c:45
                                             [0x0402a35ce] <zalloc+18>          umm_heap/umm_zalloc.c:70
                                             [0x0402b72ba] <top_callback+238>   nsh_proccmds.c:733
                                             [0x0402b57f8] <nsh_foreach_direntry+32> nsh_fsutils.c:474
                                             [0x0402b7c86] <cmd_top+562>        nsh_proccmds.c:1252
                                             [0x0402b2496] <nsh_command+70>     nsh_command.c:1262
                                             [0x0402ae9fc] <nsh_execute+60>     nsh_parse.c:717

 7   534         512     6095859 0x44c1e270  [0x0402a5ec0] <mm_zalloc+8>        mm_heap/mm_zalloc.c:45
                                             [0x0402a35ce] <zalloc+18>          umm_heap/umm_zalloc.c:70
                                             [0x0402b72d8] <top_callback+268>   nsh_proccmds.c:741
                                             [0x0402b57f8] <nsh_foreach_direntry+32> nsh_fsutils.c:474
                                             [0x0402b7c86] <cmd_top+562>        nsh_proccmds.c:1252
                                             [0x0402b2496] <nsh_command+70>     nsh_command.c:1262
                                             [0x0402ae9fc] <nsh_execute+60>     nsh_parse.c:717

Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2026-04-20 15:18:47 +08:00
wangming9 b58a5ad8e2 apps/benchmarks/dhrystone: Fix compilation errors
Error details:
dhrystone/v2.2/dry.c:714:3: error: 'Int_2_Loc' may be used uninitialized [-Werror=maybe-uninitialized]
  714 |   fprintf (stderr, "Int_2_Loc:           %d\n", Int_2_Loc);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dhrystone/v2.2/dry.c:543:25: note: 'Int_2_Loc' was declared here
  543 |   REG   One_Fifty       Int_2_Loc;
      |                         ^~~~~~~~~

Signed-off-by: wangming9 <wangming9@xiaomi.com>
Signed-off-by: lipengfei28 <lipengfei28@xiaomi.com>
2026-04-20 15:18:46 +08:00
openvela-robot 552570496c cjson_test:add define CONFIG_CJSON_NESTING_LIMIT
Summary:
 Added a limit to CJSON_NESTING_LIMIT. The default value is 1000, which can cause stack overflow in some test cases.

Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2026-04-20 15:18:46 +08:00
openvela-robot ce2bf03d31 net: Remove IFF_DOWN flag to compatible with Linux/*BSD
turn off interface by checking IFF_UP flag isn't set:
https://github.com/apache/nuttx/issues/1838

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-04-20 15:18:45 +08:00
buxiasen 3a40f661ef ramspeed: fix -r -w parameter ignored, report align issue
We may want to test ramspeed by specific address, it was previous ignored,
and for the not aligned address from user, just report a error.

Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2026-04-20 15:18:44 +08:00
yinshengkai 87d9d1ac3d osperf: changes irq_t to irqstat_t
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2026-04-20 15:18:44 +08:00
Bowen Wang d1e6a19db7 coremark/Makefile: avoid crc function multiple definition
/data/project/specific product/rel-4.0/prebuilts/gcc/linux/arm/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: crc16_sw.c.data.project.specific product.rel-4.0.external.zblue.zblue_1.o (symbol from plugin): in function `crc16':
(.text+0x0): multiple definition of `crc16'; core_util.c.data.project.specific product.rel-4.0.apps.benchmarks.coremark_1.o (symbol from plugin):(.text+0x0): first defined here

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-04-20 15:18:43 +08:00
Bowen Wang d7f0bd15ae osperf/osperf: move close pipefd after pthread_join
Avoid the new thread write the closed pipe

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-04-20 15:18:43 +08:00
openvela-robot 3a3a0906f6 examples/pipe: Enhance test by different r/w thread priority
By arranging and combining the priorities of read and write
threads to cover more usage scenarios.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2026-04-20 15:18:43 +08:00
openvela-robot 7be1dac276 tools/mksymtab.sh: Using getopts to parse parameters
Use the "-a" option to specify additional lists

Examples
  - The basic.txt
    $ cat basic.txt
    basic_func0
    basic_func1
    basic_func2

  - The additional.txt
    $ cat additional.txt
    additional_func0
    additional_func1
    additional_func2

  1. Get symbols from directory "EMPTY_DIR" and additional list basic.txt
    ./tools/mksymtab.sh ./EMPTY_DIR -a basic.txt
    #if defined(CONFIG_EXECFUNCS_HAVE_SYMTAB)
    const struct symtab_s CONFIG_EXECFUNCS_SYMTAB_ARRAY[] =
    #elif defined(CONFIG_NSH_SYMTAB)
    const struct symtab_s CONFIG_NSH_SYMTAB_ARRAYNAME[] =
    #else
    const struct symtab_s dummy_symtab[] =
    #endif
    {
      {"basic_func0", &basic_func0},
      {"basic_func1", &basic_func1},
      {"basic_func2", &basic_func2},
    };

  2. Get symbols from directory "EMPTY_DIR" and two additional lists basic.txt, additional.txt
    ./tools/mksymtab.sh ./EMPTY_DIR -a basic.txt -a additional.txt
    #if defined(CONFIG_EXECFUNCS_HAVE_SYMTAB)
    const struct symtab_s CONFIG_EXECFUNCS_SYMTAB_ARRAY[] =
    #elif defined(CONFIG_NSH_SYMTAB)
    const struct symtab_s CONFIG_NSH_SYMTAB_ARRAYNAME[] =
    #else
    const struct symtab_s dummy_symtab[] =
    #endif
    {
      {"additional_func0", &additional_func0},
      {"additional_func1", &additional_func1},
      {"additional_func2", &additional_func2},
      {"basic_func0", &basic_func0},
      {"basic_func1", &basic_func1},
      {"basic_func2", &basic_func2},
    };

  3. Set prefix and get symbols from directory "EMPTY_DIR" and two additional lists basic.txt, additional.txt
    ./tools/mksymtab.sh ./EMPTY_DIR PREFIX_TEST  -a basic.txt -a additional.txt
    const struct symtab_s PREFIX_TEST_exports[] =
    {
      {"additional_func0", &additional_func0},
      {"additional_func1", &additional_func1},
      {"additional_func2", &additional_func2},
      {"basic_func0", &basic_func0},
      {"basic_func1", &basic_func1},
      {"basic_func2", &basic_func2},
    };

  4. Error: Missing <imagedirpath>
    $ ./tools/mksymtab.sh
    ERROR: Missing <imagedirpath>

    Usage: ./tools/mksymtab.sh <imagedirpath> [symtabprefix] [-a additionalsymbolspath]

UNSUPPORTED usage examples
  # `getopt` supports these, but the usage in GNU and macOS is incompatible.
  - ./tools/mksymtab.sh ./EMPTY_DIR -a basic.txt PREFIX_TEST -a additional.txt
  - ./tools/mksymtab.sh -a basic.txt ./EMPTY_DIR PREFIX_TEST -a additional.txt

References
  BASH(1)   -- getopts
  GETOPT(1) -- getopt

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2026-04-20 15:18:42 +08:00
openvela-robot a6daffa109 nxcodec: add rich debugging logs
Signed-off-by: shizhenghui <shizhenghui@xiaomi.com>
2026-04-20 15:18:41 +08:00
openvela-robot b2949ba2d4 nxcodec: fix build warning
nxcodec_main.c:143:37: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘uint32_t’ {aka ‘unsigned int’} [-Wformat=]
  143 |             printf("nxcodec size: %lux%lu\n",
      |                                   ~~^
      |                                     |
      |                                     long unsigned int
      |                                   %u
  144 |                    codec.output.format.fmt.pix.width,
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                               |
      |                                               uint32_t {aka unsigned int}
nxcodec_main.c:143:41: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘uint32_t’ {aka ‘unsigned int’} [-Wformat=]
  143 |             printf("nxcodec size: %lux%lu\n",
      |                                       ~~^
      |                                         |
      |                                         long unsigned int
      |                                       %u
  144 |                    codec.output.format.fmt.pix.width,
  145 |                    codec.output.format.fmt.pix.height);
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                               |
      |                                               uint32_t {aka unsigned int}

Signed-off-by: shizhenghui <shizhenghui@xiaomi.com>
2026-04-20 15:18:40 +08:00
openvela-robot 8c632a5e3b nsh: Fix PS printing misalignment
When the stack is allocated in megabytes, printing seven bits of ps will not align

Signed-off-by: wangmingrong <wangmingrong@xiaomi.com>
2026-04-20 15:18:26 +08:00
openvela-robot 6fd790f084 add INTERPRETERS_WAMR_DYNAMIC_AOT_DEBUG config
Signed-off-by: zhangliangyu3 <zhangliangyu3@xiaomi.com>
2026-04-20 15:18:22 +08:00
openvela-robot 79b997db4c coremark:Fix renaming issues with other libraries
The crc16 naming implemented in coremark is duplicated in zblue.

Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2026-04-20 15:18:17 +08:00
openvela-robot ec4f19c3fa app/netstatistics: Add net statistics api for user
Signed-off-by: meijian <meijian@xiaomi.com>
2026-04-20 15:18:16 +08:00