From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34128) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WPYr9-0001I6-Ot for qemu-devel@nongnu.org; Mon, 17 Mar 2014 10:49:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WPYr3-0006TK-PQ for qemu-devel@nongnu.org; Mon, 17 Mar 2014 10:49:35 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48253) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WPYr3-0006TA-HX for qemu-devel@nongnu.org; Mon, 17 Mar 2014 10:49:29 -0400 Message-ID: <53270B6D.6030602@redhat.com> Date: Mon, 17 Mar 2014 15:49:17 +0100 From: Laszlo Ersek MIME-Version: 1.0 References: <53270678.8090901@redhat.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] virtio device error reporting best practice? List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Dave Airlie , "qemu-devel@nongnu.org" , Seiji Aguchi On 03/17/14 15:40, Peter Maydell wrote: > On 17 March 2014 14:28, Laszlo Ersek wrote: >> On 03/17/14 07:02, Dave Airlie wrote: >>> 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). > > No thanks -- the guest should never be able to cause QEMU > to exit (in an ideal world). Use > qemu_log_mask(LOG_GUEST_ERROR, ...) > and continue. How do you continue with a garbled virtio ring? Say you detect an error that would cause integer overflow or buffer overflow in the host, a clear virtio protocol violation etc. Error reporting is just one thing -- what are the semantics of continuing? Exit(1) is considered guest crash. "The guest should never be able to cause QEMU to exit" is identical to "a bare metal kernel should never be able to crash a physical machine, even if it wants to". Some behavior is left undefined even in hardware manuals. Crashing as early as possible is safe and helpful. Just my opinion, naturally. Thanks, Laszlo