Re: [PATCH] mm: Avoid overlap the fixmap area on i386

Minfei Huang
2014-10-29T04:30:39Z

On 10/28/14 at 08:14pm, H. Peter Anvin wrote:
> On 10/28/2014 10:29 AM, Thomas Gleixner wrote:
> > On Tue, 28 Oct 2014, H. Peter Anvin wrote:
> >> On 10/28/2014 04:06 AM, Thomas Gleixner wrote:
> >>>>
> >>>> The available address we can use is lower than FIXADDR_BOOT_START. So
> >>>> We will set the kmap boundary below the FIXADDR_BOOT_START, if configure
> >>>> the high memory.
> >>>>
> >>>> If we configure the high memory, the vmalloc reserve area should end
> >>>> up to PKMAP_BASE, otherwise should end up to FIXADDR_BOOT_START.
> >>>
> >>> Which is not really a problem, because the FIXADDR_BOOT area is only
> >>> used during boot for early_ioremap() and it's unused when ioremap() is
> >>> functional. vmalloc becomes available after early boot so the
> >>> FIXADDR_BOOT area is available for reuse.
> >>>
> >>
> >> Given the very limited address space available on i386, it would be
> >> extremely undesirable to not reuse address space when possible.
> >
> > Fair enough. Then we should do that for the highmem=y case as well.
> >
>
> It is probably even more important for highmem=y...
>
> -hpa

Agree. Maybe we can overlap the early_ioremap fix address to re-use
it. Virtual address is more precious on i386, especially when turn on the
high memory.

I will post an patch to fix it.

>
>