= dimm->hostmem;
>
> -error_setg(errp, "'unarmed' property must be off since memdev %s "
> +error_setg(errp, "'unarmed' property must be on since memdev %s "
> "is read-only",
> object_get_canonical_path_component(OBJECT(hostmem)));
> return;
With the suggested minor change.
Reviewed-by: Pankaj Gupta
false,
> +#"use-started": true
> +# }
> +#}
> +#
> +# 2. Poll for the status of virtio-net (vhost-net is active)
> +#
> +# -> { "execute": "x-query-virtio-status",
> +# "arguments": { "path":
> "/machine/peripheral-anon/device[1]/virtio-backend" }
> +#}
> +# <- { "return": {
> +#"device-endian": "little",
> +#"bus-name": "",
> +#"disabled-legacy-check": false,
> +#"name": "virtio-net",
> +#"started": true,
> +#"device-id": 1,
> +#"vhost-dev": {
> +# "n-tmp-sections": 4,
> +# "n-mem-sections": 4,
> +# "max-queues": 1,
> +# "backend-cap": 2,
> +# "log-size": 0,
> +# "backend-features": 0,
> +# "nvqs": 2,
> +# "protocol-features": 0,
> +# "vq-index": 0,
> +# "log-enabled": false,
> +# "acked-features": 5100306432,
> +# "features": 13908344832
> +#},
> +#"backend-features": 6337593319,
> +#"start-on-kick": false,
> +#"isr": 1,
> +#"broken": false,
> +#"status": 15,
> +#"num-vqs": 3,
> +#"guest-features": 5111807911,
> +#"host-features": 6337593319,
> +#"use-guest-notifier-mask": true,
> +#"vm-running": true,
> +#"queue-sel": 2,
> +#"disabled": false,
> +#"vhost-started": true,
> +#"use-started": true
> +# }
> +#}
> +#
> +##
> +
> +{ 'command': 'x-query-virtio-status',
> + 'data': { 'path': 'str' },
> + 'returns': 'VirtioStatus',
> + 'features': [ 'unstable' ] }
Reviewed-by: Pankaj Gupta
> +# "path": "/machine/peripheral-anon/device[2]/virtio-backend",
> +#"name": "virtio-scsi"
> +#},
> +#{
> +#"path": "/machine/peripheral-anon/device[1]/virtio-backend",
> +#"name": "virtio-net"
> +#},
> +#{
> +#"path": "/machine/peripheral-anon/device[0]/virtio-backend",
> +#"name": "virtio-serial"
> +#}
> +# ]
> +#}
> +#
> +##
> +
> +{ 'command': 'x-query-virtio',
> + 'returns': [ 'VirtioInfo' ],
> + 'features': [ 'unstable' ] }
> diff --git a/tests/qtest/qmp-cmd-test.c b/tests/qtest/qmp-cmd-test.c
> index 7f103ea..fd00ee2 100644
> --- a/tests/qtest/qmp-cmd-test.c
> +++ b/tests/qtest/qmp-cmd-test.c
> @@ -103,6 +103,7 @@ static bool query_is_ignored(const char *cmd)
> "query-gic-capabilities", /* arm */
> /* Success depends on target-specific build configuration: */
> "query-pci", /* CONFIG_PCI */
> +"x-query-virtio", /* CONFIG_VIRTIO */
> /* Success depends on launching SEV guest */
> "query-sev-launch-measure",
> /* Success depends on Host or Hypervisor SEV support */
Reviewed-by: Pankaj Gupta
-common.h
> index d8b565b..076b7ab 100644
> --- a/include/hw/virtio/vhost-vsock-common.h
> +++ b/include/hw/virtio/vhost-vsock-common.h
> @@ -44,7 +44,7 @@ int vhost_vsock_common_start(VirtIODevice *vdev);
> void vhost_vsock_common_stop(VirtIODevice *vdev);
> int vhost_vsock_common_pre_save(void *opaque);
> int vhost_vsock_common_post_load(void *opaque, int version_id);
> -void vhost_vsock_common_realize(VirtIODevice *vdev, const char *name);
> +void vhost_vsock_common_realize(VirtIODevice *vdev);
> void vhost_vsock_common_unrealize(VirtIODevice *vdev);
> uint64_t vhost_vsock_common_get_features(VirtIODevice *vdev, uint64_t
> features,
> Error **errp);
> diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
> index 2179b75..afff9e1 100644
> --- a/include/hw/virtio/virtio-gpu.h
> +++ b/include/hw/virtio/virtio-gpu.h
> @@ -22,6 +22,7 @@
> #include "sysemu/vhost-user-backend.h"
>
> #include "standard-headers/linux/virtio_gpu.h"
> +#include "standard-headers/linux/virtio_ids.h"
> #include "qom/object.h"
>
> #define TYPE_VIRTIO_GPU_BASE "virtio-gpu-base"
> @@ -37,8 +38,6 @@ OBJECT_DECLARE_SIMPLE_TYPE(VirtIOGPUGL, VIRTIO_GPU_GL)
> #define TYPE_VHOST_USER_GPU "vhost-user-gpu"
> OBJECT_DECLARE_SIMPLE_TYPE(VhostUserGPU, VHOST_USER_GPU)
>
> -#define VIRTIO_ID_GPU 16
> -
> struct virtio_gpu_simple_resource {
> uint32_t resource_id;
> uint32_t width;
> diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
> index f095637..2a0be70 100644
> --- a/include/hw/virtio/virtio.h
> +++ b/include/hw/virtio/virtio.h
> @@ -165,8 +165,8 @@ struct VirtioDeviceClass {
> void virtio_instance_init_common(Object *proxy_obj, void *data,
> size_t vdev_size, const char *vdev_name);
>
> -void virtio_init(VirtIODevice *vdev, const char *name,
> - uint16_t device_id, size_t config_size);
> +void virtio_init(VirtIODevice *vdev, uint16_t device_id, size_t config_size);
> +
> void virtio_cleanup(VirtIODevice *vdev);
>
> void virtio_error(VirtIODevice *vdev, const char *fmt, ...) GCC_FMT_ATTR(2,
> 3);
Reviewed-by: Pankaj Gupta
ERROR(errp, "Error: could not set REUSEADDR option");
> +goto err_dest_init_bind_addr;
> +}
> for (e = res; e != NULL; e = e->ai_next) {
> inet_ntop(e->ai_family,
> &((struct sockaddr_in *) e->ai_dst_addr)->sin_addr, ip, sizeof
> ip);
Reviewed-by: Pankaj Gupta
> > > > migration/rdma.c | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/migration/rdma.c b/migration/rdma.c
> > > > index c7c7a384875b..2e223170d06d 100644
> > > > --- a/migration/rdma.c
> > > > +++ b/migration/rdma.c
> > > > @@ -4238,7 +4238,7 @@ void
> > > So it can handle more incoming requests.
> > >
> > > Signed-off-by: Jack Wang
> > > ---
> > > migration/rdma.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/migration/rdma.c b/migration/rdma.c
> > > index c7c7a384875b..2e223170d06d 100644
> > > ---
> > > This allow address could be reused to avoid rdma_bind_addr error
> > > out.
> >
> > Seems we are proposing to allow multiple connections on same source ip
> > port pair?
> according to the man page, it's more about the destination side which
> is the incoming side.[1]
By source here I meant
> This allow address could be reused to avoid rdma_bind_addr error
> out.
Seems we are proposing to allow multiple connections on same source ip
port pair?
>
> Signed-off-by: Jack Wang
> ---
> migration/rdma.c | 7 +++
> 1 file changed, 7 insertions(+)
>
> diff --git a/migration/rdma.c
> So it can handle more incoming requests.
>
> Signed-off-by: Jack Wang
> ---
> migration/rdma.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/migration/rdma.c b/migration/rdma.c
> index c7c7a384875b..2e223170d06d 100644
> --- a/migration/rdma.c
> +++
> > I mean, that would be fundamentally broken, because the fsync() would
> > corrupt the file. So I assume in a sane environment, the dst could only
> > have stale clean pagecache pages. And we'd have to get rid of these to
> > re-read everything from file.
> > >>>
> > >>> In
> I mean, that would be fundamentally broken, because the fsync() would
> corrupt the file. So I assume in a sane environment, the dst could only
> have stale clean pagecache pages. And we'd have to get rid of these to
> re-read everything from file.
> >>>
> >>> In case of
> >> I mean, that would be fundamentally broken, because the fsync() would
> >> corrupt the file. So I assume in a sane environment, the dst could only
> >> have stale clean pagecache pages. And we'd have to get rid of these to
> >> re-read everything from file.
> >
> > In case of write back cache
Thank you David for replying!
> > From: Pankaj Gupta >
> >
> > Enable live migration support for virtio-pmem device.
> > Tested this: with live migration on same host.
> >
> > Need suggestion on below points to support virtio-pmem live migration
> > be
> Cc: Michael S. Tsirkin
> Cc: Pankaj Gupta
> Cc: Daniel P. Berrangé
> Cc: Michal Privoznik
> Signed-off-by: David Hildenbrand
> ---
> util/oslib-posix.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/util/oslib-posix.c b/util/oslib-posix.c
> index
From: Pankaj Gupta >
Enable live migration support for virtio-pmem device.
Tested this: with live migration on same host.
Need suggestion on below points to support virtio-pmem live migration
between two separate host systems:
- There is still possibility of stale page cache p
CESSIBLE_PROP,
> VirtIOMEM,
> -unplugged_inaccessible, ON_OFF_AUTO_OFF),
> +unplugged_inaccessible, ON_OFF_AUTO_AUTO),
> #endif
> DEFINE_PROP_END_OF_LIST(),
> };
With correction in commit message pointed by Michal.
Reviewed-by: Pankaj Gupta
Update nvdimm option value in example command from "-machine pc,nvdimm"
to "-machine pc,nvdimm=on" as former complains with the below error:
"qemu-system-x86_64: -machine pc,nvdimm: Expected '=' after parameter 'nvdimm'"
Reviewed-by: Laurent Vivier
Signed-o
; Thanks,
> Laurent
>
> >> Update nvdimm option value in example command from "-machine pc,nvdimm"
> >> to "-machine pc,nvdimm=on" as former complains with the below error:
> >>
> >> "qemu-system-x86_64: -machine pc,nvdimm: Expe
ping
> Update nvdimm option value in example command from "-machine pc,nvdimm"
> to "-machine pc,nvdimm=on" as former complains with the below error:
>
> "qemu-system-x86_64: -machine pc,nvdimm: Expected '=' after parameter
> 'nvdimm'"
>
> Si
E_CCW_MACHINE(6_1, "6.1", false);
>
> diff --git a/include/hw/boards.h b/include/hw/boards.h
> index 463a5514f9..2ae039b74f 100644
> --- a/include/hw/boards.h
> +++ b/include/hw/boards.h
> @@ -247,6 +247,7 @@ struct MachineClass {
> bool nvdimm_supported;
> bool numa_mem_supported;
> bool auto_enable_numa;
> +bool smp_prefer_sockets;
> const char *default_ram_id;
>
> HotplugHandler *(*get_hotplug_handler)(MachineState *machine,
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 06f819177e..451d2cd817 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -238,7 +238,8 @@ SRST
> Historically preference was given to the coarsest topology parameters
> when computing missing values (ie sockets preferred over cores, which
> were preferred over threads), however, this behaviour is considered
> -liable to change.
> +liable to change. Prior to 6.2 the preference was sockets over cores
> +over threads. Since 6.2 the preference is cores over sockets over
> threads.
> ERST
>
> DEF("numa", HAS_ARG, QEMU_OPTION_numa,
> --
Reviewed-by: Pankaj Gupta
> On 2021/8/14 0:30, Pankaj Gupta wrote:
> >> In the real SMP hardware topology world, it's much more likely that
> >> we have high cores-per-socket counts and few sockets totally. While
> >> the current preference of sockets over cores in smp parsing results
> In the real SMP hardware topology world, it's much more likely that
> we have high cores-per-socket counts and few sockets totally. While
> the current preference of sockets over cores in smp parsing results
> in a virtual cpu topology with low cores-per-sockets counts and a
> large number of
> >> In the real SMP hardware topology world, it's much more likely that
> >> we have high cores-per-socket counts and few sockets totally. While
> >> the current preference of sockets over cores in smp parsing results
> >> in a virtual cpu topology with low cores-per-sockets counts and a
> >>
RAM_RESIZEABLE | RAM_PREALLOC |
>RAM_NORESERVE)) == 0);
> assert(!host ^ (ram_flags & RAM_PREALLOC));
> --
> 2.31.1
Reviewed-by: Pankaj Gupta
>
>
* sockets);
> -threads = threads > 0 ? threads : 1;
> -} else if (sockets * dies * cores * threads < cpus) {
> +threads = maxcpus / (sockets * dies * cores);
> + }
> +
> +if (sockets * dies * cores * threads < cpus) {
> error_setg(errp, "cpu topology: "
> "sockets (%u) * dies (%u) * cores (%u) * threads (%u) < "
> "smp_cpus (%u)",
> @@ -750,8 +752,6 @@ static void pc_smp_parse(MachineState *ms,
> SMPConfiguration *config, Error **err
> return;
> }
>
> -maxcpus = maxcpus > 0 ? maxcpus : cpus;
> -
> if (maxcpus < cpus) {
> error_setg(errp, "maxcpus must be equal to or greater than smp");
> return;
Reviewed-by: Pankaj Gupta
setg(errp, "Invalid CPU topology deprecated: "
> +error_setg(errp, "Invalid CPU topology: "
> + "maxcpus must be equal to or greater than smp: "
> "sockets (%u) * dies (%u) * cores (%u) * threads (%u) "
> - "!= maxcpus (%u)",
> - sockets, dies, cores, threads,
> - maxcpus);
> + "== maxcpus (%u) < smp_cpus (%u)",
> + sockets, dies, cores, threads, maxcpus, cpus);
> return;
> }
>
Reviewed-by: Pankaj Gupta
+qapi_free_SMPConfiguration(config);
> }
> -
> -/* sanity-check smp_cpus and max_cpus against mc */
> -if (ms->smp.cpus < mc->min_cpus) {
> -error_setg(errp, "Invalid SMP CPUs %d. The min CPUs "
> - "supported by machine '%s' is %d",
> - ms->smp.cpus,
> - mc->name, mc->min_cpus);
> -} else if (ms->smp.max_cpus > mc->max_cpus) {
> -error_setg(errp, "Invalid SMP CPUs %d. The max CPUs "
> - "supported by machine '%s' is %d",
> - ms->smp.max_cpus,
> - mc->name, mc->max_cpus);
> -}
> -
> -out_free:
> -qapi_free_SMPConfiguration(config);
> }
>
> static void machine_class_init(ObjectClass *oc, void *data)
Looks good.
Reviewed-by: Pankaj Gupta
> In the real SMP hardware topology world, it's much more likely that
> we have high cores-per-socket counts and few sockets totally. While
> the current preference of sockets over cores in smp parsing results
> in a virtual cpu topology with low cores-per-sockets counts and a
> large number of
n false;
> +}
> touch_fn = do_madv_populate_write_pages;
> } else {
> touch_fn = do_touch_pages;
Reviewed-by: Pankaj Gupta
atic bool touch_all_pages(char *area, size_t hpagesize,
> size_t numpages,
> {
> static gsize initialized = 0;
> MemsetContext context = {
> -.num_threads = get_memset_num_threads(smp_cpus),
> + .num_threads = get_memset_num_threads(hpagesize, numpages, smp_cpus),
> };
> size_t numpages_per_thread, leftover;
> void *(*touch_fn)(void *);
Reviewed-by: Pankaj Gupta
'%s' is %d",
> - current_machine->smp.max_cpus,
> + ms->smp.max_cpus,
> mc->name, mc->max_cpus);
> }
>
Reviewed-by: Pankaj Gupta
Update nvdimm option value in example command from "-machine pc,nvdimm"
to "-machine pc,nvdimm=on" as former complains with the below error:
"qemu-system-x86_64: -machine pc,nvdimm: Expected '=' after parameter 'nvdimm'"
Signed-off-by: Pankaj Gupta
---
docs/nvdimm
> > On Mon, Jul 19 2021, Yanan Wang wrote:
> >
> >> Hi,
> >>
> >> This is v2 of the series [1] that I have posted to introduce some smp
> >> parsing
> >> fixes and improvement, much more work has been processed compared to RFC
> >> v1.
> >>
> >> [1]
te *x86ms = X86_MACHINE(machine);
> -Error *local_err = NULL;
>
> microvm_memory_init(mms);
>
> x86_cpus_init(x86ms, CPU_VERSION_LATEST);
> -if (local_err) {
> -error_report_err(local_err);
> - exit(1);
> -}
>
> microvm_devices_init(mms);
> }
> --
> 2.31.1
Reviewed-by: Pankaj Gupta
;implied_opt_name, ,
> _fatal);
> if (help) {
> qemu_opts_print_help(opts_list, true);
> -return;
> +exit(0);
> }
> opts = qdict_new();
> qdict_put(opts, propname, prop);
> --
Reviewed-by: Pankaj Gupta
if (migration_incoming_setup(f, _err)) {
> -error_propagate(errp, local_err);
> +if (!migration_incoming_setup(f, errp)) {
> return;
> }
> migration_incoming_process();
> @@ -703,8 +695,7 @@ void migration_ioc_process_incoming(QIOChannel *ioc,
> Error **errp)
> return;
> }
>
> -if (migration_incoming_setup(f, _err)) {
> -error_propagate(errp, local_err);
> +if (!migration_incoming_setup(f, errp)) {
> return;
> }
>
Reviewed-by: Pankaj Gupta
> >
> > Cc: Paolo Bonzini
> > Cc: "Michael S. Tsirkin"
> > Cc: Igor Mammedov
> > Cc: Eduardo Habkost
> > Cc: Dr. David Alan Gilbert
> > Cc: Marek Kedzierski
> > Cc: Pankaj Gupta
> >
> > David Hilden
ichael S. Tsirkin"
> Cc: Igor Mammedov
> Cc: Eduardo Habkost
> Cc: Dr. David Alan Gilbert
> Cc: Marek Kedzierski
> Cc: Pankaj Gupta
>
> David Hildenbrand (3):
> util/oslib-posix: Support MADV_POPULATE_WRITE for os_mem_prealloc()
> util/oslib-posix: Introduce and
-DEFINE_CCW_MACHINE(6_1, "6.1", true);
> +DEFINE_CCW_MACHINE(6_1, "6.1", false);
>
> static void ccw_machine_6_0_instance_options(MachineState *machine)
> {
> diff --git a/include/hw/boards.h b/include/hw/boards.h
> index b6161cee88..2832f0f8aa 100644
> --- a/include/hw/boards.h
> +++ b/include/hw/boards.h
> @@ -354,6 +354,9 @@ struct MachineState {
> } \
> type_init(machine_initfn##_register_types)
>
> +extern GlobalProperty hw_compat_6_1[];
> +extern const size_t hw_compat_6_1_len;
> +
> extern GlobalProperty hw_compat_6_0[];
> extern const size_t hw_compat_6_0_len;
>
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 88dffe7517..97b4ab79b5 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -196,6 +196,9 @@ void pc_system_parse_ovmf_flash(uint8_t *flash_ptr,
> size_t flash_size);
> void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid,
> const CPUArchIdList *apic_ids, GArray *entry);
>
> +extern GlobalProperty pc_compat_6_1[];
> +extern const size_t pc_compat_6_1_len;
> +
> extern GlobalProperty pc_compat_6_0[];
> extern const size_t pc_compat_6_0_len;
>
> --
Reviewed-by: Pankaj Gupta
i].iov_base,
> pkt->raw[i].iov_len,
> - DMA_DIRECTION_TO_DEVICE, 0);
> +if (pkt->max_raw_frags > 0) {
> +assert(pkt->raw);
> +for (i = 0; i < pkt->raw_frags; i++) {
> +assert(pkt->raw[i].iov_base);
> +pci_dma_unmap(pkt->pci_dev, pkt->raw[i].iov_base,
> + pkt->raw[i].iov_len, DMA_DIRECTION_TO_DEVICE, 0);
> +}
> }
> pkt->raw_frags = 0;
>
Reviewed-by: Pankaj Gupta
b/softmmu/memory.c
> @@ -1811,6 +1811,12 @@ bool memory_region_is_ram_device(MemoryRegion *mr)
> return mr->ram_device;
> }
>
> +bool memory_region_is_mapped_shared(MemoryRegion *mr)
> +{
> +return memory_access_is_direct(mr, false) &&
> + (mr->ram_block->flags & RAM_SHARED);
> +}
> +
> uint8_t memory_region_get_dirty_log_mask(MemoryRegion *mr)
> {
> uint8_t mask = mr->dirty_log_mask;
Reviewed-by: Pankaj Gupta
M," \
> -" -numa node,memdev=mem"
> +"share=on -numa node,memdev=mem"
> #define QEMU_CMD_CHR" -chardev socket,id=%s,path=%s%s"
> #define QEMU_CMD_NETDEV " -netdev vhost-user,id=hs0,chardev=%s,vhostforce"
>
Reviewed-by: Pankaj Gupta
an SMP system with n CPUs. On the PC target, up to 255 CPUs
> are supported. On Sparc32 target, Linux limits the number of usable
> CPUs to 4. For the PC target, the number of cores per die, the
> --
Reviewed-by: Pankaj Gupta
specified. Values for any omitted parameters will be computed
> +from those which are given. Historically preference was given to the
> +coarsest topology parameters when computing missing values (ie sockets
> +preferred over cores, which were preferred over threads), however, this
> +behaviour is considered liable to change.
> ERST
>
> DEF("numa", HAS_ARG, QEMU_OPTION_numa,
> --
Reviewed-by: Pankaj Gupta
ation of the host CPUs in use. In a deployment with a
> mixture of host CPU models between machines, if live migration
> --
Reviewed-by: Pankaj Gupta
ets][,dies=dies][,cores=cores][,threads=threads]``
> Simulate an SMP system with n CPUs. On the PC target, up to 255 CPUs
> are supported. On Sparc32 target, Linux limits the number of usable
> CPUs to 4. For the PC target, the number of cores per die, the
> --
Reviewed-by: Pankaj Gupta
processors on the machine
> */
> typedef struct CpuTopology {
> unsigned int cpus;
> +unsigned int sockets;
> unsigned int dies;
> unsigned int cores;
> unsigned int threads;
> -unsigned int sockets;
> unsigned int max_cpus;
> } CpuTopology;
Reviewed-by: Pankaj Gupta
O_URING
> -typedef struct LuringState LuringState;
> LuringState *luring_init(Error **errp);
> void luring_cleanup(LuringState *s);
> int coroutine_fn luring_co_submit(BlockDriverState *bs, LuringState *s, int
> fd,
> --
Reviewed-by: Pankaj Gupta
maxcpus=maxcpus][,sockets=sockets][,dies=dies][,cores=cores][,threads=threads]``
> Simulate an SMP system with n CPUs. On the PC target, up to 255 CPUs
> are supported. On Sparc32 target, Linux limits the number of usable
> CPUs to 4. For the PC target, the number of cores per die, the
Looks cleaner. With the nit mentioned by Dan:
Reviewed-by: Pankaj Gupta
re than 31 bit.
>
> Let's use 1ULL instead and make sure we're not shifting by more than 63
> bit by asserting that any bit in container->pgsizes is set.
>
> Fixes: CID 1458134
> Cc: Alex Williamson
> Cc: Eduardo Habkost
> Cc: "Michael S. Tsirkin"
> Cc: Pao
6 ")",
> + props->node_id,
> numa_info[props->node_id].initiator);
> return;
> }
> numa_info[props->node_id].has_cpu = true;
Reviewed-by: Pankaj Gupta
gion],
> sysmem_info->offsets[region],
> errp);
>
Reviewed-by: Pankaj Gupta
bpmem=disabled
> + --enable-libpmem) libpmem="enabled"
>;;
> - --disable-libpmem) libpmem=enabled
> + --disable-libpmem) libpmem="disabled"
>;;
>--enable-xkbcommon) xkbcommon="enabled"
>;;
Reviewed-by: Pankaj Gupta
ct PostcopyNotifyData {
> enum PostcopyNotifyReason reason;
> Error **errp;
> -};
> +} PostcopyNotifyData;
>
> void postcopy_add_notifier(NotifierWithReturn *nn);
> void postcopy_remove_notifier(NotifierWithReturn *n);
> --
Reviewed-by: Pankaj Gupta
+CC Danpb
> >>> Marc-André, I'd like your opinion for this one, in particular the use of
> >>> g_source_remove().
> >>>
> >>
> >> My opinion isn't really worth much, my review would have a bit more value.
> >>
> >> GSource has indeed some peculiar lifetime management, that I got wrong in
> >> the
> > The proposal that "sync-dax=unsafe" for non-PPC architectures, is a
> > fundamental misrepresentation of how this is supposed to work. Rather
> > than make "sync-dax" a first class citizen of the device-description
> > interface I'm proposing that you make this a separate device-type.
> > This
*opaque)
> +{
> +MonitorQMP *mon = opaque;
> +monitor_qmp_set_handlers_bh(mon);
> monitor_list_append(>common);
> }
>
> @@ -531,7 +567,7 @@ void monitor_init_qmp(Chardev *chr, bool pretty, Error
> **errp)
> } else {
> qemu_chr_fe_set_handlers(>common.chr, monitor_can_read,
> monitor_qmp_read, monitor_qmp_event,
> - NULL, >common, NULL, true);
> + monitor_qmp_change, >common, NULL,
> true);
> monitor_list_append(>common);
> }
> }
Overall patch looks good to me.
Reviewed-by: Pankaj Gupta
-47,7 +47,7 @@ static int worker_cb(void *opaque)
> err = 1;
> }
>
> -virtio_stw_p(req_data->vdev, _data->resp.ret, err);
> +virtio_stl_p(req_data->vdev, _data->resp.ret, err);
>
> return 0;
> }
Thanks!
Reviewed-by: Pankaj Gupta
rote:
>
>
>
> > -Original Message-----
> > From: Pankaj Gupta
> > Sent: Monday, March 1, 2021 2:22 PM
> > To: Moger, Babu
> > Cc: Pankaj Gupta ; Paolo Bonzini
> > ; richard.hender...@linaro.org; Eduardo Habkost
> > ; Qemu Developers
> > Subject: Re:
> Pankaj, Sure.
>
> I will add signoff from you if it is fine with you.
Sure. Thank you!
>
> Signed-off-by: Pankaj Gupta
Please use: Pankaj Gupta
Thanks,
Pankaj
> > Hi Babu,
> >
> > I tried to test below patch for AMD EPYC Rome CPU and I got below error [1]:
> >
> > Also, I noticed SSBD CPU flag for guest was still available even without
> > this
> > patch, I noticed that for the guest, AMD_SSBD not got set.
> >
> > Guest:
> > 0x8008 0x00:
Hi Babu,
I tried to test below patch for AMD EPYC Rome CPU and I got below error [1]:
Also, I noticed SSBD CPU flag for guest was still available even
without this patch,
I noticed that for the guest, AMD_SSBD not got set.
Guest:
0x8008 0x00: eax=0x3028 ebx=0x9205 ecx=0x2003
> It is normally added as v2 for compatibility. Like this.
o.k. Thanks!
I will test this tomorrow.
>
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index 24db7ed892..f721d0db78 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -4179,6 +4179,20 @@ static X86CPUDefinition
Hi Babu,
> >> +.features[FEAT_8000_0008_EBX] =
> >> +CPUID_8000_0008_EBX_CLZERO | CPUID_8000_0008_EBX_XSAVEERPTR |
> >> +CPUID_8000_0008_EBX_WBNOINVD | CPUID_8000_0008_EBX_IBPB |
> >> +CPUID_8000_0008_EBX_IBRS | CPUID_8000_0008_EBX_STIBP |
> >> +
Hello Babu,
Have below doubt about exposed CPU flags between EPYC-Rome & EPYC-Milan family.
Please see below.
> Adds the support for AMD 3rd generation processors. The model
> display for the new processor will be EPYC-Milan.
>
> Adds the following new feature bits on top of the feature bits
Ping
@M
On Wed, 9 Dec 2020 at 20:15, David Hildenbrand wrote:
>
> On 17.11.20 12:57, Pankaj Gupta wrote:
> > This patch adds trace events for virtio-pmem functionality.
> > Adding trace events for virtio pmem request, reponse and host
> > side fsync functionality.
>
ze
> divided by the mapping page size might be a bad indication of what will
> happen in practice - we might end up warning all the time.
>
> Cc: Paolo Bonzini
> Cc: "Michael S. Tsirkin"
> Cc: Alex Williamson
> Cc: Dr. David Alan Gilbert
> Cc: Igor Mammedo
> >> bool ram_block_discard_is_disabled(void)
> >> {
> >> -return qatomic_read(_block_discard_disabled) > 0;
> >> +return qatomic_read(_block_discard_disablers);
> >> }
> > return value won't be bool?
>
> The compiler does type conversion.
>
> != 0 -> true
> == 0 -> false
ah... I missed
Williamson
> Cc: Dr. David Alan Gilbert
> Cc: Igor Mammedov
> Cc: Pankaj Gupta
> Cc: Peter Xu
> Cc: Auger Eric
> Cc: Wei Yang
> Cc: teawater
> Cc: Marek Kedzierski
> Signed-off-by: David Hildenbrand
> ---
> softmmu/physmem.c | 70
e mappings).
>
> Cc: Paolo Bonzini
> Cc: "Michael S. Tsirkin"
> Cc: Alex Williamson
> Cc: Dr. David Alan Gilbert
> Cc: Igor Mammedov
> Cc: Pankaj Gupta
> Cc: Peter Xu
> Cc: Auger Eric
> Cc: Wei Yang
> Cc: teawater
> Cc: Marek Kedzierski
> Signed
Gilbert
> Cc: Igor Mammedov
> Cc: Pankaj Gupta
> Cc: Peter Xu
> Cc: Auger Eric
> Cc: Wei Yang
> Cc: teawater
> Cc: Marek Kedzierski
> Signed-off-by: David Hildenbrand
> ---
> include/exec/memory.h | 18 +--
> softmmu/physmem.c | 54 ++
or both is sufficient for current users - which only care if
> any type of discard is required to work. Thanks!
O.k. Looks good to me.
Reviewed-by: Pankaj Gupta
> We implement the RamDiscardMgr interface and only require coordinated
> discarding of RAM to work.
>
> Reviewed-by: Dr. David Alan Gilbert
> Cc: Paolo Bonzini
> Cc: "Michael S. Tsirkin"
> Cc: Alex Williamson
> Cc: Dr. David Alan Gilbert
> Cc: Igor Mamm
> Let's factor out the core logic, to be reused soon.
>
> Cc: Paolo Bonzini
> Cc: "Michael S. Tsirkin"
> Cc: Alex Williamson
> Cc: Dr. David Alan Gilbert
> Cc: Igor Mammedov
> Cc: Pankaj Gupta
> Cc: Peter Xu
> Cc: Auger Eric
> Cc: Wei Yang
>
RAMBlock users (esp. vfio used
> for nvme://) consume this interface as well. We'll need RAMBlock notifier
> calls when a RAMBlock is getting mapped/unmapped (via the corresponding
> memory region), so we can properly register a listener there as well.
>
> Cc: Paolo Bonzini
> Cc: &quo
ping.
> This patch adds trace events for virtio-pmem functionality.
> Adding trace events for virtio pmem request, reponse and host
> side fsync functionality.
>
> Signed-off-by: Pankaj Gupta
> ---
> hw/virtio/trace-events | 5 +
> hw/virtio/virtio-pmem.c | 4 ++
_O_INACTIVE enabled which cause crash.
>
> As Vladimir suggested, this patch makes migrate_prepare check the state of vm
> and
> return error if it is in RUN_STATE_POSTMIGRATE state.
>
> Signed-off-by: Tuguoyi
Similar issue is reported by Li Zhang(+CC) with almost same patch[3]
> The category of the virtio-pmem device is not set, put it into the 'storage'
> category.
>
> Signed-off-by: Gan Qixin
> ---
> Cc: Michael S. Tsirkin
> ---
> hw/virtio/virtio-pmem.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
>
> mdc->get_memory_region = pc_dimm_md_get_memory_region;
> > > mdc->fill_device_info = pc_dimm_md_fill_device_info;
> > > +set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> >
> > Any reason why pc-dimm would be in the storage category?
...
> Thanks for you reply. As far as I know,
> The category of the pc-dimm device is not set, put it into the 'storage'
> category.
>
> Signed-off-by: Gan Qixin
> ---
> Cc: Michael S. Tsirkin
> ---
> hw/mem/pc-dimm.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c
> index 2ffc986734..017146e3d1
data;
> +set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> }
>
> static TypeInfo nvdimm_info = {
Reviewed-by: Pankaj Gupta
est data persistence on non-NVDIMM requires guest userspace applications
> +to perform fsync/msync. This is different from a real nvdimm backend where
> +no additional fsync/msync is required. This is to persist guest writes in
> +host backing file which otherwise remains in host page cache and there is
> +risk of losing the data in case of power failure.
>
> - With virtio pmem device, MAP_SYNC mmap flag is not supported. This provides
> - a hint to application to perform fsync for write persistence.
> +With virtio pmem device, MAP_SYNC mmap flag is not supported. This provides
> +a hint to application to perform fsync for write persistence.
>
> Limitations
>
Reviewed-by: Pankaj Gupta
rtio_pmem_fill_device_info;
> vpc->get_memory_region = virtio_pmem_get_memory_region;
> +set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
> }
>
> static TypeInfo virtio_pmem_info = {
Reviewed-by: Pankaj Gupta
This patch adds trace events for virtio-pmem functionality.
Adding trace events for virtio pmem request, reponse and host
side fsync functionality.
Signed-off-by: Pankaj Gupta
---
hw/virtio/trace-events | 5 +
hw/virtio/virtio-pmem.c | 4
2 files changed, 9 insertions(+)
diff --git
Ping
> Ram size mismatch condition logs below message.
>
>"Length mismatch: pc.ram: 0x8000 in != 0x18000: Invalid argument"
>
> This patch improves the readability of error messages.
> Removed the superflous "in" and changed "Length&
> > >> By running sphinx over the docs/ directory (like readthedocs.org
> > >> presumably does), it finds a couple of rst documents that are not
> > >> referenced:
> > >> - cpu-hotplug.rst
> > >> - microvm.rst
> > >> - pr-manager.rst
> > >> - virtio-net-failover.rst
> >
> > Given the current
Ram size mismatch condition logs below message.
"Length mismatch: pc.ram: 0x8000 in != 0x18000: Invalid argument"
This patch improves the readability of error messages.
Removed the superflous "in" and changed "Length" to "Size".
Signed-off
@Jack Wang,
Maybe four io_uring patches in 5.4.71 fixes the issue for you as well?
Thanks,
Pankaj
> Hi Jens.
>
> On Sat, Oct 17, 2020 at 3:07 AM Jens Axboe wrote:
> >
> > Would be great if you could try 5.4.71 and see if that helps for your
> > issue.
> >
>
> Oh wow, yeah it did fix the issue.
; >>
> >> If we ever have THP on the PUD level (e.g., 1 GiB THP on x86-64), we
> >> expect to have a trigger to explicitly opt-in for the new THP granularity.
> >>
> >> Cc: "Michael S. Tsirkin"
> >> Cc: Wei Yang
> >> Cc: Dr. Dav
Cc: Wei Yang
> Cc: Dr. David Alan Gilbert
> Cc: Igor Mammedov
> Cc: Pankaj Gupta
> Signed-off-by: David Hildenbrand
> ---
> hw/virtio/virtio-mem.c | 105 +++--
> 1 file changed, 101 insertions(+), 4 deletions(-)
>
> diff --git a
>> If we ever have THP on the PUD level (e.g., 1 GiB THP on x86-64), we
> >> expect to have a trigger to explicitly opt-in for the new THP granularity.
> >>
> >> Cc: "Michael S. Tsirkin"
> >> Cc: Wei Yang
> &g
chael S. Tsirkin"
> Cc: Wei Yang
> Cc: Dr. David Alan Gilbert
> Cc: Igor Mammedov
> Cc: Pankaj Gupta
> Signed-off-by: David Hildenbrand
> ---
> hw/virtio/virtio-mem-pci.c | 14 ++
> hw/virtio/virtio-mem.c | 8
> 2 files changed, 22 inse
; Cc: Wei Yang
> Cc: Dr. David Alan Gilbert
> Cc: Igor Mammedov
> Cc: Pankaj Gupta
> Signed-off-by: David Hildenbrand
> ---
> hw/mem/memory-device.c | 11 +--
> include/hw/mem/memory-device.h | 11 +++
> 2 files changed, 20 insertions(+), 2 de
m device with a 2G block size -
> which will become important, for example, when supporting vfio in the
> future.
>
> Cc: "Michael S. Tsirkin"
> Cc: Wei Yang
> Cc: Dr. David Alan Gilbert
> Cc: Igor Mammedov
> Cc: Pankaj Gupta
> Signed-off-by: David Hildenbr
uot;Michael S. Tsirkin"
> Cc: Wei Yang
> Cc: Dr. David Alan Gilbert
> Cc: Igor Mammedov
> Cc: Pankaj Gupta
> Signed-off-by: David Hildenbrand
> ---
> hw/virtio/virtio-mem.c | 5 +
> 1 file changed, 5 insertions(+)
>
> diff --git a/hw/virtio/virtio-mem
er to explicitly opt-in for the new THP granularity.
>
> Cc: "Michael S. Tsirkin"
> Cc: Wei Yang
> Cc: Dr. David Alan Gilbert
> Cc: Igor Mammedov
> Cc: Pankaj Gupta
> Signed-off-by: David Hildenbrand
> ---
> hw/virtio/virtio-mem.c | 82 +++
fixes this by forcing virtio 1 with virtio-pmem.
> >
> > fixes: adf0748a49 ("virtio-pci: Proxy for virtio-pmem")
> > Signed-off-by: Pankaj Gupta
> > ---
> > hw/virtio/virtio-pmem-pci.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff
irtio-pmem")
Signed-off-by: Pankaj Gupta
---
hw/virtio/virtio-pmem-pci.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/virtio/virtio-pmem-pci.c b/hw/virtio/virtio-pmem-pci.c
index 21a457d151..2b2a0b1eae 100644
--- a/hw/virtio/virtio-pmem-pci.c
+++ b/hw/virtio/virtio-pmem-pci.c
@@ -
reads", or "native" and selects between pthread based
> -disk I/O and native Linux AIO.
> +aio is "threads", "native", or "io_uring" and selects between
> pthread
> +based disk I/O, native Linux AIO, or Linux io_uring API.
>
> ``format=format``
> Specify which disk format will be used rather than detecting the
>
Reviewed-by: Pankaj Gupta
--
> 2.26.2
>
>
>
1 - 100 of 533 matches
Mail list logo