mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
memory: add a sparse memory device for fuzzing
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>
This commit is contained in:
parent
d7da0e5601
commit
230376d285
4 changed files with 172 additions and 0 deletions
19
include/hw/mem/sparse-mem.h
Normal file
19
include/hw/mem/sparse-mem.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* A sparse memory device. Useful for fuzzing
|
||||
*
|
||||
* Copyright Red Hat Inc., 2021
|
||||
*
|
||||
* Authors:
|
||||
* Alexander Bulekov <alxndr@bu.edu>
|
||||
*
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
||||
* See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef SPARSE_MEM_H
|
||||
#define SPARSE_MEM_H
|
||||
#define TYPE_SPARSE_MEM "sparse-mem"
|
||||
|
||||
MemoryRegion *sparse_mem_init(uint64_t addr, uint64_t length);
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue