From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758707AbbEaS35 (ORCPT ); Sun, 31 May 2015 14:29:57 -0400 Received: from g1t5425.austin.hp.com ([15.216.225.55]:44602 "EHLO g1t5425.austin.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758551AbbEaS3t (ORCPT ); Sun, 31 May 2015 14:29:49 -0400 Message-ID: <556B5316.6010201@hp.com> Date: Sun, 31 May 2015 14:29:42 -0400 From: Waiman Long User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130109 Thunderbird/10.0.12 MIME-Version: 1.0 To: Sasha Levin CC: hpa@zytor.com, doug.hatch@hp.com, oleg@redhat.com, raghavendra.kt@linux.vnet.ibm.com, peterz@infradead.org, bp@alien8.de, linux-kernel@vger.kernel.org, riel@redhat.com, daniel@numascale.com, scott.norton@hp.com, boris.ostrovsky@oracle.com, akpm@linux-foundation.org, tglx@linutronix.de, david.vrabel@citrix.com, paolo.bonzini@gmail.com, paulmck@linux.vnet.ibm.com, torvalds@linux-foundation.org, konrad.wilk@oracle.com, mingo@kernel.org, linux-tip-commits@vger.kernel.org Subject: Re: [tip:locking/core] locking/pvqspinlock, x86: Implement the paravirt qspinlock call patching References: <1429901803-29771-10-git-send-email-Waiman.Long@hp.com> <556937E3.8020601@oracle.com> In-Reply-To: <556937E3.8020601@oracle.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/30/2015 12:09 AM, Sasha Levin wrote: > On 05/08/2015 09:27 AM, tip-bot for Peter Zijlstra (Intel) wrote: >> Commit-ID: f233f7f1581e78fd9b4023f2e7d8c1ed89020cc9 >> Gitweb: http://git.kernel.org/tip/f233f7f1581e78fd9b4023f2e7d8c1ed89020cc9 >> Author: Peter Zijlstra (Intel) >> AuthorDate: Fri, 24 Apr 2015 14:56:38 -0400 >> Committer: Ingo Molnar >> CommitDate: Fri, 8 May 2015 12:37:09 +0200 >> >> locking/pvqspinlock, x86: Implement the paravirt qspinlock call patching >> >> We use the regular paravirt call patching to switch between: >> >> native_queued_spin_lock_slowpath() __pv_queued_spin_lock_slowpath() >> native_queued_spin_unlock() __pv_queued_spin_unlock() >> >> We use a callee saved call for the unlock function which reduces the >> i-cache footprint and allows 'inlining' of SPIN_UNLOCK functions >> again. >> >> We further optimize the unlock path by patching the direct call with a >> "movb $0,%arg1" if we are indeed using the native unlock code. This >> makes the unlock code almost as fast as the !PARAVIRT case. >> >> This significantly lowers the overhead of having >> CONFIG_PARAVIRT_SPINLOCKS enabled, even for native code. >> >> Signed-off-by: Peter Zijlstra (Intel) >> Signed-off-by: Waiman Long >> Signed-off-by: Peter Zijlstra (Intel) >> Cc: Andrew Morton >> Cc: Boris Ostrovsky >> Cc: Borislav Petkov >> Cc: Daniel J Blueman >> Cc: David Vrabel >> Cc: Douglas Hatch >> Cc: H. Peter Anvin >> Cc: Konrad Rzeszutek Wilk >> Cc: Linus Torvalds >> Cc: Oleg Nesterov >> Cc: Paolo Bonzini >> Cc: Paul E. McKenney >> Cc: Peter Zijlstra >> Cc: Raghavendra K T >> Cc: Rik van Riel >> Cc: Scott J Norton >> Cc: Thomas Gleixner >> Cc: virtualization@lists.linux-foundation.org >> Cc: xen-devel@lists.xenproject.org >> Link: http://lkml.kernel.org/r/1429901803-29771-10-git-send-email-Waiman.Long@hp.com >> Signed-off-by: Ingo Molnar > Hey Peter, > > I'm seeing this on the latest -next kernel: > > [ 8693.503262] BUG: KASan: out of bounds access in __pv_queued_spin_lock_slowpath+0x84e/0x8c0 at addr ffffffffb9495950 > [ 8693.503271] Read of size 8 by task swapper/9/0 > [ 8693.503289] Address belongs to variable pv_lock_ops+0x10/0x240 I would like to clarify what the message means. pv_locks_ops + 0x10 should be the pv_wait function pointer. Also the structure should be just 32 bytes in size and so what does the "/0x240" mean? Cheers, Longman