support partial output buffer for get_info API. #4286
Merged
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.
Description
Describe the purpose of and changes within this Pull Request.
This PR fixes #4160 by allowing smaller output buffer than the size of the struct for
bpf_obj_get_info_by_fd
API. The changes were made for program, map and link objects. This PR found two incidental issues:count_of_maps
for eBPF program object was set to the count of map references in individual instructions, instead of total number of unique maps referred to by the program.query_map_definition
invokedbpf_obj_get_info_by_fd
but did not check if the returned object type was indeed that of a map.Testing
Do any existing tests cover this change? Are new tests needed?
Test cases were added in libbpf unit tests to invoke ``bpf_obj_get_info_by_fd` with smaller output buffers.
Documentation
Is there any documentation impact for this change?
N/A.
Installation
Is there any installer impact for this change?
N/A.