-
Notifications
You must be signed in to change notification settings - Fork 1.5k
RPMsg Dump and Ping Documentation #18259
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
base: master
Are you sure you want to change the base?
Conversation
acassis
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@CV-Bowen please include also the patch to be applied to the Linux kernel, this way users will be able to test before we get it integrated on mainline. Please document the steps to get it working
@acassis why do you request us sharing the source code? The code we upstream to NuttX kernel could ensure NuttX<->NuttX communication correctly, It's our right when/where/how share the code source for other OS publicly. |
@xiaoxiang781216 I think you already shared the source code in the mailing list some time ago. The idea of having it available is to let more people to test it easily. |
It's just one or two drivers, but now we have more than 20+ kernel drivers and 10+ Android HAL, it's hard to maintain them by copy.
The souce code is changing quickly, any code not actively maintained with git by dedicated people will be stale and stop working. So, we can just guarantee and could help NuttX community who are using NuttX<->NuttX IPC, but we don't have additional bandwidth to help the usage on other OS. |
@xiaoxiang781216 understood, so maybe you could keep the current source code in some public place, i.e. github.com/nuttx and then you could keep the modifications updated until it get integrated on Linux. What do you think? |
it will be public on openvela repo: https://github.com/open-vela. |
|
I don't know if you're also using AI to generate PR descriptions, but please stop including the "Files Changed" section. We can read the diff, it makes your PR take longer to review and adds no information. |
To avoid the dump log can't be output. Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
Add comprehensive documentation for the RPMsg Ping diagnostic tool, which is used for testing inter-processor communication and measuring latency/throughput metrics. The documentation includes: - Overview and use cases - Configuration instructions - Command syntax and parameters - Usage examples with sample output - Architecture workflow diagram - Best practices for latency and throughput testing Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
Add priority field to rpmsg_endpoint structure to support message prioritization. This allows different endpoints to have different priority levels for scheduling purposes. Changes: - Define priority constants (MIN=0, DEFAULT=127, MAX=255) - Add RPMSG_PRIO_RT alias for real-time priority - Add priority field to struct rpmsg_endpoint - Initialize priority to default value in rpmsg_register_endpoint() Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
Add documentation for the RPMsg dump command, which is a diagnostic tool for dumping RPMsg debugging information. The document covers: - Command usage and syntax - Output description including CPU info, endpoint list, virtqueue dump, and buffer states - Common debugging use cases such as TX buffer timeout issues, communication failures, and buffer leak detection Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
455026a to
acd874f
Compare
|
@linguini1 Thanks, Done. |
Summary
This PR adds comprehensive documentation for RPMsg diagnostic tools and introduces priority support for RPMsg endpoints.
Motivation
Documentation Gap: The RPMsg subsystem lacked documentation for its diagnostic tools (
rpmsg pingandrpmsg dump), making it difficult for developers to troubleshoot inter-processor communication issues.Debugging Visibility: The virtqueue dump logs were using
METAL_LOG_DEBUGlevel, which could be filtered out in production builds, making debugging difficult when issues occur.Priority Support: Different RPMsg endpoints may have different importance levels. Adding priority support allows for future scheduling optimizations and better resource management.
Changes
1. Documentation: RPMsg Ping (
rpmsg_ping.rst)Added comprehensive documentation for the RPMsg Ping diagnostic tool:
2. Documentation: RPMsg Dump (
rpmsg_dump.rst)Added detailed documentation for the RPMsg Dump command:
3. OpenAMP Patch: Virtqueue Dump Log Level
Changed
virtqueue_dump()log level fromMETAL_LOG_DEBUGtoMETAL_LOG_EMERGENCYto ensure dump information is always visible when debugging issues.4. OpenAMP Patch: RPMsg Endpoint Priority
Added priority field to
struct rpmsg_endpoint:RPMSG_PRIO_MIN(0),RPMSG_PRIO_DEFAULT(127),RPMSG_PRIO_MAX(255)RPMSG_PRIO_RTalias for real-time priorityrpmsg_register_endpoint()Impact
Testing
Build Verification
# Configure and build for QEMU ARMv8-A cmake -B cmake_out/v8a_server -DBOARD_CONFIG=qemu-armv8a:v8a_server -GNinja cmake --build cmake_out/v8a_server cmake -B cmake_out/v8a_proxy -DBOARD_CONFIG=qemu-armv8a:v8a_proxy -GNinja cmake --build cmake_out/v8a_proxyDocumentation Build
Runtime Testing (QEMU Dual-Core)
Test Environment:
qemu-armv8a:v8a_server+qemu-armv8a:v8a_proxyLog