Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753651AbbGXL6t (ORCPT ); Fri, 24 Jul 2015 07:58:49 -0400 Received: from smtprelay0069.hostedemail.com ([216.40.44.69]:55732 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753149AbbGXL6p (ORCPT ); Fri, 24 Jul 2015 07:58:45 -0400 X-Session-Marker: 726F737465647440676F6F646D69732E6F7267 X-Spam-Summary: 2,0,0,,d41d8cd98f00b204,rostedt@goodmis.org,:::::::::::::::::,RULES_HIT:41:355:379:541:599:800:960:973:988:989:1260:1277:1311:1313:1314:1345:1359:1437:1515:1516:1518:1534:1541:1593:1594:1711:1730:1747:1777:1792:2393:2553:2559:2562:2901:2918:3138:3139:3140:3141:3142:3353:3622:3865:3867:3868:3870:3871:3872:3873:3874:4043:4250:4321:5007:6261:7875:7903:8526:9038:10004:10400:10450:10455:10848:10967:11026:11232:11658:11914:12219:12438:12517:12519:12663:12740:13069:13311:13357:14093:14096:14097:19904:19999:21080,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:none,Custom_rules:0:0:0 X-HE-Tag: part35_11fbaba3bab09 X-Filterd-Recvd-Size: 3314 Date: Fri, 24 Jul 2015 07:58:41 -0400 From: Steven Rostedt To: Peter Zijlstra Cc: Linus Torvalds , Andy Lutomirski , X86 ML , "linux-kernel@vger.kernel.org" , Willy Tarreau , Borislav Petkov , Thomas Gleixner , Brian Gerst Subject: Re: Dealing with the NMI mess Message-ID: <20150724075841.40f209f4@gandalf.local.home> In-Reply-To: <20150724081326.GO25159@twins.programming.kicks-ass.net> References: <20150723173105.6795c0dc@gandalf.local.home> <20150724081326.GO25159@twins.programming.kicks-ass.net> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.28; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1908 Lines: 45 On Fri, 24 Jul 2015 10:13:26 +0200 Peter Zijlstra wrote: > On Thu, Jul 23, 2015 at 02:59:56PM -0700, Linus Torvalds wrote: > > Hmmm. I thought watchpoints were "before the instruction" too, but > > that's just because I haven't used them in ages, and I didn't remember > > the details. I just looked it up. > > > > You're right - the memory watchpoints trigger after the instruction > > has executed, so RF isn't an issue. So yes, the only issue is > > instruction breakpoints, and those are the only ones we need to clear. > > > > And that makes it really easy. > > > > So yes, I agree. We only need to clear all kernel breakpoints. > > But but but, we can access userspace with !IF, imagine someone doing: > > local_irq_disable(); > copy_from_user_inatomic(); > > and as luck would have it, there's a breakpoint on the user memory we > just touched. And we go and disable a user breakpoint. Where does the kernel do that to user text? I would think that user data would only have watchpoints, and Andy and Linus said that those would not be disabled (I'm guessing because they don't have the RF flag set, and forward progress can proceed). If the kernel does the above to user code and there's a breakpoint there, would it even trigger? I'm not too familiar with how to use hw breakpoints, but I'm guessing (correct me if I'm wrong) that breakpoints on code that trigger when executed, but watchpoints on data trigger when accessed. Then copy_from_user_inatomic() would only trigger on watchpoints (it's not executing that code, at least I hope it isn't!), and those wont bother us. Or am I totally off base here? -- Steve -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/