Skip to content

Add qualcomm implement for rosidl_buffer_backend - #10

Merged
nvcyc merged 3 commits into
ros2:mainfrom
nasongCool:main
Sep 1, 2026
Merged

Add qualcomm implement for rosidl_buffer_backend#10
nvcyc merged 3 commits into
ros2:mainfrom
nasongCool:main

Conversation

@nasongCool

Copy link
Copy Markdown
Contributor

Description

This pull request introduces qc_buffer_backend, a pluggable rosidl::Buffer<T> storage backend for Qualcomm platforms that enables HTP-CPU zero-copy message delivery in ROS2 pipelines.

Is this user-facing behavior change?

NA.

Did you use Generative AI?

Yes.

Additional Information

More details can be found on qc_buffer_backend_design.md and README.md.

Signed-off-by: Na Song <nasong@qti.qualcomm.com>
Signed-off-by: Na Song <nasong@qti.qualcomm.com>
@nasongCool

Copy link
Copy Markdown
Contributor Author

Hi @ahcorde,
As we aligned before, I am adding a new package/directory in rosidl_buffer_backends for qualcomm implement.

But I met the CI/CD failed as below:
image

Seems like it's not caused by my PR, could you please help to check?

@nvcyc nvcyc left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR to add a rosidl buffer backend for Qualcomm platforms.

It is currently expected that CI can fail the tests that depend on specific hardware (in the case of the failures you showed, they are due to a lack of supported GPU devices or runtime on CI machines). Therefore you can ignore CI failures in this PR for now.

We may discuss a more suitable way to enable CI to better test PRs in this repo in the future, but at the moment we can only rely on the package maintainers to ensure the correctness of the changes on their own platforms.

Once the PR is merged, another check point will be the build status when the packages are built by the OSRA bulidfarm for an official release sync. That build status can be tracked here.

I would suggest adding some basic unit tests in your packages so there are standard ways to test and verify/debug the packages when needed.

@nasongCool

Copy link
Copy Markdown
Contributor Author

Thanks @nvcyc
I do have some unit tests in my packages, but I remove them before submitting PR.
I will commit them soon.

Signed-off-by: Na Song <nasong@qti.qualcomm.com>
@nvcyc

nvcyc commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Thanks for the update!
I think the PR looks good for introducing qc_buffer_backend for the first time, so I'm merging this PR and suggesting to have follow-up PRs for the following improvements to the backend:

  • Implement on_discovering_endpoint() to verify that the peer advertises qc and is on the same host (or whatever locality the backend supports). Cache the decision per endpoint and have create_descriptor_with_endpoint() return nullptr for incompatible peers so CPU serialization is used.
  • In the case that broker registration fails, create_descriptor_with_endpoint() should return nullptr to trigger CPU serialization.

@nvcyc
nvcyc merged commit d520e5d into ros2:main Sep 1, 2026
0 of 2 checks passed
@nasongCool

Copy link
Copy Markdown
Contributor Author

Sure, will have the follow-up PRs soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants