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

use trailing_zeros for threadset iteration #3871

Merged
merged 2 commits into from
Dec 3, 2024

Conversation

apfitzge
Copy link

@apfitzge apfitzge commented Dec 2, 2024

Problem

  • Checking many indexes that do not need to be checked
  • Have seen select_thread showing up in profiles, think it is likely due to this

Summary of Changes

  • Use trailing_zeros and modify value to iterator thread-sets

Fixes #

@apfitzge apfitzge self-assigned this Dec 2, 2024
@apfitzge apfitzge marked this pull request as ready for review December 3, 2024 01:30
@apfitzge apfitzge requested review from bw-solana and ksolana December 3, 2024 01:30
Copy link

@bw-solana bw-solana left a comment

Choose a reason for hiding this comment

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

LGTM

None
} else {
let thread_id = self.0.trailing_zeros() as ThreadId;
self.0 &= self.0 - 1;

Choose a reason for hiding this comment

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

I had to stare at this for longer than I'd care to admit, but looks good 👍

Copy link

Choose a reason for hiding this comment

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

neat trick!

Copy link

Choose a reason for hiding this comment

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

I had to stare at this for longer than I'd care to admit, but looks good 👍

this is usually sufficient to justify a code comment for the sake of future maintainers

@apfitzge apfitzge merged commit ec8ba13 into anza-xyz:master Dec 3, 2024
40 checks passed
@apfitzge apfitzge deleted the thread_set_faster_iterator branch December 3, 2024 16:18
@apfitzge apfitzge added the v2.1 Backport to v2.1 branch label Dec 3, 2024
Copy link

mergify bot commented Dec 3, 2024

Backports to the beta branch are to be avoided unless absolutely necessary for fixing bugs, security issues, and perf regressions. Changes intended for backport should be structured such that a minimum effective diff can be committed separately from any refactoring, plumbing, cleanup, etc that are not strictly necessary to achieve the goal. Any of the latter should go only into master and ride the normal stabilization schedule. Exceptions include CI/metrics changes, CLI improvements and documentation updates on a case by case basis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v2.1 Backport to v2.1 branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants