Kouya Shimura
2008-Feb-21 10:35 UTC
[Xen-ia64-devel] [PATCH][QEMU][IA64] Fix qemu memory access on IA64
Hi Keir, This patch is for IA64: - correct a parameter to xc_map_foreign_batch(). skipping vga hole. - sync_icache() might overrun a page boundary. qemu-dm will die. Thanks, Kouya Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com> _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@lists.xensource.com http://lists.xensource.com/xen-ia64-devel
Keir Fraser
2008-Feb-21 10:40 UTC
[Xen-devel] Re: [PATCH][QEMU][IA64] Fix qemu memory access on IA64
Please apply it to the IA64 tree. -- Keir On 21/2/08 10:35, "Kouya Shimura" <kouya@jp.fujitsu.com> wrote:> Hi Keir, > > This patch is for IA64: > - correct a parameter to xc_map_foreign_batch(). skipping vga hole. > - sync_icache() might overrun a page boundary. qemu-dm will die. > > Thanks, > Kouya > > Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com> > > diff -r f853c0497095 tools/ioemu/hw/xen_machine_fv.c > --- a/tools/ioemu/hw/xen_machine_fv.c Tue Feb 19 11:14:40 2008 -0700 > +++ b/tools/ioemu/hw/xen_machine_fv.c Thu Feb 21 17:52:55 2008 +0900 > @@ -246,12 +246,18 @@ static void xen_init_fv(uint64_t ram_siz > > for (i = 0; i < nr_pages; i++) > page_array[i] = i; > - > + > /* VTI will not use memory between 3G~4G, so we just pass a legal pfn > to make QEMU map continuous virtual memory space */ > - if (ram_size > MMIO_START) { > + if (ram_size > MMIO_START) { > for (i = 0 ; i < (MEM_G >> XC_PAGE_SHIFT); i++) > page_array[(MMIO_START >> XC_PAGE_SHIFT) + i] > + (STORE_PAGE_START >> XC_PAGE_SHIFT); > + } > + /* skipping VGA hole, same as above */ > + if (ram_size > VGA_IO_START) { > + for (i = 0 ; i < (VGA_IO_SIZE >> XC_PAGE_SHIFT); i++) > + page_array[(VGA_IO_START >> XC_PAGE_SHIFT) + i] > (STORE_PAGE_START >> XC_PAGE_SHIFT); > } > > diff -r f853c0497095 tools/ioemu/target-i386-dm/exec-dm.c > --- a/tools/ioemu/target-i386-dm/exec-dm.c Tue Feb 19 11:14:40 2008 -0700 > +++ b/tools/ioemu/target-i386-dm/exec-dm.c Thu Feb 21 19:36:20 2008 +0900 > @@ -350,12 +350,13 @@ CPUReadMemoryFunc **cpu_get_io_memory_re > * So to emulate right behavior that guest OS is assumed, we need to flush > * I/D cache here. > */ > -static void sync_icache(unsigned long address, int len) > -{ > - int l; > - > - for(l = 0; l < (len + 32); l += 32) > - __ia64_fc(address + l); > +static void sync_icache(uint8_t *address, int len) > +{ > + unsigned long addr = (unsigned long)address; > + unsigned long end = addr + len; > + > + for (addr &= ~(32UL-1); addr < end; addr += 32UL) > + __ia64_fc(addr); > > ia64_sync_i(); > ia64_srlz_i();_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Alex Williamson
2008-Feb-22 17:04 UTC
[Xen-devel] Re: [Xen-ia64-devel] [PATCH][QEMU][IA64] Fix qemu memory access on IA64
On Thu, 2008-02-21 at 19:35 +0900, Kouya Shimura wrote:> Hi Keir, > > This patch is for IA64: > - correct a parameter to xc_map_foreign_batch(). skipping vga hole. > - sync_icache() might overrun a page boundary. qemu-dm will die.Applied. Thanks, Alex -- Alex Williamson HP Open Source & Linux Org. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel