All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Ryabinin <a.ryabinin@samsung.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Sasha Levin <sasha.levin@oracle.com>
Cc: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Peter Anvin <hpa@zytor.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Paul McKenney <paulmck@linux.vnet.ibm.com>,
	Waiman Long <waiman.long@hp.com>, Dave Jones <davej@redhat.com>,
	Oleg Nesterov <oleg@redhat.com>,
	the arch/x86 maintainers <x86@kernel.org>,
	Jeremy Fitzhardinge <jeremy@goop.org>,
	Paul Gortmaker <paul.gortmaker@windriver.com>,
	Andi Kleen <ak@linux.intel.com>, Jason Wang <jasowang@redhat.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	KVM list <kvm@vger.kernel.org>,
	virtualization <virtualization@lists.linux-foundation.org>,
	xen-devel@lists.xenproject.org, Rik van Riel <riel@redhat.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	A
Subject: Re: [PATCH] x86 spinlock: Fix memory corruption on completing completions
Date: Fri, 06 Feb 2015 20:03:14 +0300	[thread overview]
Message-ID: <54D4F3D2.3010807@samsung.com> (raw)
In-Reply-To: <CA+55aFwhf0iCKDzv-CiC7qMYa9x8C9keRCUDkXu6KLb8sXsC2w@mail.gmail.com>

On 02/06/2015 07:15 PM, Linus Torvalds wrote:
> On Fri, Feb 6, 2015 at 7:20 AM, Sasha Levin <sasha.levin@oracle.com> wrote:
>>
>> Can we modify it slightly to avoid potentially accessing invalid memory:
> 
> So I think there's a race with that.
> 
> And I'll warn you: the kernel does do speculative reads of memory that
> might be invalid, not just in places like this. See the comment in
> get_user_huge_page() for example, where we knowingly do speculative
> reads, but hide it if DEBUG_PAGEALLOC is set.
> 
> More commonly, CONFIG_DCACHE_WORD_ACCESS is very much about doing
> speculative reads. Now, that access is hidden inside an asm, so KASan
> won't see it, but there might well be others.
> 
> You probably don't see them very much just because they are so rarely
> a problem, and most of the time it's not to other processes stack but
> to allocated structures where freeing takes long enough to basically
> hide any small race..
> 
> In other words: I suspect it would be good to instead just teach KASan
> about "this is a speculative read" and just suppress the warning for
> those instead.
> 

We can suppress warnings by wrapping such speculative reads with
kasan_disable_current()/kasan_enable_current() calls.

WARNING: multiple messages have this Message-ID (diff)
From: Andrey Ryabinin <a.ryabinin@samsung.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Sasha Levin <sasha.levin@oracle.com>
Cc: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Peter Anvin <hpa@zytor.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Paul McKenney <paulmck@linux.vnet.ibm.com>,
	Waiman Long <waiman.long@hp.com>, Dave Jones <davej@redhat.com>,
	Oleg Nesterov <oleg@redhat.com>,
	the arch/x86 maintainers <x86@kernel.org>,
	Jeremy Fitzhardinge <jeremy@goop.org>,
	Paul Gortmaker <paul.gortmaker@windriver.com>,
	Andi Kleen <ak@linux.intel.com>, Jason Wang <jasowang@redhat.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	KVM list <kvm@vger.kernel.org>,
	virtualization <virtualization@lists.linux-foundation.org>,
	xen-devel@lists.xenproject.org, Rik van Riel <riel@redhat.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH] x86 spinlock: Fix memory corruption on completing completions
Date: Fri, 06 Feb 2015 20:03:14 +0300	[thread overview]
Message-ID: <54D4F3D2.3010807@samsung.com> (raw)
In-Reply-To: <CA+55aFwhf0iCKDzv-CiC7qMYa9x8C9keRCUDkXu6KLb8sXsC2w@mail.gmail.com>

On 02/06/2015 07:15 PM, Linus Torvalds wrote:
> On Fri, Feb 6, 2015 at 7:20 AM, Sasha Levin <sasha.levin@oracle.com> wrote:
>>
>> Can we modify it slightly to avoid potentially accessing invalid memory:
> 
> So I think there's a race with that.
> 
> And I'll warn you: the kernel does do speculative reads of memory that
> might be invalid, not just in places like this. See the comment in
> get_user_huge_page() for example, where we knowingly do speculative
> reads, but hide it if DEBUG_PAGEALLOC is set.
> 
> More commonly, CONFIG_DCACHE_WORD_ACCESS is very much about doing
> speculative reads. Now, that access is hidden inside an asm, so KASan
> won't see it, but there might well be others.
> 
> You probably don't see them very much just because they are so rarely
> a problem, and most of the time it's not to other processes stack but
> to allocated structures where freeing takes long enough to basically
> hide any small race..
> 
> In other words: I suspect it would be good to instead just teach KASan
> about "this is a speculative read" and just suppress the warning for
> those instead.
> 

We can suppress warnings by wrapping such speculative reads with
kasan_disable_current()/kasan_enable_current() calls.


  parent reply	other threads:[~2015-02-06 17:03 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-06 14:49 [PATCH] x86 spinlock: Fix memory corruption on completing completions Raghavendra K T
2015-02-06 15:20 ` Sasha Levin
2015-02-06 15:20 ` Sasha Levin
2015-02-06 15:20   ` Sasha Levin
2015-02-06 16:15   ` Linus Torvalds
2015-02-06 16:15   ` Linus Torvalds
2015-02-06 16:15     ` Linus Torvalds
2015-02-06 16:15     ` Linus Torvalds
2015-02-06 17:03     ` Andrey Ryabinin
2015-02-06 17:03     ` Andrey Ryabinin [this message]
2015-02-06 17:03       ` Andrey Ryabinin
2015-02-06 17:03     ` Andrey Ryabinin
2015-02-08 17:14   ` Oleg Nesterov
2015-02-08 17:14   ` Oleg Nesterov
2015-02-08 17:14     ` Oleg Nesterov
2015-02-06 16:25 ` Linus Torvalds
2015-02-06 16:25 ` Linus Torvalds
2015-02-06 16:25   ` Linus Torvalds
2015-02-06 16:25   ` Linus Torvalds
2015-02-06 19:42   ` Davidlohr Bueso
2015-02-06 19:42   ` Davidlohr Bueso
2015-02-06 19:42     ` Davidlohr Bueso
2015-02-06 21:15     ` Sasha Levin
2015-02-06 21:15     ` Sasha Levin
2015-02-06 21:15       ` Sasha Levin
2015-02-06 21:15       ` Sasha Levin
2015-02-06 23:24       ` Davidlohr Bueso
2015-02-06 23:24       ` Davidlohr Bueso
2015-02-06 23:24         ` Davidlohr Bueso
2015-02-06 23:24         ` Davidlohr Bueso
2015-02-06 19:42   ` Davidlohr Bueso
2015-02-08 17:49   ` Raghavendra K T
2015-02-08 17:49   ` Raghavendra K T
2015-02-08 17:49     ` Raghavendra K T
2015-02-08 17:49     ` Raghavendra K T
2015-02-06 18:57 ` Sasha Levin
2015-02-06 18:57 ` Sasha Levin
2015-02-06 18:57   ` Sasha Levin
2015-02-08 17:57   ` Raghavendra K T
2015-02-08 17:57   ` Raghavendra K T
2015-02-08 17:57   ` Raghavendra K T
2015-02-08 21:14 ` Jeremy Fitzhardinge
2015-02-08 21:14 ` Jeremy Fitzhardinge
2015-02-08 21:14   ` Jeremy Fitzhardinge
2015-02-09  9:34   ` Raghavendra K T
2015-02-09  9:34   ` Raghavendra K T
2015-02-09  9:34   ` Raghavendra K T
2015-02-09 12:02     ` Peter Zijlstra
2015-02-09 12:02       ` Peter Zijlstra
2015-02-09 12:52       ` Raghavendra K T
2015-02-09 12:52         ` Raghavendra K T
2015-02-09 12:52       ` Raghavendra K T
2015-02-10  0:53       ` Linus Torvalds
2015-02-10  0:53         ` Linus Torvalds
2015-02-10  0:53         ` Linus Torvalds
2015-02-10  9:30         ` Raghavendra K T
2015-02-10  9:30           ` Raghavendra K T
2015-02-10 13:18           ` Denys Vlasenko
2015-02-10 13:18             ` Denys Vlasenko
2015-02-10 13:20             ` Denys Vlasenko
2015-02-10 13:20             ` Denys Vlasenko
2015-02-10 13:20               ` Denys Vlasenko
2015-02-10 13:20               ` Denys Vlasenko
2015-02-10 14:24             ` Oleg Nesterov
2015-02-10 14:24               ` Oleg Nesterov
2015-02-10 14:24               ` Oleg Nesterov
2015-02-10 14:24             ` Oleg Nesterov
2015-02-10 13:18           ` Denys Vlasenko
2015-02-10 13:18           ` Denys Vlasenko
2015-02-10 13:23           ` Sasha Levin
2015-02-10 13:23           ` Sasha Levin
2015-02-10 13:23             ` Sasha Levin
2015-02-10 13:26           ` Oleg Nesterov
2015-02-10 13:26             ` Oleg Nesterov
2015-02-11  1:18             ` Jeremy Fitzhardinge
2015-02-11  1:18             ` Jeremy Fitzhardinge
2015-02-11  1:18               ` Jeremy Fitzhardinge
2015-02-11  1:18               ` Jeremy Fitzhardinge
2015-02-11 17:24               ` Oleg Nesterov
2015-02-11 17:24                 ` Oleg Nesterov
2015-02-11 17:24                 ` Oleg Nesterov
2015-02-11 23:15                 ` Jeremy Fitzhardinge
2015-02-11 23:15                 ` Jeremy Fitzhardinge
2015-02-11 23:15                 ` Jeremy Fitzhardinge
2015-02-11 23:15                   ` Jeremy Fitzhardinge
2015-02-11 23:28                   ` Linus Torvalds
2015-02-11 23:28                   ` Linus Torvalds
2015-02-12  7:08                     ` Jeremy Fitzhardinge
2015-02-12  7:08                     ` Jeremy Fitzhardinge
2015-02-12 14:18                   ` Oleg Nesterov
2015-02-12 14:18                   ` Oleg Nesterov
2015-02-12 14:18                     ` Oleg Nesterov
2015-02-12 14:18                     ` Oleg Nesterov
2015-02-11 17:24               ` Oleg Nesterov
2015-02-11 11:08             ` Raghavendra K T
2015-02-11 11:08             ` Raghavendra K T
2015-02-11 11:08             ` Raghavendra K T
2015-02-11 11:08               ` Raghavendra K T
2015-02-11 17:38               ` Oleg Nesterov
2015-02-11 17:38               ` Oleg Nesterov
2015-02-11 17:38                 ` Oleg Nesterov
2015-02-11 18:38                 ` Raghavendra K T
2015-02-11 18:38                   ` Raghavendra K T
2015-02-11 18:38                 ` Raghavendra K T
2015-02-11 18:38                 ` Raghavendra K T
2015-02-10 13:26           ` Oleg Nesterov
2015-02-10  9:30         ` Raghavendra K T
2015-02-10  0:53       ` Linus Torvalds
2015-02-09 12:02     ` Peter Zijlstra
  -- strict thread matches above, loose matches on Subject: below --
2015-02-06 14:49 Raghavendra K T
2015-02-06 14:49 Raghavendra K T

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54D4F3D2.3010807@samsung.com \
    --to=a.ryabinin@samsung.com \
    --cc=ak@linux.intel.com \
    --cc=borntraeger@de.ibm.com \
    --cc=davej@redhat.com \
    --cc=hpa@zytor.com \
    --cc=jasowang@redhat.com \
    --cc=jeremy@goop.org \
    --cc=konrad.wilk@oracle.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=oleg@redhat.com \
    --cc=paul.gortmaker@windriver.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=raghavendra.kt@linux.vnet.ibm.com \
    --cc=riel@redhat.com \
    --cc=sasha.levin@oracle.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=waiman.long@hp.com \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.