xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: Andy Lutomirski <luto@kernel.org>
Cc: KVM list <kvm@vger.kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	X86 ML <x86@kernel.org>,
	linux-kernel@vger.kernel.org, xen-devel <Xen-devel@lists.xen.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Arjan van de Ven <arjan@linux.intel.com>
Subject: Re: [PATCH v5 3/9] x86/head: Move early exception panic code into early_fixup_exception
Date: Sat, 2 Apr 2016 20:39:19 +0200	[thread overview]
Message-ID: <20160402183919.GA2538__24859.3463599265$1459622452$gmane$org@pd.tnic> (raw)
In-Reply-To: <4085070316fc3ab29538d3fcfe282648d1d4ee2e.1459605520.git.luto@kernel.org>

On Sat, Apr 02, 2016 at 07:01:34AM -0700, Andy Lutomirski wrote:
> This removes a bunch of assembly and adds some C code instead.  It
> changes the actual printouts on both 32-bit and 64-bit kernels, but
> they still seem okay.
> 
> Signed-off-by: Andy Lutomirski <luto@kernel.org>
> ---
>  arch/x86/include/asm/uaccess.h |  2 +-
>  arch/x86/kernel/head_32.S      | 49 +++++-------------------------------------
>  arch/x86/kernel/head_64.S      | 45 ++------------------------------------
>  arch/x86/mm/extable.c          | 29 ++++++++++++++++++++-----
>  4 files changed, 32 insertions(+), 93 deletions(-)

...

> @@ -99,21 +101,38 @@ int __init early_fixup_exception(struct pt_regs *regs, int trapnr)
>  
>  	/* Ignore early NMIs. */
>  	if (trapnr == X86_TRAP_NMI)
> -		return 1;
> +		return;
> +
> +	if (early_recursion_flag > 2)
> +		goto halt_loop;
> +
> +	if (regs->cs != __KERNEL_CS)
> +		goto fail;
>  
>  	e = search_exception_tables(regs->ip);
>  	if (!e)
> -		return 0;
> +		goto fail;
>  
>  	new_ip  = ex_fixup_addr(e);
>  	handler = ex_fixup_handler(e);
>  
>  	/* special handling not supported during early boot */
>  	if (handler != ex_handler_default)
> -		return 0;
> +		goto fail;
>  
>  	regs->ip = new_ip;
> -	return 1;
> +	return;
> +
> +fail:
> +	early_printk("PANIC: early exception 0x%02x IP %lx:%lx error %lx cr2 0x%lx\n",
> +		     (unsigned)trapnr, (unsigned long)regs->cs, regs->ip,
> +		     regs->orig_ax, read_cr2());
> +
> +	show_regs(regs);

To make this even better, it could be something called early_show_regs()
or so and be a simplified version of __show_regs() on both bitness but
which calls early_printk().

This way you'll be able to get out stuff to the console as early as
possible.

Btw, you don't need to dump rIP, CR2, etc in the PANIC message above
since you're going to early_show_regs() anyway.

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2016-04-02 18:39 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1459605520.git.luto@kernel.org>
2016-04-02 14:01 ` [PATCH v5 1/9] x86/head: Pass a real pt_regs and trapnr to early_fixup_exception Andy Lutomirski
2016-04-13 11:43   ` [tip:x86/asm] x86/head: Pass a real pt_regs and trapnr to early_fixup_exception() tip-bot for Andy Lutomirski
2016-04-02 14:01 ` [PATCH v5 2/9] x86/head: Move the early NMI fixup into C Andy Lutomirski
2016-04-02 14:01 ` [PATCH v5 3/9] x86/head: Move early exception panic code into early_fixup_exception Andy Lutomirski
2016-04-02 18:39   ` Borislav Petkov [this message]
     [not found]   ` <20160402183919.GA2538@pd.tnic>
2016-04-02 20:13     ` Andy Lutomirski
     [not found]     ` <CALCETrUJVDpzNQMsY=_jWNOMer+TdW2p4wES4OBCfYU7gq3fbg@mail.gmail.com>
2016-04-02 20:47       ` Borislav Petkov
     [not found]       ` <20160402204752.GC2538@pd.tnic>
2016-04-02 20:58         ` Andy Lutomirski
     [not found]         ` <CALCETrXHR3T3PJwOWRFHTMK5WjhDyTJfaJtkiHd+g7evnqp54A@mail.gmail.com>
2016-04-04 11:52           ` Jan Kara
     [not found]           ` <20160404115206.GG8372@quack.suse.cz>
2016-04-04 12:46             ` Peter Zijlstra
2016-04-04 15:32             ` Andy Lutomirski
     [not found]             ` <CALCETrVriftUPNZ8pCQ1x9TWDHnRx8fWUvJgCQToPEOxqMLb3w@mail.gmail.com>
2016-04-04 15:36               ` Arjan van de Ven
2016-04-04 16:00               ` Peter Zijlstra
     [not found]               ` <20160404160042.GB3448@twins.programming.kicks-ass.net>
2016-04-04 19:38                 ` Borislav Petkov
     [not found]                 ` <20160404193803.GK351@pd.tnic>
2016-04-04 21:31                   ` Andy Lutomirski
     [not found]                   ` <CALCETrVvFTrK1pVmjnfWwwq+5P6+1ghMjh4Wwqm05d=00ejYSw@mail.gmail.com>
