lkml.org 
[lkml]   [2018]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [mm 4.15-rc8] Random oopses under memory pressure.
    On Tue, Jan 16, 2018 at 12:06 AM, Dave Hansen
    <dave.hansen@linux.intel.com> wrote:
    > On 01/15/2018 06:14 PM, Linus Torvalds wrote:
    >> But I'm adding Dave Hansen explicitly to the cc, in case he has any
    >> ideas. Not because I blame him, but he's touched the sparsemem code
    >> fairly recently, so maybe he'd have some idea on adding sanity
    >> checking to the sparsemem version of pfn_to_page().
    >
    > I swear I haven't touched it lately!

    Heh. I did

    git blame -C mm/sparse.c | grep 2017

    and your name shows up at the beginning a lot because of commit
    c4e1be9ec113 ("mm, sparsemem: break out of loops early").

    And Michal Hocko (who shows up even more) was already on the cc.

    > I'm not sure I'd go after pfn_to_page(). *Maybe* if we were close to
    > the places where we've done a pfn_to_page(), but I'm not seeing those.

    Fair enough. I just wanted to add debugging, looked at Tetsuo's
    config, and went "no way am I adding debugging to the sparsemem case
    because it's so confusing".

    That said, I also started looking at "kmap_to_page()". That's
    something that is *really* different with HIGHMEM, and while most of
    the users are in random drivers that do crazy things, I do note that
    one of the users is in mm/swap.c.

    That thing goes back to commit 5a178119b0fb ("mm: add support for
    direct_IO to highmem pages") and was only used for swap_writepage(),
    if I read this right.

    That swap_writepage() use of kmap()'ed patches was removed some time
    later in commit 62a8067a7f35 ("bio_vec-backed iov_iter"), but the
    crazy kmap_to_page() thing remained.

    I see nothing actively wrong in there, but it really feels like a
    "that is all bogus" thing to me.

    > Did anyone else notice the
    >
    > [ 31.068198] ? vmalloc_sync_all+0x150/0x150
    >
    > present in a bunch of the stack traces? That should be pretty uncommon.

    No, didn't notice that. And yes, vmalloc_sync_all() might be interesting.

    > Is it just part of the normal do_page_fault() stack and the stack
    > dumper picks up on it?

    I don't think so. It should *not* happen normally. The fact that it
    shows up in the trace means it happened that time.

    It doesn't seem HIGHMEM-related, though. Or maybe the highmem signal
    is bogus too, and it's just that Tetsuo's reproducer needs magical
    timing.

    Linus

    \
     
     \ /
      Last update: 2018-01-16 20:31    [W:2.158 / U:0.256 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site