qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] RFC: qxl: allow to specify head limit to qxl dr


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] [PATCH] RFC: qxl: allow to specify head limit to qxl driver
Date: Tue, 09 Jun 2015 11:43:39 +0200

On Di, 2015-06-09 at 10:26 +0100, Frediano Ziglio wrote:
> 2015-06-09 10:12 GMT+01:00 Gerd Hoffmann <address@hidden>:
> > On Di, 2015-06-09 at 09:49 +0100, Frediano Ziglio wrote:
> >> This patch allow to limit number of heads using qxl driver. By default
> >> qxl driver is not limited on any kind on head use so can decide to use
> >> as much heads.
> >
> > There is a hard limit of 16 monitors in the qxl device ...
> >
> 
> Ok, didn't see it.

The rom->client_monitors_config heads array has 16 entries, and I
suspect the same limit could be in more places ...

> >> +    if (d->max_heads && d->max_heads <= 64) {
> >> +        rom->flags         = cpu_to_le64(QXL_ROM_FLAG_MAX_HEADS);
> >> +        rom->max_heads     = cpu_to_le16(d->max_heads);
> >> +    }
> >
> > rom does already carry information about the heads.  How about simply
> > applying the limit when filling rom->client_monitors_config in
> > interface_client_monitors_config()?
> >
> > No device changes, no driver changes, alot less trouble.
> >
> > cheers,
> >   Gerd
> >
> 
> So what you are proposing is client should limit heads based on
> spice-server limit and also spice-server should limit monitor received
> from client.

No.  You'll add a new property like you did.  In
interface_client_monitors_config(), where qemu already checks it
wouldn't overflow the 16 entries in the array it has, you additionally
check for the configured limit.

Which will filter the monitors_config sent from spice client to the
guest to not carry more than $limit entries.  So, if you configured two
heads, and spice client says "fyi, I have three heads here ...", qemu
will forward only two entries guests to the guest.  Therefore the guest
will use two heads them only, leaving the third unused.

In theory spice-server could do the filtering too, but doing it in qemu
is easier as you can easily pass in the limit as device property.

cheers,
  Gerd





reply via email to

[Prev in Thread] Current Thread [Next in Thread]