Skip to content
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

iox-#2301 Mixed mode 32 and 64 bit #2348

Merged

Conversation

elBoberido
Copy link
Member

@elBoberido elBoberido commented Sep 20, 2024

Notes for Reviewer

This PR enables to connect 32 and 64 bit applications to have zero-copy communication. It is currently a technology preview based on spin locks and spin semaphores as replacement for their POSIX counterpart. For production, these contructs need to be based on futex on Linux and WaitOnAddress on Windows. For other OSes, solutions need to be found as well.

Pre-Review Checklist for the PR Author

  1. Code follows the coding style of CONTRIBUTING.md
  2. Tests follow the best practice for testing
  3. Changelog updated in the unreleased section including API breaking changes
  4. Branch follows the naming format (iox-123-this-is-a-branch)
  5. Commits messages are according to this guideline
  6. Update the PR title
    • Follow the same conventions as for commit messages
    • Link to the relevant issue
  7. Relevant issues are linked
  8. Add sensible notes for the reviewer
  9. All checks have passed (except task-list-completed)
  10. Assign PR to reviewer

Checklist for the PR Reviewer

  • Consider a second reviewer for complex new features or larger refactorings
  • Commits are properly organized and messages are according to the guideline
  • Code according to our coding style and naming conventions
  • Unit tests have been written for new behavior
  • Public API changes are documented via doxygen
  • Copyright owner are updated in the changed files
  • All touched (C/C++) source code files from iceoryx_hoofs have been added to ./clang-tidy-diff-scans.txt
  • PR title describes the changes

Post-review Checklist for the PR Author

  1. All open points are addressed and tracked via issues

References

Copy link

codecov bot commented Sep 20, 2024

Codecov Report

Attention: Patch coverage is 77.40385% with 47 lines in your changes missing coverage. Please review.

Project coverage is 78.33%. Comparing base (5ea8482) to head (8f8bf24).
Report is 12 commits behind head on main.

Files with missing lines Patch % Lines
iceoryx_hoofs/posix/sync/source/mutex.cpp 39.58% 28 Missing and 1 partial ⚠️
iceoryx_hoofs/concurrent/sync/source/spin_lock.cpp 81.63% 5 Missing and 4 partials ⚠️
...yx_hoofs/concurrent/sync/source/spin_semaphore.cpp 91.66% 1 Missing and 3 partials ⚠️
...eoryx_hoofs/posix/sync/source/semaphore_helper.cpp 76.92% 3 Missing ⚠️
...osh/source/popo/building_blocks/locking_policy.cpp 75.00% 0 Missing and 2 partials ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #2348      +/-   ##
==========================================
- Coverage   83.61%   78.33%   -5.29%     
==========================================
  Files         433      439       +6     
  Lines       16033    16162     +129     
  Branches     2299     2314      +15     
==========================================
- Hits        13406    12660     -746     
- Misses       2627     2652      +25     
- Partials        0      850     +850     
Flag Coverage Δ
unittests 78.15% <77.40%> (-5.27%) ⬇️
unittests_timing 15.07% <25.48%> (-1.98%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...yx_hoofs/concurrent/sync/include/iox/spin_lock.hpp 100.00% <100.00%> (ø)
...ofs/concurrent/sync/include/iox/spin_semaphore.hpp 100.00% <100.00%> (ø)
...ceoryx_hoofs/design/include/iox/lock_interface.hpp 100.00% <100.00%> (ø)
...x_hoofs/design/include/iox/semaphore_interface.hpp 100.00% <100.00%> (ø)
iceoryx_hoofs/posix/sync/include/iox/mutex.hpp 100.00% <100.00%> (ø)
...x_hoofs/posix/sync/include/iox/named_semaphore.hpp 100.00% <ø> (ø)
...hoofs/posix/sync/include/iox/unnamed_semaphore.hpp 100.00% <ø> (ø)
...ceoryx_hoofs/posix/sync/source/named_semaphore.cpp 58.47% <100.00%> (-4.03%) ⬇️
...oryx_hoofs/posix/sync/source/unnamed_semaphore.cpp 48.83% <100.00%> (+0.18%) ⬆️
...l/popo/building_blocks/condition_variable_data.hpp 100.00% <ø> (ø)
... and 6 more

... and 172 files with indirect coverage changes

@elBoberido elBoberido force-pushed the iox-2301-mixed-mode-32-and-64-bit branch from ee1a926 to d3182ac Compare September 20, 2024 13:21
@elBoberido elBoberido force-pushed the iox-2301-mixed-mode-32-and-64-bit branch 2 times, most recently from 8905676 to cdf6ca0 Compare September 23, 2024 19:41
@elBoberido elBoberido force-pushed the iox-2301-mixed-mode-32-and-64-bit branch from cdf6ca0 to 2d7c8d1 Compare September 23, 2024 19:46
@elBoberido elBoberido changed the title [WIP] iox-#2301 Mixed mode 32 and 64 bit iox-#2301 Mixed mode 32 and 64 bit Sep 23, 2024
@elBoberido elBoberido self-assigned this Sep 23, 2024
elfenpiff
elfenpiff previously approved these changes Sep 26, 2024
Copy link
Contributor

@elfenpiff elfenpiff left a comment

Choose a reason for hiding this comment

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

Besides of some minor spelling mistakes and a code question everything looks fine.

doc/website/advanced/iceoray-on-32-bit.md Outdated Show resolved Hide resolved
doc/website/advanced/iceoray-on-32-bit.md Outdated Show resolved Hide resolved
doc/website/advanced/iceoray-on-32-bit.md Outdated Show resolved Hide resolved
doc/website/advanced/iceoray-on-32-bit.md Outdated Show resolved Hide resolved
elfenpiff
elfenpiff previously approved these changes Sep 27, 2024
@elBoberido elBoberido merged commit 00c5349 into eclipse-iceoryx:main Sep 27, 2024
27 checks passed
@elBoberido elBoberido deleted the iox-2301-mixed-mode-32-and-64-bit branch September 27, 2024 12:54
@elBoberido elBoberido linked an issue Sep 27, 2024 that may be closed by this pull request
9 tasks
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.

32-Bit Support
2 participants