[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] [patch 14/16] Kdump: Add /proc/iomem_machine
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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |