Subject: Re: [RFC] mm: Fix memory corruption caused by deferred page initialization

From: Michael Ellerman <[email-masked]>
Date: Sat, 26 Mar 2016 20:47:17 +1100 (AEDT)

Hi Gavin,

On Fri, 2016-25-03 at 16:05:29 UTC, Gavin Shan wrote:
> During deferred page initialization, the pages are moved from memblock
> or bootmem to buddy allocator without checking they were reserved. Those
> reserved pages can be reallocated to somebody else by buddy/slab allocator.
> It leads to memory corruption and potential kernel crash eventually.

Can you give me a bit more detail on what the bug is?

I haven't seen any issues on my systems, but I realise now I haven't enabled
DEFERRED_STRUCT_PAGE_INIT - I assumed it was enabled by default.

How did this get tested before submission?

> This fixes above issue by:
> 
>    * Deferred releasing bootmem bitmap until the completion of deferred
>      page initialization.

As I said in my other mail, we don't support bootmem anymore. So please resend
with just the non-bootmem fixes.

cheers