All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>
Cc: airlied@redhat.com, qemu-devel@nongnu.org,
	Anthony Liguori <aliguori@amazon.com>
Subject: Re: [Qemu-devel] [PATCH 3/4] virtio-gpu: v0.3 of the virtio based GPU code.
Date: Thu, 13 Mar 2014 11:40:13 +0100	[thread overview]
Message-ID: <53218B0D.8000405@redhat.com> (raw)
In-Reply-To: <20140312202611.GB3004@redhat.com>

Il 12/03/2014 21:26, Michael S. Tsirkin ha scritto:
>> +Event queue:
>> +The only current event passed is a message to denote the host
>> +wants to update the layout of the screens. It contains the same
>> +info as the response to VIRTGPU_CMD_GET_DISPLAY_INFO.

I wonder if an event queue is the best mechanism if you can get the same 
info from a command anyway.  For virtio-scsi I used a queue because I 
needed to specify which target or LUN the event applied to, but here you 
do not need it and a queue is susceptible to dropped events.

Perhaps a configuration field is better, like this:

     u32 events_read;
     u32 events_clear;

A new event sets a bit in events_read and generates a configuration 
change interrupt.  The guest should never write to events_read.

Writing to events_clear has the side effect of the device doing 
"events_read &= ~events_clear".  We cannot have R/W1C fields in virtio, 
but this approximation is good enough.

When the guest receives a configuration change interrupt, it reads 
event_read.  If it is nonzero, it writes the same value it read to 
events_clear, and sends the necessary commands to the card in order to 
retrieve the event data.  It can then read again event_read, and loop if 
it is again nonzero.

Paolo

  parent reply	other threads:[~2014-03-13 10:40 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-12 12:55 [Qemu-devel] [PATCH 0/4] vga: new display devices Gerd Hoffmann
2014-03-12 12:55 ` [Qemu-devel] [PATCH 1/4] vga: allow non-global vmstate Gerd Hoffmann
2014-03-12 12:55 ` [Qemu-devel] [PATCH 2/4] vga: add secondary stdvga variant Gerd Hoffmann
2014-03-12 13:11   ` Eric Blake
2014-03-12 12:55 ` [Qemu-devel] [PATCH 3/4] virtio-gpu: v0.3 of the virtio based GPU code Gerd Hoffmann
2014-03-12 20:26   ` Michael S. Tsirkin
2014-03-13  9:08     ` Gerd Hoffmann
2014-03-14 11:13       ` Gerd Hoffmann
2014-03-16 12:21         ` Michael S. Tsirkin
2014-03-13 10:40     ` Paolo Bonzini [this message]
2014-03-14 11:18       ` Gerd Hoffmann
2014-03-16 12:28         ` Michael S. Tsirkin
2014-03-17  4:36       ` Dave Airlie
2014-03-17  5:21         ` Dave Airlie
2014-03-17  9:50           ` Paolo Bonzini
2014-03-17  9:27         ` Paolo Bonzini
2014-03-17 11:01         ` Michael S. Tsirkin
2014-03-12 12:55 ` [Qemu-devel] [PATCH 4/4] virtio-vga: v1 Gerd Hoffmann
2014-03-12 13:55 ` [Qemu-devel] [PATCH 0/4] vga: new display devices Laszlo Ersek
2014-03-12 15:47   ` Gerd Hoffmann
2014-03-12 18:14     ` Laszlo Ersek
2014-03-13  8:22       ` Gerd Hoffmann
2014-03-13  8:41         ` Laszlo Ersek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53218B0D.8000405@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=airlied@redhat.com \
    --cc=aliguori@amazon.com \
    --cc=kraxel@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.