[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] "vmalloc sync one failure" and host lockup



Konrad Rzeszutek Wilk writes ("Re: "vmalloc sync one failure" and host lockup"):
> This .. I thought was fixed years ago. Say 
> 461ae488ecb125b140d7ea29ceeedbcce9327003 ?

The tree I'm using has that change.  At least, it seems to.  Here is
the whole of alloc_vm_area.

Ian.

/**
 *      alloc_vm_area - allocate a range of kernel address space
 *      @size:          size of the area
 *
 *      Returns:        NULL on failure, vm_struct on success
 *
 *      This function reserves a range of kernel address space, and
 *      allocates pagetables to map that range.  No actual mappings
 *      are created.  If the kernel address space is not shared
 *      between processes, it syncs the pagetable across all
 *      processes.
 */
struct vm_struct *alloc_vm_area(size_t size)
{
        struct vm_struct *area;

        area = get_vm_area_caller(size, VM_IOREMAP,
                                __builtin_return_address(0));
        if (area == NULL)
                return NULL;

        /*
         * This ensures that page tables are constructed for this region
         * of kernel virtual address space and mapped into init_mm.
         */
        if (apply_to_page_range(&init_mm, (unsigned long)area->addr,
                                area->size, f, NULL)) {
                free_vm_area(area);
                return NULL;
        }

        /* Make sure the pagetables are constructed in process kernel
           mappings */
        vmalloc_sync_all();

        return area;
}
EXPORT_SYMBOL_GPL(alloc_vm_area);

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.