[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1300990853.3747.189.camel@edumazet-laptop>
Date: Thu, 24 Mar 2011 19:20:53 +0100
From: Eric Dumazet <eric.dumazet@...il.com>
To: Christoph Lameter <cl@...ux.com>
Cc: Pekka Enberg <penberg@...nel.org>, Ingo Molnar <mingo@...e.hu>,
torvalds@...ux-foundation.org, akpm@...ux-foundation.org,
tj@...nel.org, npiggin@...nel.dk, rientjes@...gle.com,
linux-kernel@...r.kernel.org, linux-mm@...ck.org
Subject: Re: [GIT PULL] SLAB changes for v2.6.39-rc1
Le jeudi 24 mars 2011 à 13:15 -0500, Christoph Lameter a écrit :
> But then we would get the bug in kmem_cache_alloc() and not in the
> *_emu() function. So the _emu is executing but failing on Ingo's system
> but not on mine. Question is why.
>
> For some reason the first reference to %gs:(%rsi) wont work right on his
> system:
>
> From arch/x86/lib/cmpxchg16b_emu
>
> #
> # Emulate 'cmpxchg16b %gs:(%rsi)' except we return the result in %al not
> # via the ZF. Caller will access %al to get result.
> #
> # Note that this is only useful for a cpuops operation. Meaning that we
> # do *not* have a fully atomic operation but just an operation that is
> # *atomic* on a single cpu (as provided by the this_cpu_xx class of
> # macros).
> #
> this_cpu_cmpxchg16b_emu:
> pushf
> cli
>
> cmpq %gs:(%rsi), %rax
> jne not_same
> cmpq %gs:8(%rsi), %rdx
> jne not_same
>
> movq %rbx, %gs:(%rsi)
> movq %rcx, %gs:8(%rsi)
>
> popf
> mov $1, %al
> ret
>
> not_same:
> popf
> xor %al,%al
> ret
>
> CFI_ENDPROC
Random guess
Masking interrupts, and accessing vmalloc() based memory for the first
time ?
--
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