[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook
From: |
Avi Kivity |
Subject: |
Re: [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook |
Date: |
Mon, 26 Mar 2012 13:02:03 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120316 Thunderbird/11.0 |
On 03/26/2012 01:01 PM, Stefano Stabellini wrote:
> On Sun, 25 Mar 2012, Avi Kivity wrote:
> > On 03/23/2012 06:37 PM, Jan Kiszka wrote:
> > > On 2012-03-23 16:08, Julien Grall wrote:
> > > > On 03/22/2012 05:44 PM, Jan Kiszka wrote:
> > > >>>
> > > >>> static void core_region_nop(MemoryListener *listener,
> > > >>> diff --git a/ioport.c b/ioport.c
> > > >>> index 78a3b89..073ed75 100644
> > > >>> --- a/ioport.c
> > > >>> +++ b/ioport.c
> > > >>> @@ -28,6 +28,7 @@
> > > >>> #include "ioport.h"
> > > >>> #include "trace.h"
> > > >>> #include "memory.h"
> > > >>> +#include "hw/xen.h"
> > > >>>
> > > >>> /***********************************************************/
> > > >>> /* IO Port */
> > > >>> @@ -155,6 +156,11 @@ int register_ioport_read(pio_addr_t start, int
> > > >>> length, int size,
> > > >>> i);
> > > >>> ioport_opaque[i] = opaque;
> > > >>> }
> > > >>> +
> > > >>> + if (xen_enabled()) {
> > > >>> + xen_map_iorange(start, length, 0);
> > > >>> + }
> > > >>> +
> > > >>> return 0;
> > > >>> }
> > > >>>
> > > >>> @@ -175,7 +181,13 @@ int register_ioport_write(pio_addr_t start, int
> > > >>> length, int size,
> > > >>> i);
> > > >>> ioport_opaque[i] = opaque;
> > > >>> }
> > > >>> +
> > > >>> + if (xen_enabled()) {
> > > >>> + xen_map_iorange(start, length, 0);
> > > >>> + }
> > > >>> +
> > > >>> return 0;
> > > >>> +
> > > >>> }
> > > >>>
> > > >>> static uint32_t ioport_readb_thunk(void *opaque, uint32_t addr)
> > > >>> @@ -260,6 +272,11 @@ void isa_unassign_ioport(pio_addr_t start, int
> > > >>> length)
> > > >>> ioport_destructor_table[start](ioport_opaque[start]);
> > > >>> ioport_destructor_table[start] = NULL;
> > > >>> }
> > > >>> +
> > > >>> + if (xen_enabled()) {
> > > >>> + xen_unmap_iorange(start, length, 0);
> > > >>> + }
> > > >>> +
> > > >>> for(i = start; i< start + length; i++) {
> > > >>> ioport_read_table[0][i] = NULL;
> > > >>> ioport_read_table[1][i] = NULL;
> > > >>>
> > > >> memory_listener_register(xen_hooks, system_io)?
> > > >>
> > > > QEMU doesn't seem to call region_add/region_del for ioport.
> > > > Moreover, some of ioport are directly register without
> > > > using memory hook (for example cirrus vga).
> > > >
> > > > What is the best way to do it ?
> > >
> > > I haven't looked at details. Maybe it is just a combination of "use case
> > > not yet considered, but can easily be added" and "need to switch legacy
> > > code to new scheme". Then this still remains the better option than this
> > > hook. Avi?
> >
> > Just the second - region_add/del will be called, but only for ioports
> > registered via the MemoryRegion APIs.
>
> It looks like there are quite a few register_ioport_read/write left
> around, especially in the following files:
>
> hw/acpi_piix4.c
> hw/cirrus_vga.c
> hw/serial.c
> hw/pckbd.c
> hw/pc.c
>
> I guess they should all be converted to memory_region_init_io, right?
Right.
--
error compiling committee.c: too many arguments to function
- [Qemu-devel] [QEMU][RFC PATCH 0/6] QEMU disaggregation, Julien Grall, 2012/03/22
- [Qemu-devel] [QEMU][RFC PATCH 6/6] xen: handle qemu disaggregation, Julien Grall, 2012/03/22
- [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook, Julien Grall, 2012/03/22
- Re: [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook, Jan Kiszka, 2012/03/22
- Re: [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook, Julien Grall, 2012/03/23
- Re: [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook, Jan Kiszka, 2012/03/23
- Re: [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook, Avi Kivity, 2012/03/25
- Re: [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook, Stefano Stabellini, 2012/03/26
- Re: [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook,
Avi Kivity <=
- Re: [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook, Julien Grall, 2012/03/26
- Re: [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook, Avi Kivity, 2012/03/26
Re: [Qemu-devel] [QEMU][RFC PATCH 3/6] memory: Add xen memory hook, Anthony Liguori, 2012/03/23
[Qemu-devel] [QEMU][RFC PATCH 1/6] option: Add -xen-dmid, Julien Grall, 2012/03/22
[Qemu-devel] [QEMU][RFC PATCH 4/6] xen-pci: Register PCI in Xen, Julien Grall, 2012/03/22