Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp1502928ybk; Thu, 14 May 2020 10:31:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwU5KA5vGFfXiGuLZ004qGN5U8c2IFpYkFkItse+MgPPu56ejNhDHoVoTMFtIpefgn9jZzc X-Received: by 2002:a17:906:8748:: with SMTP id hj8mr5010566ejb.335.1589477460830; Thu, 14 May 2020 10:31:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589477460; cv=none; d=google.com; s=arc-20160816; b=Zwyv5iloOyz10iTu4l8ok8p5BucUKwg9zFlVXgOcnc7lk+sXssR6a1K+8Zk0bkaSgz uCz9hJ6e7wS0uyhBE1zi1ohaacs5bxj2MQ0ZY2gyZTD7CStQyBC84W5d1v5Uaou0LhMy b/7S/ZwtHUF6Sa/3EPUD5qBxJ7NOz9pngWdTMVKpWDFIJyjLPYh/AD89vGC1Q55VuiAR ujUeLNKA5MtxYYs8qaP6MTx+8ikKlNh3snhBoNltjET+jkbasEWfBwjf9/8tu0ifv/+9 2YSxmM+kK68PJPADpUlKF0niEONTQJOZL8y3kGrzu+sGwrYEuDtUlgwKmBTdEZ1+174L F1/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from; bh=aMv0SF2gRz/zdWZfA2TzXWInigQSLaiF5vwQqywvK8c=; b=VFL46PE8oV+Yy6VCBewCaC+oQcztq3uGd6equcS2mdO7W8O3KjHOkBlBMRzCBB97pF 9p5czHtTHyY65/wAXjy4TIePlIObq92wZyNVa8d3sAv/1wuYVnS0tcBNu/Zi4NrSbsPq pXq5uqAmT/hH8EYTM9Y+l5XqZBLwea0PlVOj+9XX4mLAdxdg8KD1SFI58lepMsx6ChbC r6KAb338FDCxriMETdhdzhzMf60aI3+rn85Ge2TV2YamDCj4a3PdKZCJ4J+ywW8PKRm0 Y25ZjzfGkO48x6V88hVmKh0R24cGvApIxvIe5Ja5naZqmtS9CRA+I8yPvb+Dfs5JUYrU QL+g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y3si2544023ejk.350.2020.05.14.10.30.37; Thu, 14 May 2020 10:31:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726067AbgENR3U (ORCPT + 99 others); Thu, 14 May 2020 13:29:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726035AbgENR3U (ORCPT ); Thu, 14 May 2020 13:29:20 -0400 Received: from Galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 34B15C061A0C for ; Thu, 14 May 2020 10:29:20 -0700 (PDT) Received: from p5de0bf0b.dip0.t-ipconnect.de ([93.224.191.11] helo=nanos.tec.linutronix.de) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1jZHer-0004SD-Fe; Thu, 14 May 2020 19:28:33 +0200 Received: by nanos.tec.linutronix.de (Postfix, from userid 1000) id CC7171004CE; Thu, 14 May 2020 19:28:32 +0200 (CEST) From: Thomas Gleixner To: Mathieu Desnoyers Cc: linux-kernel , x86 , paulmck , Andy Lutomirski , Alexandre Chartre , Frederic Weisbecker , Paolo Bonzini , Sean Christopherson , Masami Hiramatsu , Petr Mladek , rostedt , "Joel Fernandes\, Google" , Boris Ostrovsky , Juergen Gross , Brian Gerst , Josh Poimboeuf , Will Deacon , Peter Zijlstra Subject: Re: [patch V4 part 4 15/24] x86/db: Split out dr6/7 handling In-Reply-To: <552488029.20647.1589423096441.JavaMail.zimbra@efficios.com> References: <20200505134926.578885807@linutronix.de> <20200505135314.808628211@linutronix.de> <552488029.20647.1589423096441.JavaMail.zimbra@efficios.com> Date: Thu, 14 May 2020 19:28:32 +0200 Message-ID: <871rnmzarj.fsf@nanos.tec.linutronix.de> MIME-Version: 1.0 Content-Type: text/plain X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Mathieu Desnoyers writes: > ----- On May 5, 2020, at 9:49 AM, Thomas Gleixner tglx@linutronix.de wrote: >> + >> +static __always_inline void debug_exit(unsigned long dr7) >> +{ >> + set_debugreg(dr7, 7); >> +} > > Out of curiosity, what prevents the compiler from moving instructions > outside of the code regions surrounded by entry/exit ? This is an always > inline, which invokes set_debugreg which is inline for CONFIG_PARAVIRT_XXL=n, > which in turn uses an asm() (not volatile), without any memory > clobber. > > Also, considering that "inline" is not sufficient to ensure the compiler > does not emit a traceable function, I suspect you'll also want to mark > "native_get_debugreg" and "native_set_debugreg" always inline as well. It can move it into a function and call that. Fine. If that function stays in the noinstr section then it should not emit a trace stub and if it moves it out of the section or reuses another instance in text then objtool will complain. Checking for trace stubs and other instrumentation nonsense is on the objtool wishlist anyway. But yes, marking these __always_inline prevents that. Those escaped my chase. But I would have found them once I go and fix that paravirt muck. Thanks, tglx