[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHk-=win5DxMK-MH57NSrA+nVxF60MYR9RyArPX5NW_0yaBpoA@mail.gmail.com>
Date: Thu, 6 Aug 2020 12:42:23 -0700
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Joerg Roedel <jroedel@...e.de>
Cc: Ingo Molnar <mingo@...nel.org>,
"Jason A. Donenfeld" <Jason@...c4.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Borislav Petkov <bp@...en8.de>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Andrew Morton <akpm@...ux-foundation.org>,
Tejun Heo <tj@...nel.org>
Subject: Re: [GIT PULL] x86/mm changes for v5.9
On Thu, Aug 6, 2020 at 12:23 PM Joerg Roedel <jroedel@...e.de> wrote:
>
> Yes, that's the best for now. My gut feeling is that the fault Jason is
> seeing didn't happen on a vmalloc address, but I can't prove that yet.
No, it's definitely fairly high in the vmalloc space. Look at the
faulting address:
BUG: unable to handle page fault for address: ffffe8ffffd00608
and the code sequence is this:
> 12: 48 8b 06 mov (%rsi),%rax
> 15: 4c 8b 67 40 mov 0x40(%rdi),%r12
> 19: 49 89 c6 mov %rax,%r14
> 1c: 45 30 f6 xor %r14b,%r14b
> 1f: a8 04 test $0x4,%al
> 21: b8 00 00 00 00 mov $0x0,%eax
> 26: 4c 0f 44 f0 cmove %rax,%r14
that admittedly odd sequence is get_work_pwq(work)
And then the faulting instruction is:
> 2a:* 49 8b 46 08 mov 0x8(%r14),%rax <-- trapping instruction
and this is the "->wq" dereference.
So it's the pwq->wq that traps, with 'pwq' being the trapping base
pointer, and clearly being in the vmalloc space.
I think pwq may a percpu allocation, so not _directly_ vmalloc().
Adding Tejun to the cc in case he can clarify ("No, silly Linus, it's
allocated here..").
Linus
Powered by blists - more mailing lists