Messages in this thread | | | Date | Thu, 25 Jun 2015 12:58:45 +0000 (UTC) | From | Mathieu Desnoyers <> | Subject | Re: [RFC PATCH] Fix: x86 unaligned __memcpy to/from virtual memory |
| |
----- On Jun 24, 2015, at 8:37 PM, Linus Torvalds torvalds@linux-foundation.org wrote:
> On Wed, Jun 24, 2015 at 4:54 PM, Mathieu Desnoyers > <mathieu.desnoyers@efficios.com> wrote: >> >> OK, see below. This time the fault occurred at an unaligned address. >> It fails on the !pte_present(*pte_ref) check. > > So every time, %rcx is 0x001fb. > > Once, your rdx value (which is remaining bytes after the movsq) was 3, > the other two times it's 0. > > What's so magical about that 4056-byte copy (+3 bytes once)? Are you > *sure* that copy is valid?
*grumble* after another round of inspection, it appears that the cause is a missing lock in lttng-modules metadata handling. The race never triggered any safety net until I tried to move to vmalloc.
The updater was just pulling the carpet from under the feet of the reader when doing the reallocation.
The fact that the OOPS disappeared with different CPU configurations and when calling vmalloc_sync_all() after vmalloc() was just due to timing. Sorry for the noise!
Thanks,
Mathieu
-- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com
| |