The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Josh Poimboeuf <jpoimboe@redhat.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Borislav Petkov <bp@alien8.de>, X86 ML <x86@kernel.org>,
	Andy Lutomirski <luto@amacapital.net>,
	Peter Zijlstra <peterz@infradead.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 8/9] x86/dumpstack: Save first regs set for the executive summary
Date: Fri, 16 Mar 2018 12:40:49 -0500	[thread overview]
Message-ID: <20180316174049.3dj3hsau5y4ukbd4@treble> (raw)
In-Reply-To: <CA+55aFwmi38uJyir_e_TTDObBGg55WsTB_0AqcVHzgU=+Fy=ag@mail.gmail.com>

On Fri, Mar 16, 2018 at 10:22:29AM -0700, Linus Torvalds wrote:
> On Fri, Mar 16, 2018 at 4:48 AM, Borislav Petkov <bp@alien8.de> wrote:
> > On Thu, Mar 15, 2018 at 02:01:32PM -0500, Josh Poimboeuf wrote:
> >> no_context() has the following line, right before it calls oops_end():
> >>
> >>       /* Executive summary in case the body of the oops scrolled away */
> >>       printk(KERN_DEFAULT "CR2: %016lx\n", address);
> >>
> >> I think that line can now be removed, since the executive summary
> >> __show_regs() will include CR2.
> >
> > Good idea. Done.
> 
> NOOOO!
> 
> Guys, %cr2 CAN AND DOES CHANGE!
> 
> The reason we do that
> 
>         printk(KERN_DEFAULT "CR2: %016lx\n", address);
> 
> is because WE ARE NOT PRINTING OUT THE CURRENT CR2 REGISTER!

Good point.  I missed the fact that no_context() isn't printing the
current CR2.

> This is really damn important.
> 
> The "address" register contains the CR2 value as it was read *very*
> early in the page fault case, before we enabled interrupts, and before
> we did various random things that can cause further page faults and
> change CR2!
> 
> So the executive summary that does __show_regs() may end up showing
> something completely different than the actual faulting address,
> because we might have taken a vmalloc-space exception in the meantime,
> for example.
> 
> Do *NOT* get rid of that thing.
> 
> You're better off getting rid of the CR2 line from __show_regs(),
> because it can be dangerously confusing. It's not actually part of the
> saved register state at all, it's something entirely different. It's
> like showing the current eflags rather than the eflags saved on the
> faulting stack.

True, it's probably best to remove it.  The only time we need CR2's
value is presumably when it would have already been printed in
no_context(), and so it primarily just adds confusion as you said.

-- 
Josh

  reply	other threads:[~2018-03-16 17:40 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-15 15:44 [PATCH 0/9] x86/dumpstack: Cleanups and user opcode bytes Code: section, v2 Borislav Petkov
2018-03-15 15:44 ` [PATCH 1/9] x86/dumstack: Remove code_bytes Borislav Petkov
2018-03-15 18:12   ` Josh Poimboeuf
2018-03-15 15:44 ` [PATCH 2/9] x86/dumpstack: Unexport oops_begin() Borislav Petkov
2018-03-15 15:44 ` [PATCH 3/9] x86/dumpstack: Carve out Code: dumping into a function Borislav Petkov
2018-03-15 15:44 ` [PATCH 4/9] x86/dumpstack: Improve opcodes dumping in the Code: section Borislav Petkov
2018-03-15 18:10   ` Josh Poimboeuf
2018-03-15 18:16     ` Borislav Petkov
2018-03-15 19:06       ` Josh Poimboeuf
2018-03-16 11:57       ` David Laight
2018-03-15 18:19   ` Josh Poimboeuf
2018-03-15 18:23   ` Josh Poimboeuf
2018-03-15 15:44 ` [PATCH 5/9] x86/dumpstack: Add loglevel argument to show_opcodes() Borislav Petkov
2018-03-15 15:44 ` [PATCH 6/9] x86/fault: Dump user opcode bytes on fatal faults Borislav Petkov
2018-03-15 15:44 ` [PATCH 7/9] x86/dumpstack: Add a show_ip() function Borislav Petkov
2018-03-15 18:34   ` Josh Poimboeuf
2018-03-15 18:55     ` Borislav Petkov
2018-03-15 15:44 ` [PATCH 8/9] x86/dumpstack: Save first regs set for the executive summary Borislav Petkov
2018-03-15 19:01   ` Josh Poimboeuf
2018-03-16 11:48     ` Borislav Petkov
2018-03-16 12:01       ` Josh Poimboeuf
2018-03-16 12:11         ` Borislav Petkov
2018-03-16 13:16           ` Josh Poimboeuf
2018-03-16 13:44             ` Borislav Petkov
2018-03-16 17:22       ` Linus Torvalds
2018-03-16 17:40         ` Josh Poimboeuf [this message]
2018-03-16 17:45         ` Borislav Petkov
2018-03-16 18:38           ` Josh Poimboeuf
2018-03-15 15:44 ` [PATCH 9/9] x86/dumpstack: Explain the reasoning for the prologue and buffer size Borislav Petkov
2018-03-15 18:07   ` Josh Poimboeuf
2018-03-15 18:17     ` Borislav Petkov
2018-03-15 17:51 ` [PATCH 0/9] x86/dumpstack: Cleanups and user opcode bytes Code: section, v2 Linus Torvalds
2018-04-17 14:40   ` Borislav Petkov
2018-04-17 20:16     ` Josh Poimboeuf
2018-04-17 21:06       ` Borislav Petkov
2018-04-18 13:26         ` Josh Poimboeuf
  -- strict thread matches above, loose matches on Subject: below --
2018-04-17 16:11 [PATCH 0/9] x86/dumpstack: Cleanups and user opcode bytes Code: section, v3 Borislav Petkov
2018-04-17 16:11 ` [PATCH 8/9] x86/dumpstack: Save first regs set for the executive summary Borislav Petkov

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=20180316174049.3dj3hsau5y4ukbd4@treble \
    --to=jpoimboe@redhat.com \
    --cc=bp@alien8.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=peterz@infradead.org \
    --cc=torvalds@linux-foundation.org \
    --cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox