On Wed, Sep 18, 2019 at 11:19:44PM +0000, Oleinik, Alexander wrote: > diff --git a/exec.c b/exec.c > index 235d6bc883..d3838f4ea4 100644 > --- a/exec.c > +++ b/exec.c > @@ -2295,7 +2295,9 @@ static void ram_block_add(RAMBlock *new_block, Error **errp, bool shared) > qemu_ram_setup_dump(new_block->host, new_block->max_length); > qemu_madvise(new_block->host, new_block->max_length, QEMU_MADV_HUGEPAGE); > /* MADV_DONTFORK is also needed by KVM in absence of synchronous MMU */ > +#ifndef CONFIG_FUZZ /* This conflicts with fork-based fuzzing */ > qemu_madvise(new_block->host, new_block->max_length, QEMU_MADV_DONTFORK); > +#endif > ram_block_notify_add(new_block->host, new_block->max_length); > } > } I didn't check Makefile changes but regular softmmu binaries should continue to work with --enable-fuzzing so we cannot use #ifdef here. Perhaps this should be a runtime check similar to qtest_enabled(): /* The fuzzer's fork child requires access to guest RAM */ if (!fuzz_enabled()) { qemu_madvise(new_block->host, new_block->max_length, QEMU_MADV_DONTFORK); }