|
From: | Laszlo Ersek |
Subject: | Re: [Qemu-devel] [Xen-devel] qemu(-dm): aborting on wrong mmio size? |
Date: | Tue, 31 Jan 2012 11:54:45 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111104 Red Hat/3.1.16-2.el6_1 Mnenhy/0.8.4 Thunderbird/3.1.16 |
On 01/31/12 11:36, Jan Beulich wrote:
On 31.01.12 at 10:34, Laszlo Ersek<address@hidden> wrote:in the qemu-xen-unstable tree (git://xenbits.xen.org/qemu-xen-unstable.git), the do_inp() function [i386-dm/helper2.c] makes the process exit if the operand size is wrong. Blame: 6040eea5 ("More files imported from xen-unstable 17192:59b8768d0d0d"). In the qemu tree (git://git.qemu.org/qemu.git), the do_inp() function [xen-all.c] does the same (via hw_error() / abort()). Blame: 9ce94e7c ("xen: Initialize event channels and io rings"). Is it justified to kill the emulator when this happens (eg. memory mapped IO with 64-bit operand)?Afaict, this is not about MMIO, but PIO.
One possible way seems to be (see http://xenbits.xensource.com/hg/linux-2.6.18-xen.hg/rev/1141):
vmx_hpw_miss() [xen/arch/ia64/vmx/vmx_fault.c] -> emulate_io_inst() [xen/arch/ia64/vmx/mmio.c] -> mmio_access() -> legacy_io_access() -> vmx_send_assist_req() [xen/arch/ia64/vmx/vmx_support.c] -> notify_via_xen_event_channel() [xen/common/event_channel.c] and in qemu-xen-unstable, cpu_handle_ioreq() [i386-dm/helper2.c], set up in main_loop() -> __handle_ioreq() -> cpu_ioreq_pio() -> do_inp() Thanks, Laszlo
[Prev in Thread] | Current Thread | [Next in Thread] |