Git pull request: mach/vmalloc.h removal, and ioremap optimizations
Nicolas Pitre
nico at fluxnic.net
Thu Sep 29 13:19:54 EDT 2011
On Thu, 29 Sep 2011, Rob Herring wrote:
> Nicolas,
>
> On 09/23/2011 08:32 AM, Nicolas Pitre wrote:
> > Russell, please pull
> >
> > git://git.linaro.org/people/nico/linux vmalloc
> >
> > This patch series removes all instances of mach/vmalloc.h in order to
> > have a more unified memory map across all ARM architectures. To do so,
> > the static mappings are moved inside the vmalloc area. And finally this
> > allows for a generic optimization to ioremap where static mappings are
> > reused whenever possible, using common code instead of having this
> > duplicated in a couple places.
>
> I've found that this breaks on versatile (ab and pb) under QEMU. The
> commit causing it is:
>
> commit e0438e2f333005c217a2f65aacab23a39261c64c
> Author: Nicolas Pitre <nicolas.pitre at linaro.org>
> Date: Thu Aug 25 00:35:59 2011 -0400
>
> ARM: move iotable mappings within the vmalloc region
>
> In order to remove the build time variation between different SOCs with
> regards to VMALLOC_END, the iotable mappings are now allocated inside
> the vmalloc region. This allows for VMALLOC_END to be identical across
> all machines.
>
> The value for VMALLOC_END is now set to 0xff000000 which is right where
> the consistent DMA area starts.
>
> To accommodate all static mappings on machines with possible highmem
> usage,
> the default vmalloc area size is changed to 240 MB so that VMALLOC_START
> is no higher than 0xf0000000 by default in that case.
>
> Signed-off-by: Nicolas Pitre <nicolas.pitre at linaro.org>
>
>
> It dies after "Data cache writeback" with BUG at vmalloc.c:1139.
Interesting. Looks like Versatile might have overlapping map_desc
entries.
Could you add the following line at the top of vm_area_add_early() in
mm/vmalloc.c to display the area being added:
printk("%s: called with addr=%p size=0x%lx\n", __func__, vm->addr, vm->size);
This should help determine which entry is wrong.
Nicolas
More information about the linux-arm-kernel
mailing list