From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753976AbbIGITG (ORCPT ); Mon, 7 Sep 2015 04:19:06 -0400 Received: from eddie.linux-mips.org ([148.251.95.138]:33824 "EHLO cvs.linux-mips.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751676AbbIGITE (ORCPT ); Mon, 7 Sep 2015 04:19:04 -0400 Date: Mon, 7 Sep 2015 09:19:01 +0100 (BST) From: "Maciej W. Rozycki" To: Ingo Molnar cc: Borislav Petkov , Andy Lutomirski , Paolo Bonzini , Peter Zijlstra , Linus Torvalds , Willy Tarreau , Steven Rostedt , X86 ML , "linux-kernel@vger.kernel.org" , Thomas Gleixner , Brian Gerst Subject: Re: Dealing with the NMI mess In-Reply-To: <20150907074218.GC19280@gmail.com> Message-ID: References: <20150724195509.GM2859@worktop.programming.kicks-ass.net> <20150724205119.GM19282@twins.programming.kicks-ass.net> <55BA45A2.8050909@redhat.com> <20150731042205.GB32117@nazgul.tnic> <20150731080303.GA2128@nazgul.tnic> <20150907074218.GC19280@gmail.com> User-Agent: Alpine 2.20 (LFD 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 7 Sep 2015, Ingo Molnar wrote: > > I did some work on this a few years ago, including emulating DR0-7 accesses in > > software down the JTAG handler upon a General Detect fault to keep the kernel > > both happy and away from real debug registers. ;) Yes, you can debug any > > software with this stuff, including the Linux kernel: set instruction and data > > breakpoints, single-step it, poke at all hardware registers, including > > descriptor registers not otherwise accessible (you can set funny modes for > > segments, also in the 64-bit mode), etc. One complication though is you operate > > on physical addresses when poking at memory, you can't ask the CPU's MMU to > > remap them for you (you can walk page tables manually of course, just as the MMU > > would). > > Essentially the ICE breakpoint instruction enters SMM mode? I didn't do stuff at the probe firmware level so I can't say for sure, but my gut feeling is the debug mode is indeed very close if not the same as SMM. I think duplicating the logic would be an unnecessary waste of silicon. And obviously it's any cause of #DB that enters this mode. The probe can also request it right at the exit from the reset state, so that you can debug software (e.g BIOS startup) right from the reset vector. You don't need working RAM for that. Maciej