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

dvyukov jobs optimizations #4957

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

dvyukov
Copy link
Collaborator

@dvyukov dvyukov commented Jul 1, 2024

  • prog: reduce amount of hint replacements
  • pkg/fuzzer: optimize smash jobs
  • pkg/fuzzer: remove signal rotation
  • pkg/fuzzer: try to triage on different VMs
  • pkg/fuzzer: tune corpus triage
  • pkg/fuzzer: issue minimize attempts in parallel
  • executor: restart procs more deterministically
  • pkg/fuzzer: deflake hints 3 times instead of 2

@dvyukov dvyukov force-pushed the dvyukov-jobs-optimizations branch from 070e676 to d76aed1 Compare July 1, 2024 14:40
@dvyukov dvyukov requested a review from a-nogikh July 1, 2024 14:42
@dvyukov dvyukov force-pushed the dvyukov-jobs-optimizations branch 2 times, most recently from d3b04af to 972f3fe Compare July 1, 2024 15:46
@dvyukov dvyukov force-pushed the dvyukov-jobs-optimizations branch from 972f3fe to 53b7406 Compare July 3, 2024 12:49
Distribute triage requests to different VMs.
Use 2/6 criteria during corpus triage.
See the large added comment for details.
Hints can produce insane amounts of candidates (up to 30K).
So run deflaking one more time, even if it reduces amount
of candidates by few percents, it's still profitable.
Currently we force restart in rpcserver, but this has 2 problems:
1. It does not know the proc where the requets will land.
2. It does not take into account if the proc has already restarted
recently for other reasons.

Restart procs in executor only if they haven't restarted recenlty.

Also make it deterministic. Given all other randomess we have,
there does not seem to be a reason to use randomized restarts
and restart after fewer/more runs.

Also restart only after corpus triage.
Corpus triage is slow already and there does not seem to be enough
benefit to restart during corpus triage.

Also restart at most 1 proc at a time,
since there are lots of serial work in the kernel.
We are getting too many generated candidates, the fuzzer may not keep up
with them at all (hints jobs keep growing infinitely). If a hint indeed came
from the input w/o transformation, then we should guess it on the first
attempt (or at least after few attempts). If it did not come from the input,
or came with a non-trivial transformation, then any number of attempts won't
help. So limit the total number of attempts (until the next restart).
@dvyukov dvyukov force-pushed the dvyukov-jobs-optimizations branch from 53b7406 to cfda6fe Compare July 3, 2024 16:42
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.

None yet

2 participants