[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 09/16] memory: add a sparse memory device for fuzzing
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PULL 09/16] memory: add a sparse memory device for fuzzing |
Date: |
Tue, 6 Apr 2021 15:29:05 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 |
On 3/16/21 10:15 PM, Paolo Bonzini wrote:
> From: Alexander Bulekov <alxndr@bu.edu>
>
> For testing, it can be useful to simulate an enormous amount of memory
> (e.g. 2^64 RAM). This adds an MMIO device that acts as sparse memory.
> When something writes a nonzero value to a sparse-mem address, we
> allocate a block of memory. For now, since the only user of this device
> is the fuzzer, we do not track and free zeroed blocks. The device has a
> very low priority (so it can be mapped beneath actual RAM, and virtual
> device MMIO regions).
>
> Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
> Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> MAINTAINERS | 1 +
> hw/mem/meson.build | 1 +
> hw/mem/sparse-mem.c | 151 ++++++++++++++++++++++++++++++++++++
> include/hw/mem/sparse-mem.h | 19 +++++
> 4 files changed, 172 insertions(+)
> create mode 100644 hw/mem/sparse-mem.c
> create mode 100644 include/hw/mem/sparse-mem.h
> diff --git a/hw/mem/meson.build b/hw/mem/meson.build
> index 0d22f2b572..ef79e04678 100644
> --- a/hw/mem/meson.build
> +++ b/hw/mem/meson.build
> @@ -1,5 +1,6 @@
> mem_ss = ss.source_set()
> mem_ss.add(files('memory-device.c'))
> +mem_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
> mem_ss.add(when: 'CONFIG_DIMM', if_true: files('pc-dimm.c'))
> mem_ss.add(when: 'CONFIG_NPCM7XX', if_true: files('npcm7xx_mc.c'))
> mem_ss.add(when: 'CONFIG_NVDIMM', if_true: files('nvdimm.c'))
Completing the diff:
>
> softmmu_ss.add_all(when: 'CONFIG_MEM_DEVICE', if_true: mem_ss)
There is a problem when MEM_DEVICE is not selected, sparse-mem
is not linked (even if CONFIG_FUZZ is selected):
tests/qtest/fuzz/generic_fuzz.c:826: undefined reference to
`sparse_mem_init'
clang-10: error: linker command failed with exit code 1 (use -v to see
invocation)
Easy fix:
-- >8 --
--- a/hw/mem/meson.build
+++ b/hw/mem/meson.build
@@ -1,8 +1,9 @@
mem_ss = ss.source_set()
mem_ss.add(files('memory-device.c'))
mem_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
-mem_ss.add(when: 'CONFIG_DIMM', if_true: files('pc-dimm.c'))
mem_ss.add(when: 'CONFIG_NPCM7XX', if_true: files('npcm7xx_mc.c'))
mem_ss.add(when: 'CONFIG_NVDIMM', if_true: files('nvdimm.c'))
softmmu_ss.add_all(when: 'CONFIG_MEM_DEVICE', if_true: mem_ss)
+
+softmmu_ss.add(when: 'CONFIG_FUZZ', if_true: files('sparse-mem.c'))
---
Patch coming.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PULL 09/16] memory: add a sparse memory device for fuzzing,
Philippe Mathieu-Daudé <=