qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 3/4] virtio-gpu: v0.3 of the virtio based GPU co


From: Paolo Bonzini
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
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

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



reply via email to

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