[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+55aFw94ow=aYF-y9kJu+2ZsA=YLob5wFe01H+ooQmP6EbJvQ@mail.gmail.com>
Date: Sat, 10 Aug 2013 09:27:33 -0700
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Andi Kleen <andi@...stfloor.org>
Cc: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
"the arch/x86 maintainers" <x86@...nel.org>,
Ingo Molnar <mingo@...nel.org>, Andi Kleen <ak@...ux.intel.com>
Subject: Re: [PATCH 10/13] x86: Move cond resched for copy_{from,to}_user into
low level code 64bit
On Sat, Aug 10, 2013 at 9:10 AM, Andi Kleen <andi@...stfloor.org> wrote:
>
> Hmm. I can do that, but wouldn't that make CONFIG_PREEMPT_VOLUNTARY
> mostly equivalent to CONFIG_PREEMPT_NONE?
According the the Kconfig help, PREEMPT_VOLUNTARY is about the
*explicit* preemption points. And we do have a lot of them in
"might_sleep()".
And personally, I think it makes a *lot* more sense to have a
"might_sleep()" in the MM allocators than it does to have it in
copy_from_user().
But yes, it's obviously a gray area on exactly where you'd want to put
them. But for a "get_user()" that can literally be just a few
instructions? Why would we make that a preemption point? Or even a
copy of few tens of bytes?
I'd *much* rather have preemption points in places that actually loop,
and that have real work associated with them.
Now, the *debug* logic is entirely different, of course. Maybe the
problem is that we have mixed up the two so badly, and we have
"might_sleep()" that implies more of a debug issue than a preemption
issue, and then people add those because they want the debug coverage
(and then you *absolutely* want it even for a single-byte user mode
access). And then because the concept is tied together with
preemption, we end up doing preemption even for that single-byte
access despite the fact that it makes no sense what-so-ever.
So I think your patches are fine, but I do think we should take a
deeper look at this.
Linus
--
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