From: "Michael S. Tsirkin" <mst@redhat.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: David Hildenbrand <dahi@linux.vnet.ibm.com>,
linuxppc-dev@lists.ozlabs.org, linux-arch@vger.kernel.org,
linux-kernel@vger.kernel.org, benh@kernel.crashing.org,
paulus@samba.org, akpm@linux-foundation.org,
heiko.carstens@de.ibm.com, schwidefsky@de.ibm.com,
mingo@kernel.org
Subject: Re: [RFC 0/2] Reenable might_sleep() checks for might_fault() when atomic
Date: Wed, 26 Nov 2014 17:37:33 +0200 [thread overview]
Message-ID: <20141126153732.GA10568@redhat.com> (raw)
In-Reply-To: <5475F218.4050207@de.ibm.com>
On Wed, Nov 26, 2014 at 04:30:32PM +0100, Christian Borntraeger wrote:
> Am 26.11.2014 um 16:17 schrieb Michael S. Tsirkin:
> > On Wed, Nov 26, 2014 at 11:05:04AM +0100, David Hildenbrand wrote:
> >>> What's the path you are trying to debug?
> >>
> >> Well, we had a problem where we held a spin_lock and called
> >> copy_(from|to)_user(). We experienced very random deadlocks that took some guy
> >> almost a week to debug. The simple might_sleep() check would have showed this
> >> error immediately.
> >
>
> > This must have been a very old kernel.
> > A modern kernel will return an error from copy_to_user.
>
> I disagree. copy_to_user will not return while holding a spinlock, because it does not know! How should it?
> See: spin_lock will call preempt_disable, but thats a no-op for a non-preempt kernel. So the mere fact that we hold a spin_lock is not known by any user access function. (or others). No?
>
> Christian
>
>
Well might_sleep() merely checks preempt count and irqs_disabled too.
If you want debugging things to trigger, you need to enable
a bunch of config options. That's not new.
--
MST
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: linux-arch@vger.kernel.org, heiko.carstens@de.ibm.com,
linux-kernel@vger.kernel.org,
David Hildenbrand <dahi@linux.vnet.ibm.com>,
paulus@samba.org, schwidefsky@de.ibm.com,
akpm@linux-foundation.org, linuxppc-dev@lists.ozlabs.org,
mingo@kernel.org
Subject: Re: [RFC 0/2] Reenable might_sleep() checks for might_fault() when atomic
Date: Wed, 26 Nov 2014 17:37:33 +0200 [thread overview]
Message-ID: <20141126153732.GA10568@redhat.com> (raw)
In-Reply-To: <5475F218.4050207@de.ibm.com>
On Wed, Nov 26, 2014 at 04:30:32PM +0100, Christian Borntraeger wrote:
> Am 26.11.2014 um 16:17 schrieb Michael S. Tsirkin:
> > On Wed, Nov 26, 2014 at 11:05:04AM +0100, David Hildenbrand wrote:
> >>> What's the path you are trying to debug?
> >>
> >> Well, we had a problem where we held a spin_lock and called
> >> copy_(from|to)_user(). We experienced very random deadlocks that took some guy
> >> almost a week to debug. The simple might_sleep() check would have showed this
> >> error immediately.
> >
>
> > This must have been a very old kernel.
> > A modern kernel will return an error from copy_to_user.
>
> I disagree. copy_to_user will not return while holding a spinlock, because it does not know! How should it?
> See: spin_lock will call preempt_disable, but thats a no-op for a non-preempt kernel. So the mere fact that we hold a spin_lock is not known by any user access function. (or others). No?
>
> Christian
>
>
Well might_sleep() merely checks preempt count and irqs_disabled too.
If you want debugging things to trigger, you need to enable
a bunch of config options. That's not new.
--
MST
next prev parent reply other threads:[~2014-11-26 15:37 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-25 11:43 [RFC 0/2] Reenable might_sleep() checks for might_fault() when atomic David Hildenbrand
2014-11-25 11:43 ` David Hildenbrand
2014-11-25 11:43 ` [RFC 1/2] powerpc/fsl-pci: atomic get_user when pagefault_disabled David Hildenbrand
2014-11-25 11:43 ` David Hildenbrand
2015-01-30 5:15 ` [RFC,1/2] " Scott Wood
2015-01-30 7:58 ` David Hildenbrand
2014-11-25 11:43 ` [RFC 2/2] mm, sched: trigger might_sleep() in might_fault() when atomic David Hildenbrand
2014-11-25 11:43 ` David Hildenbrand
2014-11-26 7:02 ` [RFC 0/2] Reenable might_sleep() checks for " Michael S. Tsirkin
2014-11-26 7:02 ` Michael S. Tsirkin
2014-11-26 10:05 ` David Hildenbrand
2014-11-26 10:05 ` David Hildenbrand
2014-11-26 15:17 ` Michael S. Tsirkin
2014-11-26 15:17 ` Michael S. Tsirkin
2014-11-26 15:23 ` Michael S. Tsirkin
2014-11-26 15:23 ` Michael S. Tsirkin
2014-11-26 15:23 ` Michael S. Tsirkin
2014-11-26 15:32 ` David Hildenbrand
2014-11-26 15:32 ` David Hildenbrand
2014-11-26 15:47 ` Michael S. Tsirkin
2014-11-26 15:47 ` Michael S. Tsirkin
2014-11-26 16:02 ` David Hildenbrand
2014-11-26 16:02 ` David Hildenbrand
2014-11-26 16:19 ` Michael S. Tsirkin
2014-11-26 16:19 ` Michael S. Tsirkin
2014-11-26 16:30 ` Christian Borntraeger
2014-11-26 16:30 ` Christian Borntraeger
2014-11-26 16:50 ` Michael S. Tsirkin
2014-11-26 16:50 ` Michael S. Tsirkin
2014-11-26 16:07 ` Christian Borntraeger
2014-11-26 16:07 ` Christian Borntraeger
2014-11-26 16:32 ` Michael S. Tsirkin
2014-11-26 16:32 ` Michael S. Tsirkin
2014-11-26 16:51 ` Christian Borntraeger
2014-11-26 16:51 ` Christian Borntraeger
2014-11-26 17:04 ` Michael S. Tsirkin
2014-11-26 17:04 ` Michael S. Tsirkin
2014-11-26 17:21 ` Michael S. Tsirkin
2014-11-26 17:21 ` Michael S. Tsirkin
2014-11-27 7:09 ` Heiko Carstens
2014-11-27 7:09 ` Heiko Carstens
2014-11-27 7:40 ` Michael S. Tsirkin
2014-11-27 7:40 ` Michael S. Tsirkin
2014-11-27 8:03 ` David Hildenbrand
2014-11-27 8:03 ` David Hildenbrand
2014-11-27 12:04 ` Heiko Carstens
2014-11-27 12:04 ` Heiko Carstens
2014-11-27 12:08 ` David Hildenbrand
2014-11-27 12:08 ` David Hildenbrand
2014-11-27 15:07 ` Thomas Gleixner
2014-11-27 15:07 ` Thomas Gleixner
2014-11-27 15:19 ` David Hildenbrand
2014-11-27 15:19 ` David Hildenbrand
2014-11-27 15:37 ` David Laight
2014-11-27 15:37 ` David Laight
2014-11-27 15:37 ` David Laight
2014-11-27 15:45 ` David Hildenbrand
2014-11-27 15:45 ` David Hildenbrand
2014-11-27 16:27 ` David Laight
2014-11-27 16:27 ` David Laight
2014-11-27 16:49 ` David Hildenbrand
2014-11-27 16:49 ` David Hildenbrand
2014-11-27 16:49 ` David Hildenbrand
2014-11-27 21:52 ` Thomas Gleixner
2014-11-27 21:52 ` Thomas Gleixner
2014-11-28 7:34 ` David Hildenbrand
2014-11-28 7:34 ` David Hildenbrand
2014-11-26 15:30 ` Christian Borntraeger
2014-11-26 15:30 ` Christian Borntraeger
2014-11-26 15:37 ` Michael S. Tsirkin [this message]
2014-11-26 15:37 ` Michael S. Tsirkin
2014-11-26 16:02 ` Christian Borntraeger
2014-11-26 16:02 ` Christian Borntraeger
2014-11-26 15:22 ` Michael S. Tsirkin
2014-11-26 15:22 ` Michael S. Tsirkin
2014-11-27 17:10 ` [PATCH RFC " David Hildenbrand
2014-11-27 17:10 ` David Hildenbrand
2014-11-27 17:10 ` [PATCH RFC 1/2] preempt: track pagefault_disable() calls in the preempt counter David Hildenbrand
2014-11-27 17:10 ` David Hildenbrand
2014-11-27 17:10 ` [PATCH RFC 2/2] mm, sched: trigger might_sleep() in might_fault() when pagefaults are disabled David Hildenbrand
2014-11-27 17:10 ` David Hildenbrand
2014-11-27 17:24 ` Michael S. Tsirkin
2014-11-27 17:24 ` Michael S. Tsirkin
2014-11-27 17:32 ` Michael S. Tsirkin
2014-11-27 17:32 ` Michael S. Tsirkin
2014-11-27 18:08 ` David Hildenbrand
2014-11-27 18:08 ` David Hildenbrand
2014-11-27 18:27 ` Michael S. Tsirkin
2014-11-27 18:27 ` Michael S. Tsirkin
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=20141126153732.GA10568@redhat.com \
--to=mst@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=borntraeger@de.ibm.com \
--cc=dahi@linux.vnet.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mingo@kernel.org \
--cc=paulus@samba.org \
--cc=schwidefsky@de.ibm.com \
/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.