Re: [PATCH v2] x86/mm/vmfault: Make vmalloc_fault() handle large pages

From: Toshi Kani
Date: Tue Feb 16 2016 - 09:28:54 EST


On Sat, 2016-02-13 at 12:54 +0100, Borislav Petkov wrote:
> On Thu, Feb 11, 2016 at 05:27:16PM -0700, Toshi Kani wrote:
> > The following oops was observed when a read syscall was made to
> > a pmem device after a huge amount (>512GB) of vmalloc ranges was
> > allocated by ioremap() on a x86_64 system.
> >
> > ÂBUG: unable to handle kernel paging request at ffff880840000ff8
> > ÂIP: [<ffffffff810664ae>] vmalloc_fault+0x1be/0x300
> > ÂPGD c7f03a067 PUD 0
> > ÂOops: 0000 [#1] SM
> > ÂÂÂ:
> > ÂCall Trace:
> > Â[<ffffffff81067335>] __do_page_fault+0x285/0x3e0
> > Â[<ffffffff810674bf>] do_page_fault+0x2f/0x80
> > Â[<ffffffff810d6d85>] ? put_prev_entity+0x35/0x7a0
> > Â[<ffffffff817a6888>] page_fault+0x28/0x30
> > Â[<ffffffff813bb976>] ? memcpy_erms+0x6/0x10
> > Â[<ffffffff817a0845>] ? schedule+0x35/0x80
> > Â[<ffffffffa006350a>] ? pmem_rw_bytes+0x6a/0x190 [nd_pmem]
> > Â[<ffffffff817a3713>] ? schedule_timeout+0x183/0x240
> > Â[<ffffffffa028d2b3>] btt_log_read+0x63/0x140 [nd_btt]
> > ÂÂÂ:
> > Â[<ffffffff811201d0>] ? __symbol_put+0x60/0x60
> > Â[<ffffffff8122dc60>] ? kernel_read+0x50/0x80
> > Â[<ffffffff81124489>] SyS_finit_module+0xb9/0xf0
> > Â[<ffffffff817a4632>] entry_SYSCALL_64_fastpath+0x1a/0xa4
>
> Please remove those virtual addresses and offsets here as they're
> meaningless and leave only the callstack.

Will do.

Â:
> > ---
> > When this patch is accepted, please copy to stable up to 4.1.
>
> You can do that yourself when submitting by adding this to the CC-list
> above.
>
> Cc: <stable@xxxxxxxxxxxxxxx> # 4.1..

I see. ÂI will add it to the next version.

> Rest looks ok to me.

Great! ÂThanks,
-Toshi