-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mqueue: refactor of mqueue #13413
mqueue: refactor of mqueue #13413
Conversation
This should submit after: |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR will fail at CI, please take a look:
I have re-run the fail jobs |
@GUIDINGLI I don't work in the Nuttx project anymore. Maybe @tmedicci can help ? |
LD: nuttx.elf ld: /home/ligd/platform/mainline/nuttx/staging/libsched.a(mq_sndinternal.o): in function `wd_start_realtime': /home/ligd/platform/mainline/nuttx/include/nuttx/wdog.h:274: undefined reference to `clock_realtime2absticks' /home/ligd/platform/mainline/nuttx/include/nuttx/wdog.h:274:(.text+0xad): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `clock_realtime2absticks' ld: /home/ligd/platform/mainline/nuttx/staging/libsched.a(mq_rcvinternal.o): in function `wd_start_realtime': /home/ligd/platform/mainline/nuttx/include/nuttx/wdog.h:274: undefined reference to `clock_realtime2absticks' /home/ligd/platform/mainline/nuttx/include/nuttx/wdog.h:274:(.text+0xad): relocation truncated to fit: R_X86_64_PLT32 against undefined symbol `clock_realtime2absticks' make[1]: *** [Makefile:128: nuttx.elf] Error 1 make: *** [tools/Unix.mk:551: nuttx.elf] Error 2 Signed-off-by: ligd <[email protected]>
Signed-off-by: ligd <[email protected]>
1. mainly for long time within critical_section 2. move out memcpy buffer from enter_critical_section() 3. let mq_send() return fail when mq buffer full in ISR Signed-off-by: ligd <[email protected]>
Signed-off-by: ligd <[email protected]>
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
Hi folks. |
@GUIDINGLI please take a look. |
Summary
mqueue: refactor of mqueue
after these optimize:
the mq_timedsend()/mq_timedrecv() critical time, which use critmon tools to measure:
from 100us -> 60us
Impact
mqueue
Testing
bes board & sim