eclipse-iceoryx / iceoryx

Eclipse iceoryx™ - true zero-copy inter-process-communication
https://iceoryx.io
Apache License 2.0
1.65k stars 384 forks source link

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

Closed elBoberido closed 4 days ago

elBoberido commented 1 week ago

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

Checklist for the PR Reviewer

Post-review Checklist for the PR Author

  1. [x] All open points are addressed and tracked via issues

References

codecov[bot] commented 1 week ago

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 :warning:
iceoryx_hoofs/concurrent/sync/source/spin_lock.cpp 81.63% 5 Missing and 4 partials :warning:
...yx_hoofs/concurrent/sync/source/spin_semaphore.cpp 91.66% 1 Missing and 3 partials :warning:
...eoryx_hoofs/posix/sync/source/semaphore_helper.cpp 76.92% 3 Missing :warning:
...osh/source/popo/building_blocks/locking_policy.cpp 75.00% 0 Missing and 2 partials :warning:
Additional details and impacted files [![Impacted file tree graph](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348/graphs/tree.svg?width=650&height=150&src=pr&token=KWu8wdCc1S&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx)](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx) ```diff @@ 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](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx) | Coverage Δ | | |---|---|---| | [unittests](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx) | `78.15% <77.40%> (-5.27%)` | :arrow_down: | | [unittests_timing](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx) | `15.07% <25.48%> (-1.98%)` | :arrow_down: | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx#carryforward-flags-in-the-pull-request-comment) to find out more. | [Files with missing lines](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx) | Coverage Δ | | |---|---|---| | [...yx\_hoofs/concurrent/sync/include/iox/spin\_lock.hpp](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree&filepath=iceoryx_hoofs%2Fconcurrent%2Fsync%2Finclude%2Fiox%2Fspin_lock.hpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx#diff-aWNlb3J5eF9ob29mcy9jb25jdXJyZW50L3N5bmMvaW5jbHVkZS9pb3gvc3Bpbl9sb2NrLmhwcA==) | `100.00% <100.00%> (ø)` | | | [...ofs/concurrent/sync/include/iox/spin\_semaphore.hpp](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree&filepath=iceoryx_hoofs%2Fconcurrent%2Fsync%2Finclude%2Fiox%2Fspin_semaphore.hpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx#diff-aWNlb3J5eF9ob29mcy9jb25jdXJyZW50L3N5bmMvaW5jbHVkZS9pb3gvc3Bpbl9zZW1hcGhvcmUuaHBw) | `100.00% <100.00%> (ø)` | | | [...ceoryx\_hoofs/design/include/iox/lock\_interface.hpp](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree&filepath=iceoryx_hoofs%2Fdesign%2Finclude%2Fiox%2Flock_interface.hpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx#diff-aWNlb3J5eF9ob29mcy9kZXNpZ24vaW5jbHVkZS9pb3gvbG9ja19pbnRlcmZhY2UuaHBw) | `100.00% <100.00%> (ø)` | | | [...x\_hoofs/design/include/iox/semaphore\_interface.hpp](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree&filepath=iceoryx_hoofs%2Fdesign%2Finclude%2Fiox%2Fsemaphore_interface.hpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx#diff-aWNlb3J5eF9ob29mcy9kZXNpZ24vaW5jbHVkZS9pb3gvc2VtYXBob3JlX2ludGVyZmFjZS5ocHA=) | `100.00% <100.00%> (ø)` | | | [iceoryx\_hoofs/posix/sync/include/iox/mutex.hpp](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree&filepath=iceoryx_hoofs%2Fposix%2Fsync%2Finclude%2Fiox%2Fmutex.hpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx#diff-aWNlb3J5eF9ob29mcy9wb3NpeC9zeW5jL2luY2x1ZGUvaW94L211dGV4LmhwcA==) | `100.00% <100.00%> (ø)` | | | [...x\_hoofs/posix/sync/include/iox/named\_semaphore.hpp](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree&filepath=iceoryx_hoofs%2Fposix%2Fsync%2Finclude%2Fiox%2Fnamed_semaphore.hpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx#diff-aWNlb3J5eF9ob29mcy9wb3NpeC9zeW5jL2luY2x1ZGUvaW94L25hbWVkX3NlbWFwaG9yZS5ocHA=) | `100.00% <ø> (ø)` | | | [...hoofs/posix/sync/include/iox/unnamed\_semaphore.hpp](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree&filepath=iceoryx_hoofs%2Fposix%2Fsync%2Finclude%2Fiox%2Funnamed_semaphore.hpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx#diff-aWNlb3J5eF9ob29mcy9wb3NpeC9zeW5jL2luY2x1ZGUvaW94L3VubmFtZWRfc2VtYXBob3JlLmhwcA==) | `100.00% <ø> (ø)` | | | [...ceoryx\_hoofs/posix/sync/source/named\_semaphore.cpp](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree&filepath=iceoryx_hoofs%2Fposix%2Fsync%2Fsource%2Fnamed_semaphore.cpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx#diff-aWNlb3J5eF9ob29mcy9wb3NpeC9zeW5jL3NvdXJjZS9uYW1lZF9zZW1hcGhvcmUuY3Bw) | `58.47% <100.00%> (-4.03%)` | :arrow_down: | | [...oryx\_hoofs/posix/sync/source/unnamed\_semaphore.cpp](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree&filepath=iceoryx_hoofs%2Fposix%2Fsync%2Fsource%2Funnamed_semaphore.cpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx#diff-aWNlb3J5eF9ob29mcy9wb3NpeC9zeW5jL3NvdXJjZS91bm5hbWVkX3NlbWFwaG9yZS5jcHA=) | `48.83% <100.00%> (+0.18%)` | :arrow_up: | | [...l/popo/building\_blocks/condition\_variable\_data.hpp](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree&filepath=iceoryx_posh%2Finclude%2Ficeoryx_posh%2Finternal%2Fpopo%2Fbuilding_blocks%2Fcondition_variable_data.hpp&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx#diff-aWNlb3J5eF9wb3NoL2luY2x1ZGUvaWNlb3J5eF9wb3NoL2ludGVybmFsL3BvcG8vYnVpbGRpbmdfYmxvY2tzL2NvbmRpdGlvbl92YXJpYWJsZV9kYXRhLmhwcA==) | `100.00% <ø> (ø)` | | | ... and [6 more](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx) | | ... and [172 files with indirect coverage changes](https://app.codecov.io/gh/eclipse-iceoryx/iceoryx/pull/2348/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=eclipse-iceoryx)