Repository navigation
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #7811
Proposed Changes
parent_pool_->get_used_processing_unit(worker_idx), with a size-safe fallback for standalone schedulers.HPX_ASSERTchecks that incorrectly assumed PU masks were limited to a single pool, preventing assertion failures and out-of-bounds writes in multi-pool configurations.scheduler_mode_7811regression test to verify correct worker targeting with partial PU masks and safe operation of unmasked setters across multiple pools.Any background context you want to provide?
Previously, scheduler mode operations mapped the n-th set bit in
pu_maskto the n-th worker, regardless of the worker's actual PU binding. This caused partial masks to modify the wrong workers and pools with no matching PUs to modify their workers unnecessarily. Unmasked setters could also trigger assertions in Debug builds and cause out-of-bounds writes in Release builds when the mask spanned multiple pools.The fix maps each worker to its actual PU, ensures the parent pool is available during initial mode configuration, and removes the invalid single-pool assumptions.
Checklist
Not all points below apply to all pull requests.