[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 06/19] fuzz: Add ramfile for fast vmstate/vmload
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [RFC 06/19] fuzz: Add ramfile for fast vmstate/vmload |
Date: |
Fri, 26 Jul 2019 13:47:45 +0100 |
User-agent: |
Mutt/1.12.0 (2019-05-25) |
On Thu, Jul 25, 2019 at 03:23:49AM +0000, Oleinik, Alexander wrote:
> The ramfile allows vmstate to be saved and restored directly onto the
> heap.
>
> Signed-off-by: Alexander Oleinik <address@hidden>
> ---
> tests/fuzz/ramfile.c | 127 +++++++++++++++++++++++++++++++++++++++++++
> tests/fuzz/ramfile.h | 20 +++++++
> 2 files changed, 147 insertions(+)
> create mode 100644 tests/fuzz/ramfile.c
> create mode 100644 tests/fuzz/ramfile.h
>
> diff --git a/tests/fuzz/ramfile.c b/tests/fuzz/ramfile.c
> new file mode 100644
> index 0000000000..8da242e9ee
> --- /dev/null
> +++ b/tests/fuzz/ramfile.c
Please put this in migration/. This code doesn't do fuzzing and is
general-purpose enough to be used by other parts of QEMU dealing with
live migration.
> @@ -0,0 +1,127 @@
> +/*
> + *
> =====================================================================================
> + *
> + * Filename: ramfile.c
> + *
> + * Description: QEMUFile stored in dynamically allocated RAM for fast
> VMRestore
> + *
> + * Author: Alexander Oleinik (), address@hidden
> + * Organization:
> + *
> + *
> =====================================================================================
> + */
Please use license headers with all new files that are created.
Fine-grained filename and authorship information is already kept by git
so it's not necessary to duplicate it here.
> +#include <stdlib.h>
> +#include "qemu/osdep.h"
osdep.h already includes stdlib.h.
> +#include "qemu-common.h"
> +#include "exec/memory.h"
> +#include "migration/qemu-file.h"
> +#include "migration/migration.h"
> +#include "migration/savevm.h"
> +#include "ramfile.h"
> +
> +#define INCREMENT 10240
> +#define IO_BUF_SIZE 32768
> +#define MAX_IOV_SIZE MIN(IOV_MAX, 64)
> +
> +struct QEMUFile {
> + const QEMUFileOps *ops;
> + const QEMUFileHooks *hooks;
> + void *opaque;
> +
> + int64_t bytes_xfer;
> + int64_t xfer_limit;
> +
> + int64_t pos; /* start of buffer when writing, end of buffer
> + when reading */
> + int buf_index;
> + int buf_size; /* 0 when writing */
> + uint8_t buf[IO_BUF_SIZE];
> +
> + DECLARE_BITMAP(may_free, MAX_IOV_SIZE);
> + struct iovec iov[MAX_IOV_SIZE];
> + unsigned int iovcnt;
> +
> + int last_error;
> +};
Wait, what?! :)
Please add the ram file to qemu-file.c instead of duplicating QEMUFile.
signature.asc
Description: PGP signature
- Re: [Qemu-devel] [RFC 07/19] fuzz: Modify libqtest to directly invoke qtest.c, (continued)
- [Qemu-devel] [RFC 08/19] fuzz: add shims to intercept libfuzzer init, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 03/19] fuzz: add fuzz accelerator, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 05/19] fuzz: expose qemu_savevm_state & skip state header, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 06/19] fuzz: Add ramfile for fast vmstate/vmload, Oleinik, Alexander, 2019/07/24
- Re: [Qemu-devel] [RFC 06/19] fuzz: Add ramfile for fast vmstate/vmload,
Stefan Hajnoczi <=
- [Qemu-devel] [RFC 04/19] fuzz: Add qos support to fuzz targets, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 12/19] fuzz: hard-code all of the needed files for build, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 09/19] fuzz: use mtree_info to find mapped addresses, Oleinik, Alexander, 2019/07/24
- [Qemu-devel] [RFC 10/19] fuzz: expose real_main (aka regular vl.c:main), Oleinik, Alexander, 2019/07/24