Re: [PATCH 18/19] x86, mpx: do not count MPX VMAs as neighbors when unmapping

Thomas Gleixner
2015-05-18T21:54:06Z

On Fri, 8 May 2015, Dave Hansen wrote:
> The comment pretty much says it all.
>
> I wrote a test program that does lots of random allocations
> and forces bounds tables to be created. It came up with a
> layout like this:
>
> .... | BOUNDS DIRECTORY ENTRY COVERS | ....
> | BOUNDS TABLE COVERS |
> | BOUNDS TABLE | REAL ALLOC | BOUNDS TABLE |
>
> Unmapping "REAL ALLOC" should have been able to free the
> bounds table "covering" the "REAL ALLOC" because it was the
> last real user. But, the neighboring VMA bounds tables were
> found, considered as real neighbors, and we declined to free
> the bounds table covering the area.
>
> Doing this over and over left a small but significant number
> of these orphans. Handling them is fairly straighforward.
> All we have to do is walk the VMAs and skip all of the MPX
> ones when looking for neighbors.
>
> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>

Reviewed-by: Thomas Gleixner <tglx@linutronix.de>