[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150507111239.GB15284@gmail.com>
Date: Thu, 7 May 2015 13:12:39 +0200
From: Ingo Molnar <mingo@...nel.org>
To: David Hildenbrand <dahi@...ux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@...radead.org>,
linux-kernel@...r.kernel.org, mingo@...hat.com,
yang.shi@...driver.com, bigeasy@...utronix.de,
benh@...nel.crashing.org, paulus@...ba.org,
akpm@...ux-foundation.org, heiko.carstens@...ibm.com,
schwidefsky@...ibm.com, borntraeger@...ibm.com, mst@...hat.com,
tglx@...utronix.de, David.Laight@...LAB.COM, hughd@...gle.com,
hocko@...e.cz, ralf@...ux-mips.org, herbert@...dor.apana.org.au,
linux@....linux.org.uk, airlied@...ux.ie, daniel.vetter@...el.com,
linux-mm@...ck.org, linux-arch@...r.kernel.org
Subject: Re: [PATCH RFC 01/15] uaccess: count pagefault_disable() levels in
pagefault_disabled
* David Hildenbrand <dahi@...ux.vnet.ibm.com> wrote:
> > AFAICR we did this to avoid having to do both:
> >
> > preempt_disable();
> > pagefault_disable();
> >
> > in a fair number of places -- just like this patch-set does, this is
> > touching two cachelines where one would have been enough.
> >
> > Also, removing in_atomic() from fault handlers like you did
> > significantly changes semantics for interrupts (soft, hard and NMI).
> >
> > So while I agree with most of these patches, I'm very hesitant on the
> > above little detail.
>
> Just to make sure we have a common understanding (as written in my
> cover letter):
>
> Your suggestion won't work with !CONFIG_PREEMPT
> (!CONFIG_PREEMPT_COUNT). If there is no preempt counter, in_atomic()
> won't work. So doing a preempt_disable() instead of a
> pagefault_disable() is not going to work. (not sure how -RT handles
> that - most probably with CONFIG_PREEMPT_COUNT being enabled, due to
> atomic debug).
>
> That's why I dropped that check for a reason.
So, what's the point of disabling the preempt counter?
Looks like the much simpler (and faster) solution would be to
eliminate CONFIG_PREEMPT_COUNT (i.e. make it always available), and
use it for pagefault-disable.
> This patchset is about decoupling both concept. (not ending up with
> to mechanisms doing almost the same)
So that's really backwards: just because we might not have a handy
counter we introduce _another one_, and duplicate checks for it ;-)
Why not keep a single counter, if indeed what we care about most in
the pagefault_disable() case is atomicity?
Thanks,
Ingo
--
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