-
-
Notifications
You must be signed in to change notification settings - Fork 322
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
Make Launcher use ClientDescription instead of CoreId #2676
Conversation
* Replace addr_of with &raw across the codebase * fix fixes * more fix * undo clang fmt? * oops * fix? * allocator fix * more fix * more more * more docs * more fix * mas mas mas * hm * more * fix Frida * needed * more error * qemu
* Trying to redo workspace deps again after AFLplusplus#2672 * unused * clippy
* Replace addr_of with &raw across the codebase * fix fixes * more fix * undo clang fmt? * oops * fix? * allocator fix * more fix * more more * more docs * more fix * mas mas mas * hm * more * fix Frida * needed * more error * qemu
* Trying to redo workspace deps again after AFLplusplus#2672 * unused * clippy
bb29735
to
7e1fe97
Compare
…I and local formatting
I also noticed that the version fixing for the formatter in the CI was still broken, so I fixed it. That's why there are so many commits… And so many other random little improvements. |
Both remaining failing CI runs seem like they are timeouts, and they both work on my machine locally. I'm not sure why they start appearing and if we should increase the timeouts or otherwise do something to get them to behave more consistently. |
We already have a LibAFL/libafl_bolts/src/lib.rs Line 175 in e32b3ea
|
I think there are two ways: |
What I would like is that the
|
Yeah that might just work, I think. But the idea about |
For how CoreId is used right now, see:
|
I'll try this in another branch, too many changes to revert. And I want to leave this here in case it's ever needed again. |
* timeout doc * clp * FMT
* timeout doc * clp * FMT * more
Alright, i've done the renaming. Not sure why the CI breaks. |
Ah, #2715 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Anyone know why launcher compared cores to enumerator values instead of the actual cores? I changed it, but don't know if there is a reason behind it. Just seemed odd.
Old version (example):
for (id, bind_to) in core_ids.iter().enumerate() {
if self.cores.ids.iter().any(|&x| x == id.into()) {
for bind_to in core_ids { | ||
if self.cores.ids.iter().any(|&x| x == bind_to) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Occurrence 1
for core_id in core_ids { | ||
if self.cores.ids.iter().any(|&x| x == core_id) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Occurrence 2
for bind_to in core_ids { | ||
if self.cores.ids.iter().any(|&x| x == bind_to) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Occurrence 3
@domenukk opinions? On the above and generally this PR? Or who do I ask? |
@@ -12,66 +12,52 @@ | |||
//! On `Unix` systems, the [`Launcher`] will use `fork` if the `fork` feature is used for `LibAFL`. | |||
//! Else, it will start subsequent nodes with the same commandline, and will set special `env` variables accordingly. | |||
|
|||
use alloc::string::ToString; | |||
#[cfg(feature = "std")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for deleting this
No idea. but it should be the same as it is iterating over what core id cpus have. but it's better with your change |
yeah looks good |
There may be more than one client running on each core, as per #2670.
The
ClientId
struct includes a reference to theCoreId
, but has its own id that is unique for each client. Right now, this is independent of the LLMP ClientId, and I'm not sure I'm the right person to merge those, since I've never touched LLMP.Also: I added overcommit to one of the example fuzzer as a (in the Makefile unused) command line arg, so users see that it exists.
@domenukk I didn't see you merged the other PR until I was already done with this…