2016-04-04 21:40                     ` Borislav Petkov
2016-04-13 11:44   ` [tip:x86/asm] x86/head: Move early exception panic code into early_fixup_exception() tip-bot for Andy Lutomirski
2016-04-02 14:01 ` [PATCH v5 4/9] x86/traps: Enable all exception handler callbacks early Andy Lutomirski
2016-04-02 14:01 ` [PATCH v5 5/9] x86/paravirt: Add _safe to the read_msr and write_msr PV hooks Andy Lutomirski
2016-04-03  8:41   ` Borislav Petkov
     [not found]   ` <20160403084129.GB19007@pd.tnic>
2016-04-03 13:23     ` Andy Lutomirski
     [not found]     ` <CALCETrUcqTx00pKYEt49QSKKBKVEx-Uv0D6dzE1-Em6Q-wkSpQ@mail.gmail.com>
2016-04-03 14:07       ` Borislav Petkov
2016-04-13 11:44   ` [tip:x86/asm] x86/paravirt: Add _safe to the read_ms()r and write_msr() PV callbacks tip-bot for Andy Lutomirski
2016-04-02 14:01 ` [PATCH v5 6/9] x86/msr: Carry on after a non-"safe" MSR access fails Andy Lutomirski
2016-04-02 14:01 ` [PATCH v5 7/9] x86/paravirt: Add paravirt_{read, write}_msr Andy Lutomirski
2016-04-02 14:01 ` [PATCH v5 8/9] x86/paravirt: Make "unsafe" MSR accesses unsafe even if PARAVIRT=y Andy Lutomirski
2016-04-13 11:46   ` [tip:x86/asm] " tip-bot for Andy Lutomirski
2016-04-02 14:01 ` [PATCH v5 9/9] x86/msr: Set the return value to zero when native_rdmsr_safe fails Andy Lutomirski
2016-04-02 14:24 ` [PATCH v5 0/9] Improve non-"safe" MSR access failure handling Linus Torvalds
     [not found] ` <CA+55aFwi2E0A9e7krCG9dkTq7vMZnxsBwtF6_hw6QO0EVObf=g@mail.gmail.com>
2016-04-02 15:13   ` Andy Lutomirski
     [not found]   ` <CALCETrWP33SR5TCA-baZi8xBrHpWe=wzkuvUM=y4x_MPt1XgYg@mail.gmail.com>
2016-04-02 15:21     ` Linus Torvalds
2016-04-04 16:23 ` Borislav Petkov
     [not found] ` <880eebc5dcd2ad9f310d41345f82061ea500e9fa.1459605520.git.luto@kernel.org>
2016-04-04 16:33   ` [PATCH v5 7/9] x86/paravirt: Add paravirt_{read, write}_msr David Vrabel
     [not found]   ` <5702974A.1030003@citrix.com>
2016-04-04 16:40     ` Andy Lutomirski
2016-04-13 11:45   ` [tip:x86/asm] x86/paravirt: Add paravirt_{read, write}_msr() tip-bot for Andy Lutomirski
2016-04-05 15:38 ` [PATCH v5 0/9] Improve non-"safe" MSR access failure handling Boris Ostrovsky
     [not found] ` <20fc047d926150cb08cb9b9f2923519b07ec1a15.1459605520.git.luto@kernel.org>
2016-04-02 18:52   ` [PATCH v5 4/9] x86/traps: Enable all exception handler callbacks early Borislav Petkov
     [not found]   ` <20160402185227.GB2538@pd.tnic>
2016-04-02 20:16     ` Andy Lutomirski
     [not found]     ` <CALCETrV7PxgmhU_yXjJSugY88T8Do=vBDuG54fOFSyLp7nGcJA@mail.gmail.com>
2016-04-02 20:52       ` Borislav Petkov
     [not found]       ` <20160402205248.GD2538@pd.tnic>
2016-04-03  8:07         ` Borislav Petkov
     [not found]         ` <20160403080737.GA19007@pd.tnic>
2016-04-03 13:22           ` Andy Lutomirski
2016-04-03 13:51           ` Linus Torvalds
     [not found]           ` <CA+55aFw19X7PO2xd1PpUav1rSyCqUqWgi9+SA7TgjaWMaxexHQ@mail.gmail.com>
2016-04-03 13:55             ` Andy Lutomirski
     [not found]             ` <CALCETrX_x+tV4m3SwgCfXg9y5gia8eMhhTdUnHuXpXhnULkHRw@mail.gmail.com>
2016-04-03 14:10               ` Borislav Petkov
2016-04-03 14:17               ` Linus Torvalds
     [not found]               ` <20160403141041.GE19007@pd.tnic>
2016-04-04 15:47                 ` Andy Lutomirski
2016-04-13 11:44   ` [tip:x86/asm] " tip-bot for Andy Lutomirski

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='20160402183919.GA2538__24859.3463599265$1459622452$gmane$org@pd.tnic' \
    --to=bp@alien8.de \
    --cc=Xen-devel@lists.xen.org \
    --cc=akpm@linux-foundation.org \
    --cc=arjan@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=pbonzini@redhat.com \
    --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;
as well as URLs for NNTP newsgroup(s).