Conversation
add irq stack information add cpu loading Signed-off-by: chao.an <anchao@xiaomi.com>
add irq stack information add cpu loading Signed-off-by: chao.an <anchao@xiaomi.com>
This pull request improves the dependencies for Makefile.unix::context rule. * `include/math.h`, `include/float.h`, `include/stdarg.h`, `include/setjmp.h` are only added to `context`'s dependency if the Kconfig value is set. This prevents `context` from trying to make `include/math.h` only to find out there's no command to create the file. * Instead of executing $(CONTEXTDIRS) in a for loop in the `context` rule, $(CONTEXTDIRS) are added as a dependency to `context` and a rule is created to create the targets. Real files are used, to prevent needlessly rebuilding the same `context` over and over and over again. * Instead of making the directory `staging`, add it as an order-only dependency for `context`. this ensures the directory is only created if it doesn't exist. Tested by running: ``` (cd tools && ./configure.sh -a ../incubator-nuttx-apps stm32f3discovery:nsh) make context ``` First time running context: ``` ➜ incubator-nuttx git:(improve-make-context) time make context make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx/tools' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/tools' make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx' make[2]: Entering directory '/home/user/code/fitbit/incubator-nuttx/boards' make[2]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/boards' make[2]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps' make[3]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' make[3]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' make[3]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps/builtin' make[3]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps/builtin' make[2]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps' make[2]: Entering directory '/home/user/code/fitbit/incubator-nuttx/graphics' make[3]: Entering directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[3]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[3]: Entering directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[3]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[3]: Entering directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[3]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[2]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/graphics' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx' Create .version make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx/tools' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/tools' Create version.h LN: include/arch to arch/arm/include LN: include/arch/board to /home/user/code/fitbit/incubator-nuttx/boards/arm/stm32/stm32f3discovery/include LN: include/arch/chip to arch/arm/include/stm32 LN: arch/arm/src/board to /home/user/code/fitbit/incubator-nuttx/boards/arm/stm32/stm32f3discovery/../common LN: arch/arm/src/board/board to /home/user/code/fitbit/incubator-nuttx/boards/arm/stm32/stm32f3discovery/src LN: arch/arm/src/chip to arch/arm/src/stm32 LN: /home/user/code/fitbit/incubator-nuttx/drivers/platform to /home/user/code/fitbit/incubator-nuttx/drivers/dummy make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx/boards' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/boards' make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps' make[2]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' LN: platform/board to /home/user/code/fitbit/incubator-nuttx-apps/platform/dummy make[2]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps' make context 0.95s user 0.45s system 109% cpu 1.281 total ``` second time running context: ``` ➜ incubator-nuttx git:(improve-make-context) time make context Create .version Create version.h LN: include/arch/board to /home/user/code/fitbit/incubator-nuttx/boards/arm/stm32/stm32f3discovery/include make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx/boards' make[1]: Nothing to be done for 'dirlinks'. make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/boards' make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps' make[2]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' LN: platform/board to /home/user/code/fitbit/incubator-nuttx-apps/platform/dummy make[2]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps' make context 0.30s user 0.20s system 121% cpu 0.414 total ```
For FAT the same buffer is used for read and writes, there is a possibility a cache line is dirty. But the fs is not dirty and will not write the sector to disk. This can be seen PX4/NuttX#175 When the system is busy that cache line can be evicted after the RX DMA has completed and overwrite the data in memory. The solution is to invalidate before the DMA to prevent an evection causing an overwite, and after the DMA it to insure coherency.
- "op_mode" instead of "mode" (compilation error) - CONFIG_ISL29023_I2C_FREQUENCY instead of CONFIG_LM75_I2C_FREQUENCY (probably a leftover) - Fix a couple of format warnings: now using PRIu32 - Also minor comment changes
Assign ways to L2 zerodevice. L2 zero device is used for the scratchpad functionality. The area may be used for the harts communicating to each other. Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
OpenSBI may be compiled as an external library. OpenSBI commit d249d65
(Dec. 11, 2021) needs to be reverted as it causes memcpy / memcmp to
end up in the wrong section. That issue has yet no known workaround.
OpenSBI may be lauched from the hart0 (e51). It will start the U-Boot
and eventually the Linux kernel on harts 1-4.
OpenSBI, once initialized properly, will trap and handle illegal
instructions (for example, CSR time) and unaligned address accesses
among other things.
Due to size size limitations for the mpfs eNVM area where the NuttX
is located, we actually set up the OpenSBI on its own section which
is in the bottom of the DDR memory. Special care must be taken so that
the kernel doesn't override the OpenSBI. For example, the Linux device
tree may reserve some space from the beginning:
opensbi_reserved: opensbi@80000000 {
reg = <0x80000000 0x200000>;
label = "opensbi-reserved";
};
The resulting nuttx.bin file is very large, but objcopy is used to
create the final binary images for the regions (eNVM and DDR) using
the nuttx elf file.
Co-authored-by: Petro Karashchenko <petro.karashchenko@gmail.com>
Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
Signed-off-by: ligd <liguiding1@xiaomi.com>
The source directory contents of the OpenSBI directory lib/sbi may be listed with a one-line wildcard. This makes the Make.defs file look simpler. The rest of the files need to be picked one at a time. Co-authored-by: Jukka Laitinen <jukkax@ssrc.tii.ae> Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
Signed-off-by: chao.an <anchao@xiaomi.com>
Update the cache settings for the Aries m100pfsevp board. This assigns scratchpad ways for this board as well, as seen in the commit 491ae6c. Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
Co-authored-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com> Co-authored-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
Signed-off-by: ligd <liguiding1@xiaomi.com>
Signed-off-by: ligd <liguiding1@xiaomi.com>
Signed-off-by: ligd <liguiding1@xiaomi.com>
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Signed-off-by: zhuyanlin <zhuyanlin1@xiaomi.com>
…for format Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
…urred if NET_TCP_WINDOW_SCALE option was enabled. If the remote TCP receiver advertised TCP window size greater than 64 KB and TCP ACK packets returned to the NuttX TCP sender with a significant delay, tx_unacked variable overflowed and further TCP send stalled forever (until TCP re-connection).
rwbuffer.c: In function 'rwb_initialize':
rwbuffer.c:842:16: warning: format '%d' expects argument of type 'int', but argument 3 has type 'uint32_t' {aka 'long unsigned int'} [-Wformat=]
842 | ferr("Write buffer kmm_malloc(%d) failed\n", allocsize);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
| |
| uint32_t {aka long unsigned int}
rwbuffer.c:842:42: note: format string is defined here
842 | ferr("Write buffer kmm_malloc(%d) failed\n", allocsize);
| ~^
| |
| int
| %ld
In file included from rwbuffer.c:36:
rwbuffer.c:846:13: warning: format '%d' expects argument of type 'int', but argument 3 has type 'uint32_t' {aka 'long unsigned int'} [-Wformat=]
846 | finfo("Write buffer size: %d bytes\n", allocsize);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
| |
| uint32_t {aka long unsigned int}
rwbuffer.c:846:34: note: format string is defined here
846 | finfo("Write buffer size: %d bytes\n", allocsize);
| ~^
| |
| int
| %ld
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Wrong unackseq calculation locked conn->tx_unacked at non-zero values even if all ACKs were received. Thus unbuffered psock_tcp_send() never completed.
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
Signed-off-by: chao.an <anchao@xiaomi.com>
Signed-off-by: chao.an <anchao@xiaomi.com>
Signed-off-by: chao.an <anchao@xiaomi.com>
Signed-off-by: zhuyanlin <zhuyanlin1@xiaomi.com>
Signed-off-by: zhuyanlin <zhuyanlin1@xiaomi.com>
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
like other rtc driver Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
to support the multiple rtc driver instance Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
…stent with each other: tcp_sendfile() reads data directly from a file and does not use NET_TCP_WRITE_BUFFERS data flow even if CONFIG_NET_TCP_WRITE_BUFFERS option is enabled. Despite this, tcp_sendfile relied on NET_TCP_WRITE_BUFFERS specific flow control variables that were idle during sendfile operation. Thus it was a total inconsistency. E.g. because of the issue, TCP socket used by sendfile() operation never issued FIN packet on close() command, and the TCP connection hung up. As a result of the fix, simultaneously enabled CONFIG_NET_TCP_WRITE_BUFFERS and CONFIG_NET_SENDFILE options can coexist.
Some SoC like bl602 require the exception entry 8 byte align, it should be safe for other chips so we can apply it globally. Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Signed-off-by: chao.an <anchao@xiaomi.com>
netlink/netlink_sockif.c: In function ‘netlink_sendmsg’:
netlink/netlink_sockif.c:676:10: warning: unused variable ‘len’ [-Wunused-variable]
676 | size_t len = msg->msg_iov->iov_len;
| ^~~
Signed-off-by: chao.an <anchao@xiaomi.com>
Signed-off-by: chao.an <anchao@xiaomi.com>
Update the risc-v/mpfs documentation to match the current work. Signed-off-by: Eero Nurkkala <eero.nurkkala@offcode.fi>
includes following parts: add support of sparc in arch/Kconfig add support of sparc in boards/Kconfig add sparc dir in arch, add sparc dir in boards add support of sparc in libs/libc/machine modify all the coding style problem about saprc
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
based on PR apache#2987
…rect snd_ackcb callback handling: Both the snd_ackcb and snd_datacb callbacks were created and destroyed right after sending every packet. Whenever TCP_REXMIT event occurred due to TCP send timeout, TCP_REXMIT was ignored because snd_ackcb callback had been destroyed by the time. The issue is fixed as follows: - both the snd_ackcb and snd_datacb callbacks are combined into one snd_cb callback (the same way as in tcp_send_unbuffered.c). - the snd_cb callback lives until all requested data (via sendfile) is sent, including all ACKs and possible retransmissions. As a positive side effect of the code optimization / fix, sendfile TCP payload throughput is increased.
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
Merge master into downstream
lupyuen
pushed a commit
that referenced
this pull request
Aug 7, 2022
The free node is still in use after kasan_poison(), the node member access will cause the assert report by kasan. | (gdb) bt | #0 kasan_report (addr=1743265406637584896, size=140737337053680, is_write=46) at kasan/kasan.c:97 | #1 0x0000555555607bdd in __asan_loadN_noabort (addr=140737272831420, size=4) at kasan/kasan.c:289 | #2 0x0000555555607cd7 in __asan_load4_noabort (addr=140737272831420) at kasan/kasan.c:323 | #3 0x00005555556061ef in gmtime_r (timep=0x7ffff3275dbc, result=0x7ffff3275e10) at time/lib_gmtimer.c:301 | #4 0x000055555560e507 in sim_rtc_rdtime (lower=0x55555576b780 <g_sim_rtc>, rtctime=0x7ffff3275e10) at sim/up_rtc.c:77 | #5 0x00005555555fcbdb in up_rtc_gettime (tp=0x7ffff3275ef0) at timers/arch_rtc.c:128 | #6 0x00005555555f08b4 in clock_systime_timespec (ts=0x7ffff3275ef0) at clock/clock_systime_timespec.c:72 | #7 0x00005555555ecc77 in note_common (tcb=0x7ffff31d2180, note=0x7ffff3275f80, length=21 '\025', type=18 '\022') at sched/sched_note.c:144 | #8 0x00005555555ed706 in sched_note_syscall_enter (nr=1, argc=0) at sched/sched_note.c:765 | #9 0x000055555560eb37 in __wrap_getpid () at wraps/WRAP_getpid.c:26 | #10 0x0000555555608d1c in mm_takesemaphore (heap=0x7ffff30ae000) at mm_heap/mm_sem.c:127 | #11 0x0000555555609477 in mm_free (heap=0x7ffff30ae000, mem=0x7ffff3265b80) at mm_heap/mm_free.c:89 | #12 0x00005555556070c5 in free (mem=0x7ffff3265b80) at umm_heap/umm_free.c:49 | #13 0x000055555560c3b0 in up_release_stack (dtcb=0x7ffff31e4b00, ttype=0 '\000') at sim/up_releasestack.c:67 | #14 0x00005555555f2515 in nxsched_release_tcb (tcb=0x7ffff31e4b00, ttype=0 '\000') at sched/sched_releasetcb.c:134 | #15 0x00005555556bdf0c in nxtask_terminate (pid=4, nonblocking=true) at task/task_terminate.c:184 | #16 0x00005555556bdb0f in nxtask_exit () at task/task_exit.c:168 | #17 0x000055555566e05f in up_exit (status=0) at sim/up_exit.c:64 | #18 0x000055555564f454 in _exit (status=0) at task/exit.c:78 | #19 0x000055555560ea89 in __wrap__exit (parm1=0) at wraps/WRAP__exit.c:27 | #20 0x00005555555eb288 in exit (status=0) at stdlib/lib_exit.c:54 | #21 0x00005555555fe2cc in nxtask_startup (entrypt=0x555555670c34 <critmon_start_main>, argc=1, argv=0x7ffff3265bb0) at sched/task_startup.c:70 | #22 0x00005555555f02a0 in nxtask_start () at task/task_start.c:134 | #23 0x0000000000000000 in ?? () Signed-off-by: chao.an <anchao@xiaomi.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tested lorawan_test and bl602_adc_test on PineDio Stack BL604