On Wed, Sep 12, 2007 at 03:42:10PM -0600, Alex Williamson wrote:
> On Wed, 2007-09-12 at 17:28 +0900, Simon Horman wrote:
> > plain text document attachment (ia64-kexec-xen-iomem_machine.patch)
> > Add /proc/iomem_machine. This is basically the iomem regions
> > as the hypervisor sees them. As opposed to Linux's /proc/iomem
> > which is provides a somewhat limited and distorted view of the world.
> > Or in other words, /proc/iomem is for pseudo-phical memory and
> > /proc/iomem_machine is for machine memory.
> >
> > This is needed for kdump to work on ia64 as else it can't place
> > the crashkernel region correctly, nor can it map out all physical
> > memory to be included in the vmcore file in the second kernel.
> >
> > There is an acompanying patch to kexec-tools to allow it
> > to use /proc/iomem_machine instead of /proc/iomem as appropriate.
> >
>
> > @@ -947,7 +952,7 @@ efi_memmap_init(unsigned long *s, unsign
> > md = p;
> > if (!efi_wb(md)) {
> > if (efi_uc(md) && (md->type == EFI_CONVENTIONAL_MEMORY
> > ||
> > - md->type == EFI_BOOT_SERVICES_DATA))
> > {
> > + md->type == EFI_BOOT_SERVICES_DATA))
> > {
>
> This whitespace change doesn't appear to be fixed in upstream, let's
> fix it there first. We don't want too many extraneous changes making
> merge up harder.
Sorry about that, I've remove that hunk now.
> This chunk below scares me for transparent paravirt. It probably
> needs to be protected with a is_running_on_xen()/is_initial_xendomain()
> check. Thanks,
Agreed, I have protected it with is_initial_xendomain() now.
I have also done the same for the code that creates /proc/iomem_machine
> Alex
>
> > +#ifdef CONFIG_PROC_IOMEM_MACHINE
> > +static int
> > +efi_initialize_iomem_machine_resources(void)
> > +{
> > + unsigned long size;
> > + xen_memory_map_t memmap;
> > + xen_ia64_memmap_info_t *memmap_info = NULL;
> > + void *efi_map_start, *efi_map_end;
> > + u64 efi_desc_size;
> > + int ret;
> > +
> > + /* It would be nice if it wasn't neccessary to loop like this */
> > + for (size = 1024; 1; size += 1024) {
> > + memmap_info = kmalloc(size, GFP_KERNEL);
> > + if (memmap_info == NULL)
> > + return -ENOMEM;
> > +
> > + memmap.nr_entries = size;
> > + set_xen_guest_handle(memmap.buffer, memmap_info);
> > + ret = HYPERVISOR_memory_op(XENMEM_machine_memory_map, &memmap);
> > + if (!ret)
> > + break;
> > +
--
Horms
H: http://www.vergenet.net/~horms/
W: http://www.valinux.co.jp/en/
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|