All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: Dave Airlie <airlied@gmail.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Cc: Seiji Aguchi <saguchi@redhat.com>
Subject: Re: [Qemu-devel] virtio device error reporting best practice?
Date: Mon, 17 Mar 2014 15:28:08 +0100	[thread overview]
Message-ID: <53270678.8090901@redhat.com> (raw)
In-Reply-To: <CAPM=9twJX3F+as1TuoerW1Yt-b0xw8YEf1YHa0B+MLMJBd0i_w@mail.gmail.com>

On 03/17/14 07:02, Dave Airlie wrote:
> So I'm looking at how best to do virtio gpu device error reporting,
> and how to deal with illegal stuff,
> 
> I've two levels of errors I want to support,
> 
> a) unrecoverable or bad guest kernel programming errors,
> 
> b) per 3D context errors from the renderer backend,
> 
> (b) I can easily report in an event queue and the guest kernel can in
> theory blow away the offenders, this is how GL works with some
> extensions,
> 
> For (a) I can expect a response from every command I put into the main
> GPU control queue, the response should always be no error, but in some
> cases it will be because the guest hit some host resource error, or
> asked for something insane, (guest kernel drivers would be broken in
> most of these cases).
> 
> Alternately I can use the separate event queue to send async errors
> when the guest does something bad,
> 
> I'm also considering adding some sort of flag in config space saying
> the device needs a reset before it will continue doing anything,
> 
> The main reason I'm considering this stuff is for security reasons if
> the guest asks for something really illegal or crazy what should the
> expected behaviour of the host be? (at least secure I know that).

exit(1).

If you grep qemu for it, you'll find such examples. Notably,
"hw/virtio/virtio.c" is chock full of them; if the guest doesn't speak
the basic protocol, there's nothing for the host to do. See also
virtio-blk.c (missing or incorrect headers), virtio-net.c (similar
protocol violations), virtio-scsi.c (wrong header size, bad config etc).

For later, we have a use case on the horizon where all such exits -- not
just virtio, but exit(1) or abort() on invalid guest behavior in general
-- should be optionally coupled (dependent on the qemu command line)
with an automatic dump-guest-memory, in order to help debugging the guest.

Thanks
Laszlo

  reply	other threads:[~2014-03-17 14:28 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-17  6:02 [Qemu-devel] virtio device error reporting best practice? Dave Airlie
2014-03-17 14:28 ` Laszlo Ersek [this message]
2014-03-17 14:40   ` Peter Maydell
2014-03-17 14:49     ` Laszlo Ersek
2014-03-17 14:54       ` Peter Maydell
2014-03-17 14:57       ` Gerd Hoffmann
2014-03-17 19:05       ` Andreas Färber
2014-03-18 12:45       ` Kevin Wolf
2014-03-17 14:57     ` Richard W.M. Jones
2014-03-17 14:59       ` Richard W.M. Jones
2014-03-26 12:49   ` Stefan Hajnoczi
2014-03-17 14:50 ` Gerd Hoffmann
2014-03-19  0:34 ` Rusty Russell
2014-03-19  8:12   ` Markus Armbruster
2014-03-20  3:40     ` Rusty Russell
2014-03-20  6:39       ` Markus Armbruster
2014-03-20 12:53         ` Peter Maydell
2014-03-26 14:34           ` Markus Armbruster
2014-03-27  0:54             ` Venkatesh Srinivas
2014-03-20  6:51   ` Michael S. Tsirkin
2014-03-21  9:44     ` Yan Vugenfirer

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=53270678.8090901@redhat.com \
    --to=lersek@redhat.com \
    --cc=airlied@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=saguchi@redhat.com \
    /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.