mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-09-02 06:51:53 -06:00
input: add trace events for full queues
It isn't unusual to happen, for example during reboot when the guest doesn't reveice events for a while. So better don't flood stderr with alarming messages. Turn them into tracepoints instead so they can be enabled in case they are needed for trouble-shooting. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 1466675495-28797-1-git-send-email-kraxel@redhat.com
This commit is contained in:
parent
d7b7f526b1
commit
c80276b420
3 changed files with 10 additions and 2 deletions
|
@ -27,6 +27,7 @@
|
||||||
#include "ui/console.h"
|
#include "ui/console.h"
|
||||||
#include "qemu/timer.h"
|
#include "qemu/timer.h"
|
||||||
#include "hw/input/hid.h"
|
#include "hw/input/hid.h"
|
||||||
|
#include "trace.h"
|
||||||
|
|
||||||
#define HID_USAGE_ERROR_ROLLOVER 0x01
|
#define HID_USAGE_ERROR_ROLLOVER 0x01
|
||||||
#define HID_USAGE_POSTFAIL 0x02
|
#define HID_USAGE_POSTFAIL 0x02
|
||||||
|
@ -234,7 +235,7 @@ static void hid_keyboard_event(DeviceState *dev, QemuConsole *src,
|
||||||
key->down,
|
key->down,
|
||||||
scancodes);
|
scancodes);
|
||||||
if (hs->n + count > QUEUE_LENGTH) {
|
if (hs->n + count > QUEUE_LENGTH) {
|
||||||
fprintf(stderr, "usb-kbd: warning: key event queue full\n");
|
trace_hid_kbd_queue_full();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
|
|
|
@ -23,3 +23,9 @@ milkymist_softusb_memory_write(uint32_t addr, uint32_t value) "addr %08x value %
|
||||||
milkymist_softusb_mevt(uint8_t m) "m %d"
|
milkymist_softusb_mevt(uint8_t m) "m %d"
|
||||||
milkymist_softusb_kevt(uint8_t m) "m %d"
|
milkymist_softusb_kevt(uint8_t m) "m %d"
|
||||||
milkymist_softusb_pulse_irq(void) "Pulse IRQ"
|
milkymist_softusb_pulse_irq(void) "Pulse IRQ"
|
||||||
|
|
||||||
|
# hw/input/hid.c
|
||||||
|
hid_kbd_queue_full(void) "queue full"
|
||||||
|
|
||||||
|
# hw/input/virtio
|
||||||
|
virtio_input_queue_full(void) "queue full"
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "qemu/iov.h"
|
#include "qemu/iov.h"
|
||||||
|
#include "trace.h"
|
||||||
|
|
||||||
#include "hw/qdev.h"
|
#include "hw/qdev.h"
|
||||||
#include "hw/virtio/virtio.h"
|
#include "hw/virtio/virtio.h"
|
||||||
|
@ -47,7 +48,7 @@ void virtio_input_send(VirtIOInput *vinput, virtio_input_event *event)
|
||||||
virtqueue_get_avail_bytes(vinput->evt, &have, NULL, need, 0);
|
virtqueue_get_avail_bytes(vinput->evt, &have, NULL, need, 0);
|
||||||
if (have < need) {
|
if (have < need) {
|
||||||
vinput->qindex = 0;
|
vinput->qindex = 0;
|
||||||
fprintf(stderr, "%s: ENOSPC in vq, dropping events\n", __func__);
|
trace_virtio_input_queue_full();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue