d, 26 insertions(+), 18 deletions(-)
>
for the series:
Reviewed-by: Marc-André Lureau
Hi
On Wed, Jun 5, 2024 at 11:36 AM Gerd Hoffmann wrote:
>
> On Tue, Jun 04, 2024 at 10:27:18AM GMT, Marc-André Lureau wrote:
> > Hi
> >
> > > +if (is_buffer_shared(surface)) {
> >
> > Perhaps the suggestion to rename the function (in the
Hi
On Mon, Jun 3, 2024 at 7:18 PM Gerd Hoffmann wrote:
>
> In case the display surface uses a shared buffer (i.e. uses vga vram
> directly instead of a shadow) go unshare the buffer before clearing it.
>
> This avoids vga memory corruption, which in turn fixes unblanking not
> working properly wi
> diff --git a/meson.build b/meson.build
> index a739a62f2c..72024f5f01 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1058,6 +1058,10 @@ if not get_option('virglrenderer').auto() or
> have_system or have_vhost_user_gpu
>
> cc.has_function('virgl_renderer_resource_create_blob',
> prefix: '#include
> ',
> dependencies: virgl))
> +config_host_data.set('HAVE_VIRGL_RESOURCE_QUERY_LAYOUT',
> +
> cc.has_function('virgl_renderer_resource_query_layout',
> + prefix: '#include
> ',
> + dependencies: virgl))
>endif
> endif
> rutabaga = not_found
> --
> 2.34.1
>
>
--
Marc-André Lureau
R_SERVER;
> +#endif
> +
I wonder if it's a good idea to initialize venus by default. It
doesn't seem to require vulkan during initialization, but this may
evolve. Make it optional?
> ret = virgl_renderer_init(g, flags, &virtio_gpu_3d_cbs);
> if (ret != 0) {
> error_report("virgl could not be initialized: %d", ret);
> --
> 2.25.1
>
--
Marc-André Lureau
GPU_FLAG_RESOURCE_UUID_ENABLED,
> };
>
> #define virtio_gpu_virgl_enabled(_cfg) \
> @@ -114,6 +115,8 @@ enum virtio_gpu_base_conf_flags {
> (_cfg.flags & (1 << VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED))
> #define virtio_gpu_rutabaga_enabled(_cfg) \
> (_cfg.flags & (1 << VIRTIO_GPU_FLAG_RUTABAGA_ENABLED))
> +#define virtio_gpu_resource_uuid_enabled(_cfg) \
> +(_cfg.flags & (1 << VIRTIO_GPU_FLAG_RESOURCE_UUID_ENABLED))
> #define virtio_gpu_hostmem_enabled(_cfg) \
> (_cfg.hostmem > 0)
>
> @@ -209,6 +212,8 @@ struct VirtIOGPU {
> QTAILQ_HEAD(, VGPUDMABuf) bufs;
> VGPUDMABuf *primary[VIRTIO_GPU_MAX_SCANOUTS];
> } dmabuf;
> +
> +GHashTable *resource_uuids;
> };
>
> struct VirtIOGPUClass {
> @@ -307,6 +312,8 @@ void virtio_gpu_cleanup_mapping_iov(VirtIOGPU *g,
> struct iovec *iov, uint32_t count);
> void virtio_gpu_cleanup_mapping(VirtIOGPU *g,
> struct virtio_gpu_simple_resource *res);
> +void virtio_gpu_resource_assign_uuid(VirtIOGPU *g,
> + struct virtio_gpu_ctrl_command *cmd);
> void virtio_gpu_process_cmdq(VirtIOGPU *g);
> void virtio_gpu_device_realize(DeviceState *qdev, Error **errp);
> void virtio_gpu_reset(VirtIODevice *vdev);
> --
> 2.25.1
>
--
Marc-André Lureau
:
> +virgl_cmd_resource_unmap_blob(g, cmd);
> +break;
> +#endif /* HAVE_VIRGL_RESOURCE_BLOB */
> default:
> cmd->error = VIRTIO_GPU_RESP_ERR_UNSPEC;
> break;
> diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
> index 4c3ec9d0ea..8189c392dc 100644
> --- a/hw/display/virtio-gpu.c
> +++ b/hw/display/virtio-gpu.c
> @@ -1449,10 +1449,12 @@ void virtio_gpu_device_realize(DeviceState *qdev,
> Error **errp)
> return;
> }
>
> +#ifndef HAVE_VIRGL_RESOURCE_BLOB
> if (virtio_gpu_virgl_enabled(g->parent_obj.conf)) {
> -error_setg(errp, "blobs and virgl are not compatible (yet)");
> +error_setg(errp, "Linked virglrenderer does not support blob
> resources");
> return;
> }
> +#endif
> }
>
> if (!virtio_gpu_base_device_realize(qdev,
> diff --git a/meson.build b/meson.build
> index ea52ef1b9c..629407128e 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1054,6 +1054,10 @@ if not get_option('virglrenderer').auto() or
> have_system or have_vhost_user_gpu
>
> cc.has_function('virgl_renderer_context_create_with_flags',
> prefix: '#include
> ',
> dependencies: virgl))
> +config_host_data.set('HAVE_VIRGL_RESOURCE_BLOB',
> +
> cc.has_function('virgl_renderer_resource_create_blob',
> + prefix: '#include
> ',
> + dependencies: virgl))
>endif
> endif
> rutabaga = not_found
> --
> 2.25.1
>
--
Marc-André Lureau
o_gpu_resource_detach_backing detach_rb;
> -struct iovec *res_iovs = NULL;
> -int num_iovs = 0;
> +struct virgl_gpu_resource *vres;
>
> VIRTIO_GPU_FILL_CMD(detach_rb);
> trace_virtio_gpu_cmd_res_back_detach(detach_rb.resource_id);
>
> -virgl_renderer_resource_detach_iov(detach_rb.resource_id,
> - &res_iovs,
> - &num_iovs);
> -if (res_iovs == NULL || num_iovs == 0) {
> +vres = virgl_gpu_find_resource(g, detach_rb.resource_id);
> +if (!vres) {
> +cmd->error = VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID;
> return;
> }
> -virtio_gpu_cleanup_mapping_iov(g, res_iovs, num_iovs);
> +
> +virgl_renderer_resource_detach_iov(detach_rb.resource_id, NULL, NULL);
> +virtio_gpu_cleanup_mapping(g, &vres->res);
> }
>
>
> --
> 2.25.1
>
>
--
Marc-André Lureau
-by: Antonio Caggiano
> Signed-off-by: Dmitry Osipenko
> Signed-off-by: Huang Rui
Reviewed-by: Marc-André Lureau
> ---
>
> No change in v6.
>
> hw/display/virtio-gpu.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/hw/display/virtio-gpu.c b/hw/display/
ot;context_init", VirtIOGPU, parent_obj.conf.flags,
> +VIRTIO_GPU_FLAG_CONTEXT_INIT_ENABLED, true),
> +#endif
Does it make sense to make this configurable? If the context to be
created asked for a capset id but the one created doesn't respect it,
what's the outcome?
It looks like it should instead set cmd->error.
--
Marc-André Lureau
gt;
> It will still get into linux-next so we may retrieve headers from
> linux-next. Or we may add the definition to
> hw/display/virtio-gpu-virgl.c; the duplicate definition warning will
> tell when the definition becomes no longer necessary. I'm fine with
> either option.
The second option seems better to me, as it can avoid pulling unwanted changes.
thanks
--
Marc-André Lureau
Hi
On Tue, Nov 21, 2023 at 2:57 PM Marc-André Lureau
wrote:
>
> Hi
>
> On Wed, Nov 15, 2023 at 9:28 PM David Woodhouse wrote:
> >
> > From: David Woodhouse
> >
> > If a Xen console is configured on the command line, do not add a default
> > serial po
.flag = &default_floppy },
Consistent with the rest of the lines (no conditional compilation nor
driver #define..)
Reviewed-by: Marc-André Lureau
btw, while quickly testing this (do we have any test for xen-console?):
$ qemu --accel kvm,xen-version=0x40011,kernel-irqchip=split -de
On Tue, Oct 17, 2023 at 5:13 PM Philippe Mathieu-Daudé
wrote:
>
> Access to QemuInputHandlerState::handler are read-only.
>
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Marc-André Lureau
> ---
> include/hw/virtio/virtio-input.h | 2 +-
> include/ui/inpu
; + &capset2_max_ver,
> + &capset2_max_size);
> +num_capsets += capset2_max_size ? 1 : 0;
>
> -return capset2_max_ver ? 2 : 1;
> +return num_capsets;
> }
> --
> 2.34.1
>
>
--
Marc-André Lureau
nclude/hw/virtio/virtio-gpu.h
> index b9adc28071..67b39fccec 100644
> --- a/include/hw/virtio/virtio-gpu.h
> +++ b/include/hw/virtio/virtio-gpu.h
> @@ -63,6 +63,8 @@ struct virtio_gpu_simple_resource {
> MemoryRegion *region;
> #endif
>
> +bool has_uuid;
> +
> QTAILQ_ENTRY(virtio_gpu_simple_resource) next;
> };
>
> @@ -208,6 +210,8 @@ struct VirtIOGPU {
> QTAILQ_HEAD(, VGPUDMABuf) bufs;
> VGPUDMABuf *primary[VIRTIO_GPU_MAX_SCANOUTS];
> } dmabuf;
> +
> +GHashTable *resource_uuids;
> };
>
> struct VirtIOGPUClass {
> @@ -285,6 +289,8 @@ void virtio_gpu_cleanup_mapping_iov(VirtIOGPU *g,
> struct iovec *iov, uint32_t count);
> void virtio_gpu_cleanup_mapping(VirtIOGPU *g,
> struct virtio_gpu_simple_resource *res);
> +void virtio_gpu_resource_assign_uuid(VirtIOGPU *g,
> + struct virtio_gpu_ctrl_command *cmd);
> void virtio_gpu_process_cmdq(VirtIOGPU *g);
> void virtio_gpu_device_realize(DeviceState *qdev, Error **errp);
> void virtio_gpu_reset(VirtIODevice *vdev);
> --
> 2.34.1
>
>
--
Marc-André Lureau
error_setg(errp, "Linked virglrenderer does not support blob
> resources");
> return;
> }
> +#endif
> }
>
> if (!virtio_gpu_base_device_realize(qdev,
> diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
> index 55973e112f..b9adc28071 100644
> --- a/include/hw/virtio/virtio-gpu.h
> +++ b/include/hw/virtio/virtio-gpu.h
> @@ -58,6 +58,11 @@ struct virtio_gpu_simple_resource {
> int dmabuf_fd;
> uint8_t *remapped;
>
> +#ifdef HAVE_VIRGL_RESOURCE_BLOB
> +/* only blob resource needs this region to be mapped as guest mmio */
> +MemoryRegion *region;
> +#endif
> +
> QTAILQ_ENTRY(virtio_gpu_simple_resource) next;
> };
>
> diff --git a/meson.build b/meson.build
> index ff20d3c249..f7b744ab82 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1072,6 +1072,10 @@ if not get_option('virglrenderer').auto() or
> have_system or have_vhost_user_gpu
>
> cc.has_function('virgl_renderer_context_create_with_flags',
> prefix: '#include ',
> dependencies: virgl))
> + config_host_data.set('HAVE_VIRGL_RESOURCE_BLOB',
> + cc.has_function('virgl_renderer_resource_create_blob',
> + prefix: '#include ',
> + dependencies: virgl))
better moved under the if virgl.found() block
> endif
> blkio = not_found
> if not get_option('blkio').auto() or have_block
> --
> 2.34.1
>
>
--
Marc-André Lureau
k above.
I suggest to name it after what is actually checked:
HAVE_VIRGL_CONTEXT_CREATE_WITH_FLAGS for ex
> endif
> blkio = not_found
> if not get_option('blkio').auto() or have_block
> --
> 2.34.1
>
>
--
Marc-André Lureau
requires new feature flag (and maybe it should be in
the <0x1000 range instead)
But I am not sure we need a new message at the virtio-gpu level. Gerd, wdyt?
Maybe it's not a good place to reset all GPU resources during QEMU reset()
after all, if it's called during s3 and there is no mechanism to restore
it. Damien?
thanks
...
> enum virtio_gpu_shm_id {
> @@ -453,4 +456,10 @@ struct virtio_gpu_resource_unmap_blob {
> uint32_t padding;
> };
>
> +/* VIRTIO_GPU_CMD_STATUS_FREEZING */
> +struct virtio_gpu_status_freezing {
> + struct virtio_gpu_ctrl_hdr hdr;
> + __u32 freezing;
> +};
> +
> #endif
> --
> 2.34.1
>
>
>
--
Marc-André Lureau
t; +case SOCKET_ADDRESS_TYPE_FD:
> + return g_strdup_printf("fd:%s", addr->u.fd.str);
> +case SOCKET_ADDRESS_TYPE_VSOCK:
> +return g_strdup_printf("tcp:%s:%s",
> + addr->u.vsock.cid,
> + addr->u.vsock.port);
> +default:
> +return g_strdup("unknown address type");
> +}
> +}
>
> SocketAddress *socket_parse(const char *str, Error **errp)
> {
> --
> 2.37.3
>
>
>
--
Marc-André Lureau
Hi
On Wed, Mar 16, 2022 at 5:28 PM Thomas Huth wrote:
>
> On 16/03/2022 14.16, Philippe Mathieu-Daudé wrote:
> > On 16/3/22 10:52, marcandre.lur...@redhat.com wrote:
> >> From: Marc-André Lureau
> >>
> >> One less qemu-specific macro. It also helps to make
Hi
On Wed, Mar 16, 2022 at 5:30 PM Daniel P. Berrangé wrote:
>
> On Wed, Mar 16, 2022 at 01:52:48PM +0400, marcandre.lur...@redhat.com wrote:
> > diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
> > index 3baa5e3790f7..f2bd050e3b9a 100644
> > --- a/include/qemu/compiler.h
> > +++ b/
Hi
On Thu, Dec 10, 2020 at 6:07 PM wrote:
> From: Marc-André Lureau
>
> When needed, the G_GNUC_CHECK_VERSION() glib macro can be used instead.
>
> Signed-off-by: Marc-André Lureau
> ---
> include/qemu/compiler.h| 11 ---
> scripts/cocci-macro-file.h | 1
On Thu, Dec 10, 2020 at 6:14 PM wrote:
> From: Marc-André Lureau
>
> QEMU requires Clang or GCC, that define and support __GNUC__ extensions.
>
> Signed-off-by: Marc-André Lureau
> ---
> include/qemu/compiler.h | 8 +---
> 1 file changed, 1 insertion(+), 7 delet
Hi
On Thu, Dec 10, 2020 at 6:35 PM Philippe Mathieu-Daudé
wrote:
>
> On 12/10/20 3:27 PM, Peter Maydell wrote:
> > On Thu, 10 Dec 2020 at 14:26, Philippe Mathieu-Daudé
> > wrote:
> >>
> >> On 12/10/20 2:47 PM, marcandre.lur...@redhat.com wrote:
> >&g
Hi
On Thu, Dec 10, 2020 at 6:47 PM Peter Maydell wrote:
>
> On Thu, 10 Dec 2020 at 14:32, Philippe Mathieu-Daudé
> wrote:
> >
> > On 12/10/20 2:47 PM, marcandre.lur...@redhat.com wrote:
> > > From: Marc-André Lureau
> > >
> > > Since commit
_allow_set()) because it will become a callback later.
>
> Signed-off-by: Eduardo Habkost
>
nice
Reviewed-by: Marc-André Lureau
--
Marc-André Lureau
On Fri, Oct 30, 2020 at 11:29 AM Marc-André Lureau <
marcandre.lur...@gmail.com> wrote:
>
>
> On Fri, Oct 30, 2020 at 2:07 AM Eduardo Habkost
> wrote:
>
>> Make the code more generic and not specific to TYPE_DEVICE.
>>
>> Signed-off-by: Eduardo Habkost
&
did you mean ‘vdev’?
403 | if (dev->realized) {
--
Marc-André Lureau
Blake
> CC: "Denis V. Lunev"
> CC: Markus Armbruster
> CC: Alberto Garcia
> CC: Jason Dillaman
> CC: Wen Congyang
> CC: Xie Changlong
> CC: Liu Yuan
> CC: "Richard W.M. Jones"
> CC: Jeff Cody
> CC: "Marc-André Lureau"
> CC:
Sundholm
> CC: Pavel Dovgalyuk
> CC: Paolo Bonzini
> CC: Stefan Hajnoczi
> CC: Fam Zheng
> CC: Stefan Weil
> CC: Ronnie Sahlberg
> CC: Peter Lieven
> CC: Eric Blake
> CC: "Denis V. Lunev"
> CC: Markus Armbruster
> CC: Alberto Garcia
> CC: Jason Di
OPAGATE
> >chardev: introduce ERRP_AUTO_PROPAGATE
> >cmdline: introduce ERRP_AUTO_PROPAGATE
> >Dump: introduce ERRP_AUTO_PROPAGATE
> >Memory API: introduce ERRP_AUTO_PROPAGATE
> >SPICE: introduce ERRP_AUTO_PROPAGATE
> >Graphics: introdu
> Suggested-by: Paolo Bonzini
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Marc-André Lureau
> ---
> chardev/char-fe.c | 4 ++--
> chardev/char-mux.c| 3 ++-
> include/chardev/char-fe.h | 4 ++--
> 3 files changed, 6 insertions(+), 5 deletions(-)
>
Hi
On Wed, Feb 20, 2019 at 2:08 AM Philippe Mathieu-Daudé
wrote:
>
> A througfull audit show that all time data is added to outbuf[],
througfull? :) thorough?
> 'outlen' is incremented. Then at creation and each time
> continue_send() returns it pass thru check_reset which resets
> 'outpos', th
Hi
On Wed, Feb 20, 2019 at 12:26 PM Philippe Mathieu-Daudé
wrote:
>
> On 2/20/19 11:40 AM, Marc-André Lureau wrote:
> > Hi
> >
> > On Wed, Feb 20, 2019 at 2:04 AM Philippe Mathieu-Daudé
> > wrote:
> >>
> >> In the previous commit we added an a
Hi
On Wed, Feb 20, 2019 at 2:07 AM Philippe Mathieu-Daudé
wrote:
>
> Since iov_size() returns a size_t, no need to use a signed type.
And it is the variable only purpose.
>
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Marc-André Lureau
> ---
> net/filter-mi
On Wed, Feb 20, 2019 at 2:06 AM Philippe Mathieu-Daudé
wrote:
>
> Avoid to use a signed type to hold an unsigned value.
>
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Marc-André Lureau
> ---
> hw/tpm/tpm_emulator.c | 7 ---
> 1 file changed, 4 inser
ippe Mathieu-Daudé
Reviewed-by: Marc-André Lureau
> ---
> It is funny/scary that there are big comments about how to treat
> errors to set the return value, then the return value is simply
> ignored by the caller.
have_data() return value? yes, the code may have change and the
comment does
Hi
On Wed, Feb 20, 2019 at 2:06 AM Philippe Mathieu-Daudé
wrote:
>
> The buffer.size and buffer.consumed fields are only updated within the
> buffer_append() body. We can simply let buffer_append() return the
> difference (the buffer consumed).
>
> Signed-off-by: Philippe Mathieu-Daudé
This is
Philippe Mathieu-Daudé
Reviewed-by: Marc-André Lureau
> ---
> hw/char/xen_console.c | 12 +++-
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
> index 91f34ef06c..083b2c8e2a 100644
> --- a/hw/char/x
On Wed, Feb 20, 2019 at 2:05 AM Philippe Mathieu-Daudé
wrote:
>
> VHOST_USER_HDR_SIZE uses offsetof(), thus is an expression of type
> size_t. Update the format string accordingly.
>
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Marc-André Lureau
> ---
> hw/vir
On Wed, Feb 20, 2019 at 2:04 AM Philippe Mathieu-Daudé
wrote:
>
> All callers provide a size_t argument, we can safely use size_t
> for this function.
>
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Marc-André Lureau
> ---
> gdbstub.c | 4 ++--
> 1 file cha
t" is positive.
>
> The few other places where s->last_packet_len is set is with constant
> positive values.
>
> It makes sense to use size_t to hold last_packet_len values.
>
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Marc-André Lureau
> ---
>
On Wed, Feb 20, 2019 at 2:04 AM Philippe Mathieu-Daudé
wrote:
>
> Since strlen() returns an unsigned value, it is pointless to
> convert it to a signed one. Use size_t to hold its return value.
>
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Marc-André Lureau
(it
Hi
On Wed, Feb 20, 2019 at 2:02 AM Philippe Mathieu-Daudé
wrote:
>
> Hi,
>
> This series convert the chardev::qemu_chr_write() to take unsigned
> length argument. To do so I went through all caller and checked if
> there are no negative value possible.
Changing signedness is problematic and can
Hi
On Wed, Feb 20, 2019 at 11:39 AM Daniel P. Berrangé wrote:
>
> On Wed, Feb 20, 2019 at 02:02:32AM +0100, Philippe Mathieu-Daudé wrote:
>
> > diff --git a/include/chardev/char.h b/include/chardev/char.h
> > index 0341dd1ba2..2e3b5a15ca 100644
> > --- a/include/chardev/char.h
> > +++ b/include/c
emu_chr_be_can_write(Chardev *s);
>
> /**
> * qemu_chr_be_write:
> diff --git a/ui/console.c b/ui/console.c
> index 6d2282d3e9..42f04e2b37 100644
> --- a/ui/console.c
> +++ b/ui/console.c
> @@ -61,8 +61,8 @@ enum TTYState {
>
> typedef struct QEMUFIFO {
> uint8_t *buf;
> -int buf_size;
> -int count, wptr, rptr;
> +size_t buf_size, count;
> +int wptr, rptr;
Only used as non-negative buffer size, ack
> } QEMUFIFO;
>
> static int qemu_fifo_write(QEMUFIFO *f, const uint8_t *buf, int len1)
> @@ -1110,7 +1110,7 @@ static int vc_chr_write(Chardev *chr, const uint8_t
> *buf, int len)
> static void kbd_send_chars(void *opaque)
> {
> QemuConsole *s = opaque;
> -int len;
> +size_t len;
Only used as non-negative buffer size, ack
> uint8_t buf[16];
>
> len = qemu_chr_be_can_write(s->chr);
> --
> 2.20.1
>
That was painful, hopefully I didn't miss something...
Reviewed-by: Marc-André Lureau
___
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Hi
On Wed, Feb 20, 2019 at 2:03 AM Philippe Mathieu-Daudé
wrote:
>
> TabletChardev::query is an array of uint8_t.
> Use the same type to hold it (this also silent a -Wsign-conversion
> warning in the trace function).
>
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by:
Hi
On Wed, Feb 20, 2019 at 2:03 AM Philippe Mathieu-Daudé
wrote:
>
> The backend should not return a negative length to read.
> We will later change the prototype of IOCanReadHandler to return an
> unsigned length. Meanwhile make sure the return length is positive.
>
> Suggested-by: Paolo Bonzini
ted-by: Paolo Bonzini
> Signed-off-by: Philippe Mathieu-Daudé
Reviewed-by: Marc-André Lureau
> ---
> chardev/char-fd.c | 4 ++--
> chardev/char-io.c | 6 +++---
> chardev/char-pty.c| 4 ++--
> chardev/char-socket.c | 6 +++---
> chardev/char-udp.c
rtio-ccw.c | 75 +---
> hw/xen/xen-common.c| 18 +-
> 7 files changed, 265 insertions(+), 1168 deletions(-)
Nice diff state, hopefully I didn't miss any before/after difference:
Reviewed-by: Marc-André Lureau
>
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
On Mon, Jan 7, 2019 at 11:34 PM Eduardo Habkost wrote:
>
> The macro is only used in one place, where the purpose of the
> value is obvious. Eliminate the macro so we don't need to rely
> on stringify().
>
> Signed-off-by: Eduardo Habkost
Reviewed-by: Marc-André Lurea
number literal.
>
> Replace stringify() with string literals when appropriate.
>
> Signed-off-by: Eduardo Habkost
Reviewed-by: Marc-André Lureau
> ---
> hw/core/machine.c | 8 ++--
> hw/i386/pc.c | 94 +++
> hw/i386/p
Hi
On Mon, Dec 10, 2018 at 8:55 PM Igor Mammedov wrote:
>
> On Mon, 10 Dec 2018 17:45:22 +0100
> Igor Mammedov wrote:
>
> > On Tue, 4 Dec 2018 18:20:11 +0400
> > Marc-André Lureau wrote:
> >
> > > Instead of registering compat properties as globals, let
Instead of registering compat properties as globals, let's keep them
in their own array, to avoid mixing with user globals.
Introduce object_apply_global_props() function, to apply compatibility
properties from a GPtrArray.
Signed-off-by: Marc-André Lureau
---
include/hw/qdev-core.h
Hi
On Tue, Nov 27, 2018 at 11:40 PM Eduardo Habkost wrote:
>
> On Tue, Nov 27, 2018 at 01:27:48PM +0400, Marc-André Lureau wrote:
> > Introduce object_apply_global_props() function, to apply compatibility
> > properties from a GPtrArray.
> >
> > For accel compat
generic version of SET_MACHINE_COMPAT() that can set compat
properties on other objects than Machine, and using GPtrArray.
Signed-off-by: Marc-André Lureau
---
include/hw/qdev-core.h | 13 +
include/qom/object.h | 3 +++
include/sysemu/accel.h | 4 +---
accel/accel.c
Hi
On Mon, Nov 26, 2018 at 5:27 PM Igor Mammedov wrote:
>
> On Wed, 7 Nov 2018 16:36:48 +0400
> Marc-André Lureau wrote:
>
> > It's now possible to use the common function.
> >
> > Teach object_apply_global_props() to warn if Error argument is NULL.
>
Hi
On Wed, Nov 7, 2018 at 4:49 PM Marc-André Lureau
wrote:
>
> The following patch is going to add compatiblity parameters for
> qemu <= 3.1.
>
I realize this may be good enough for x86 i440/q35 machines, but what
about other machines & architectures?
What do we offi
ing allow to migrate to different hostmem
backends.
Signed-off-by: Marc-André Lureau
---
include/hw/compat.h | 10 +-
include/sysemu/hostmem.h | 3 ++-
backends/hostmem-file.c | 8
backends/hostmem-memfd.c | 2 +-
backends/hostmem-ram.c | 9 -
backends/hostme
All qdev_prop_register_global() set &error_fatal for errp, except
'-rtc driftfix=slew', which arguably should also use &error_fatal, as
otherwise failing to apply the property would only report a warning.
Signed-off-by: Marc-André Lureau
---
include/hw/qdev-core.h| 6 --
The following patches are going to implement post_init callbacks for
settings properties. The interface post_init are called before the
instance post_init, so the default interface behaviour can be
overriden if necessary.
Signed-off-by: Marc-André Lureau
---
qom/object.c| 8
It's now possible to use the common function.
Teach object_apply_global_props() to warn if Error argument is NULL.
Signed-off-by: Marc-André Lureau
---
hw/core/qdev-properties.c | 24 ++--
qom/object.c | 6 +-
2 files changed, 7 insertions(+), 23 dele
The following patch is going to add compatiblity parameters for
qemu <= 3.1.
Signed-off-by: Marc-André Lureau
---
include/hw/compat.h | 3 +++
include/hw/i386/pc.h | 3 +++
hw/i386/pc_piix.c| 21 ++---
hw/i386/pc_q35.c | 19 +--
4 files changed,
Let's make compatiblity properties an interface, so that objects other
than QDev can benefit from having machine compatiblity properties.
Signed-off-by: Marc-André Lureau
---
include/hw/boards.h| 2 ++
hw/core/compat-props.c | 43 ++
hw/core/q
Considering that CPU features are provided via command line, the
global_props are now all user-provided globals. No need to track this
anymore for qdev_prop_check_globals().
Signed-off-by: Marc-André Lureau
---
include/hw/qdev-core.h | 3 --
hw/core/qdev-properties.c | 4
A step towards being able to call object_apply_global_props().
Signed-off-by: Marc-André Lureau
---
hw/core/qdev-properties.c | 29 -
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 43c30a57f4
Interfaces don't have instance, let's make the interface type really
abstract to avoid confusion.
Signed-off-by: Marc-André Lureau
---
include/hw/acpi/acpi_dev_interface.h | 6 +-
include/hw/arm/linux-boot-if.h | 5 +
include/hw/fw-path-provider.h| 4 +---
The function is only used by a test, move it there.
Signed-off-by: Marc-André Lureau
Reviewed-by: Eduardo Habkost
---
include/hw/qdev-properties.h | 1 -
hw/core/qdev-properties.c | 9 -
tests/test-qdev-global-props.c | 18 ++
3 files changed, 14 insertions
Dev.
The following patches is going to reuse object_apply_global_props()
for qdev globals.
Signed-off-by: Marc-André Lureau
---
include/hw/boards.h| 1 -
include/qom/object.h | 2 ++
include/sysemu/accel.h | 4 +---
accel/accel.c | 12
ot;
- rename register_global_list() to register_global_properties()
- call object_property_set_globals() after post-init
- add and use a ObjectClass.set_globals flag, instead of dynamically
check object class in object_property_set_globals()
- use object "id" in >= 3.1 instea
Instead of accepting any Object*, change user_creatable_complete() to
require a UserCreatable*. Modify the callers to pass the appropriate
argument, removing redundant dynamic cast checks in object creation.
Signed-off-by: Marc-André Lureau
Reviewed-by: Igor Mammedov
---
include/qom
global_props is only used for Xen xen_compat_props. It's a static
array of GlobalProperty, like machine globals in SET_MACHINE_COMPAT().
Let's register the globals the same way, without extra copy allocation.
Signed-off-by: Marc-André Lureau
Reviewed-by: Igor Mammedov
---
inclu
Clarify the function return value.
Signed-off-by: Marc-André Lureau
---
tests/test-qdev-global-props.c | 12 ++--
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tests/test-qdev-global-props.c b/tests/test-qdev-global-props.c
index d81b0862d5..ccdf6c57c1 100644
--- a/tests/test
Hi
On Mon, Aug 27, 2018 at 10:10 AM Markus Armbruster wrote:
>
> Marc-André Lureau writes:
>
> > Hi
> > On Fri, Aug 24, 2018 at 9:37 AM Markus Armbruster wrote:
> >>
> >> Marc-André Lureau writes:
> >>
> >> > This is mostly for reada
Hi
On Fri, Aug 24, 2018 at 9:37 AM Markus Armbruster wrote:
>
> Marc-André Lureau writes:
>
> > This is mostly for readability of the code. Let's make it clear which
> > callers can create an implicit monitor when the chardev is muxed.
> >
> > This will
wired to an HMP monitor.
- -mon command line option
From this short study, I would like to think that a monitor may only
be created in the main thread today, though I remain skeptical :)
Signed-off-by: Marc-André Lureau
---
include/chardev/char.h | 18 +-
cha
oks like it's the last patch in the series without review. It
would be nice if a Xen maintainer could look at it, or test it, as I
dont know how to test it tbh.
Reviewed-by: Marc-André Lureau
> }
>
> int xen_be_register(const char *type, struct XenDevOps *ops)
> --
&
E;
> mc->kvm_type = spapr_kvm_type;
> -mc->has_dynamic_sysbus = true;
> +/*TODO: allow only sysbus devices that really work with this machine */
> + machine_class_allow_dynamic_sysbus_dev(mc, TYPE_SYS_BUS_DEVICE);
> mc->pci_allow_0_address = true;
> mc->get_hotplug_handler
79 matches
Mail list logo