From: Andi Kleen <andi@firstfloor.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Ingo Molnar <mingo@elte.hu>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Avi Kivity <avi@qumranet.com>
Subject: Re: [git pull] core, x86: make LIST_POISON less deadly
Date: Mon, 14 Jul 2008 21:11:11 +0200 [thread overview]
Message-ID: <487BA4CF.6060905@firstfloor.org> (raw)
In-Reply-To: <alpine.LFD.1.10.0807141139120.3305@woody.linux-foundation.org>
Linus Torvalds wrote:
>
> On Mon, 14 Jul 2008, Andi Kleen wrote:
>> The issue is that the kernel cannot detect it (short of running the
>> KVM x86 emulator on #GP, but surely you're not suggesting that), so it
>> cannot print something out.
>
> Don't be silly. It prints out the oops message.
>
> People who cannot see where that oops is, and cannot be bothered to look
> at the register state aren't going to help _anyway_.
I've seen a lot of people who don't know too much assembler just work based
on the RIP. As in look it up in the source using addr2line or gdb and then try
to figure it out based on the source. Actually looking at the register contents
and how the instruction uses it is pretty arcane knowledge and usually
not even needed. And with more and more kernel developers being
newbie friendly in this area is a good thing.
>
> In fact, with the 0xdead... sequence, it's going to be *more* obvious than
> with some almost-kernel 0xffffc.. address, even if it's not showing up in
> the first line.
> In other words, your whole argument is pure and utter sh*t. The page fault
> is _less_ readable than the GP fault.
How about if the page fault handler checks for the value and prints
a obvious string? It could do this reliably, unlike the "grep
all registers for poison on #GP" method that was earlier proposed.
>> That is why I suggested using a canonical address.
>
> And I disagree. Violently.
>
> The whole and ONLY point of poisoning is to get the fault.
>
> With the canonical address, you won't get it reliably, and when you do get
> it, it's not obvious to decode.
I discussed this with Avi earlier and we were careful to put it into
one of the guaranteed to be unmapped holes. This should actually not
change if the CPU changes because it's defined by the kernel mapping.
If these holes ever change the poison would need to change too, but
otherwise I don't really see how it should be particularly unreliable.
Ok it might break if someone messes up the direct mapping, but if that
happens you typically don't even go through the oops handler completely
and won't see the message.
-Andi
next prev parent reply other threads:[~2008-07-14 19:11 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-14 14:48 [git pull] core, x86: make LIST_POISON less deadly Ingo Molnar
2008-07-14 15:03 ` Linus Torvalds
2008-07-14 15:12 ` Ingo Molnar
2008-07-14 15:53 ` Avi Kivity
2008-07-14 15:59 ` Linus Torvalds
2008-07-14 16:07 ` Ingo Molnar
2008-07-14 16:08 ` Avi Kivity
2008-07-14 16:26 ` Linus Torvalds
2008-07-14 16:34 ` Ingo Molnar
2008-07-14 18:33 ` Andi Kleen
2008-07-14 18:42 ` Linus Torvalds
2008-07-14 19:11 ` Andi Kleen [this message]
2008-07-14 19:30 ` Linus Torvalds
2008-07-14 19:42 ` Andi Kleen
2008-07-14 18:35 ` Andi Kleen
2008-07-14 18:42 ` Linus Torvalds
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=487BA4CF.6060905@firstfloor.org \
--to=andi@firstfloor.org \
--cc=akpm@linux-foundation.org \
--cc=avi@qumranet.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=torvalds@linux-foundation.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.