[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+55aFzo++g5tp516SBxoPeA7ePqDwjbfpo9NU5_m9H0JOXEDA@mail.gmail.com>
Date: Wed, 24 Jun 2015 12:15:50 -0700
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
Cc: Thomas Gleixner <tglx@...utronix.de>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>,
"the arch/x86 maintainers" <x86@...nel.org>
Subject: Re: [RFC PATCH] Fix: x86 unaligned __memcpy to/from virtual memory
On Wed, Jun 24, 2015 at 11:49 AM, Mathieu Desnoyers
<mathieu.desnoyers@...icios.com> wrote:
>
> Here is the output. I added the printk just after the initial range
> check within vmalloc_fault.
Good. Can you add printk's to the error return paths too, so that we
see which one it is that triggers.
If it is a valid vmalloc address, then vmalloc_fault() _should_ just
fix it up and return 0. Clearly it doesn't, and hits one of the
"return -1" cases instead.
In particular, that
pgd_ref = pgd_offset_k(address);
should return the reference page table pointer for init_mm, which is
what vmalloc() itself *should* be populating.
The fact that it sounds like one of the "pud/pmd/pte_none()" checks
for the reference ends up returning true, seems to indicate that the
page tables haven't been filled in even for the reference address.
Which is really really odd.
I'm really inclined to think that it's something in lttng, because
it's so odd. A race with vunmap() on another CPU? How could
vmalloc_fault() not see the reference page table contents?
Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists