-
-
Notifications
You must be signed in to change notification settings - Fork 133
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
Bochscpu: edge coverage #137
Conversation
Amazing! Let me review this when I'm back from Hexacon 🙂 Cheers |
…ook, nits here and there, runstats for edges
I tried to fix up a few things, mainly removing the special path for the Cheers |
My initial intent was to replace the RIP coverage with edge coverage, I also expected the option to only be used in the fuzz mode. In terms of exploration, it probably does not matter. Having the RIP actually helps when combining bochscpu with other fuzzers running the KVM backend. After running the bochscpu edge fuzzers on the initial corpus, starting KVM backends would add spurious samples to the corpus if RIP was not registered as coverage. I do not have any strong opinion on the matter I did not thought about the edges stats, that's great. |
Also tagging @yrp604 to take a look at this whenever he has a minute. Cheers |
This looks good to me. There are major perf advantages if we can avoid the overhead of per-instruction hooks which this gets us closer to switching to. With this plus something like the kvm breakpoint strategy it might be possible? |
That's a good idea - I don't think it should be hard to move away from those callbacks actually. If I'm not mistaken, we're only using them for coverage, tracing and breakpoints. We'd just need to turn on edge coverage by default and implement breakpoints without the hook. I filed #141 to investigate the speed-up and implement if it looks good. I am currently pushing a few changes to Cheers |
Okay all the bxcpu changes have landed, I've updated the header / the binaries. I've run it through old snapshot / traces and there seems to be an issue somewhere.. I'll have to debug what's going on tomorrow 😔. Cheers |
…is used to have no effect. This was fixed in bx (see 0vercl0k#140), so old dumps running w/ newer version of wtf will fire #GPs on `ldmscxr` instructions. To avoid that issue, let's detect screwed up values and fix them up ourselves.
Okay I investigated what was going on. Basically, the old dump I ran my test one must have been dumped with an old version of I've run a trace through an old dump and they are now the same which is great:
And same with
@clslgrnc I'm not sure if you still have old dump / states, but it'd be nice if you could give this a shot as well to build confidence but no worries if you have moved on / have no more time to spend on this, I understand 🙂 I'll try to bench perfs between the two versions and if I don't hear back in a week or so will merge as is! Cheers |
Unfortunately my disk died recently. I did not backup my dumps and I won't have time to generate new ones before next year. Thanks for the good work best |
No worries at all Colas, I hope you didn't lose anything important 🤞🏽😅
Cheers
…On Fri, Dec 16, 2022 at 4:44 AM Colas Le Guernic ***@***.***> wrote:
@clslgrnc <https://github.com/clslgrnc> I'm not sure if you still have
old dump / states, but it'd be nice if you could give this a shot as well
to build confidence but no worries if you have moved on / have no more time
to spend on this, I understand slightly_smiling_face
Unfortunately my disk died recently. I did not backup my dumps and I won't
have time to generate new ones before next year.
Thanks for the good work
best
—
Reply to this email directly, view it on GitHub
<#137 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AALIORLOSMBKIZMAFPIFP5LWNRP2BANCNFSM6AAAAAARAX2ILE>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Fortunately no |
Enable edge coverage for the Bochscpu backend