Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp4205059ybv; Tue, 25 Feb 2020 15:26:28 -0800 (PST) X-Google-Smtp-Source: APXvYqzQXYbkDVaXHO/z9t1i0hJUyT8tcjdP+zJaXEcIHF04UMnSwnJlnVGTWpSkyfihy+MFT2/Q X-Received: by 2002:a05:6830:2154:: with SMTP id r20mr835880otd.131.1582673188555; Tue, 25 Feb 2020 15:26:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582673188; cv=none; d=google.com; s=arc-20160816; b=ubMAEKp9LNIdzwQZKgZNTA4m/kafXb5PqPJiEYKeGg8hH8/ki2P4O2QgbhF0j545kj Yie2zCT8B2GnVYr0ZVp1oMxI9/JuigfNQnOtpiAwt6f4//2dg53rdiVrZFoMq8MRQJtd Zmes9/H+Ey5PC065Jc0LNAwTcccEekqQhqOxrmv6PcwhRDoPp510sOf1k67+GRSLE4y0 XBuUF29JRzY22IPFm+EBy4JubDsAkZMxXz5iTxeGXAXfjs3IRox0W9s3iyjsKseRU3fH tYMo56s+5HdebRL2wIRRICqWzhP912ZJWJtv7+ewTDJ7aNhh4dhH8v1jnSG8fhlIFM17 T4IQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:subject:cc:to :from:date:user-agent:message-id; bh=hQ5vwQ8XSQ7QeXriTnvAC1MLvEpzRrCKlvK3/CfsSuc=; b=Lr0dysfyok/O+Gyuw5nsmchzbAh08YsrrEyduYw3kQjckGb0HFJOYeM2J1wnJrMugC NSf3l7ovLoow9L0hr9B/7PPEdJ+CdJ91BFJjjE6qZ+OlFzLqVhSDr2ZJfYF1Fr0MxFUE 1RVW9AHbwtlr7DgzJ7QwavxUEQx4FksJfDoOcGKovtEk95qZ6YNkxF/rM3nxsaLpPJ7d hklmSYYmgeZ3shzMZZ6REkR2ruD78YV9tSvn4V7tej1HButrv/yQ8cgnYVC1CDdKskaR i0pnshs83wP3oWBze9qkTVZnSHrcmOq4U2kLb1WV2xI65MBdPByvoj06DsZShfpliXQA 1mGw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 7si142762oij.29.2020.02.25.15.26.16; Tue, 25 Feb 2020 15:26:28 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729747AbgBYX0A (ORCPT + 99 others); Tue, 25 Feb 2020 18:26:00 -0500 Received: from Galois.linutronix.de ([193.142.43.55]:55572 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729614AbgBYXZ4 (ORCPT ); Tue, 25 Feb 2020 18:25:56 -0500 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 1j6jaA-0004aR-MJ; Wed, 26 Feb 2020 00:25:42 +0100 Received: from nanos.tec.linutronix.de (localhost [IPv6:::1]) by nanos.tec.linutronix.de (Postfix) with ESMTP id 04211104096; Wed, 26 Feb 2020 00:25:33 +0100 (CET) Message-Id: <20200225221305.605144982@linutronix.de> User-Agent: quilt/0.65 Date: Tue, 25 Feb 2020 23:08:05 +0100 From: Thomas Gleixner To: LKML Cc: x86@kernel.org, Steven Rostedt , Brian Gerst , Juergen Gross , Paolo Bonzini , Arnd Bergmann Subject: [patch 4/8] x86/entry: Move irq tracing on syscall entry to C-code References: <20200225220801.571835584@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 Now that the C entry points are safe, move the irq flags tracing code into the entry helper. Signed-off-by: Thomas Gleixner --- arch/x86/entry/common.c | 5 +++++ arch/x86/entry/entry_32.S | 12 ------------ arch/x86/entry/entry_64.S | 2 -- arch/x86/entry/entry_64_compat.S | 18 ------------------ 4 files changed, 5 insertions(+), 32 deletions(-) --- a/arch/x86/entry/common.c +++ b/arch/x86/entry/common.c @@ -57,6 +57,11 @@ static inline void enter_from_user_mode( */ static __always_inline void syscall_entry_fixups(void) { + /* + * Usermode is traced as interrupts enabled, but the syscall entry + * mechanisms disable interrupts. Tell the tracer. + */ + trace_hardirqs_off(); enter_from_user_mode(); local_irq_enable(); } --- a/arch/x86/entry/entry_32.S +++ b/arch/x86/entry/entry_32.S @@ -960,12 +960,6 @@ SYM_FUNC_START(entry_SYSENTER_32) jnz .Lsysenter_fix_flags .Lsysenter_flags_fixed: - /* - * User mode is traced as though IRQs are on, and SYSENTER - * turned them off. - */ - TRACE_IRQS_OFF - movl %esp, %eax call do_fast_syscall_32 /* XEN PV guests always use IRET path */ @@ -1075,12 +1069,6 @@ SYM_FUNC_START(entry_INT80_32) SAVE_ALL pt_regs_ax=$-ENOSYS switch_stacks=1 /* save rest */ - /* - * User mode is traced as though IRQs are on, and the interrupt gate - * turned them off. - */ - TRACE_IRQS_OFF - movl %esp, %eax call do_int80_syscall_32 .Lsyscall_32_done: --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -167,8 +167,6 @@ SYM_INNER_LABEL(entry_SYSCALL_64_after_h PUSH_AND_CLEAR_REGS rax=$-ENOSYS - TRACE_IRQS_OFF - /* IRQs are off. */ movq %rax, %rdi movq %rsp, %rsi --- a/arch/x86/entry/entry_64_compat.S +++ b/arch/x86/entry/entry_64_compat.S @@ -129,12 +129,6 @@ SYM_FUNC_START(entry_SYSENTER_compat) jnz .Lsysenter_fix_flags .Lsysenter_flags_fixed: - /* - * User mode is traced as though IRQs are on, and SYSENTER - * turned them off. - */ - TRACE_IRQS_OFF - movq %rsp, %rdi call do_fast_syscall_32 /* XEN PV guests always use IRET path */ @@ -247,12 +241,6 @@ SYM_INNER_LABEL(entry_SYSCALL_compat_aft pushq $0 /* pt_regs->r15 = 0 */ xorl %r15d, %r15d /* nospec r15 */ - /* - * User mode is traced as though IRQs are on, and SYSENTER - * turned them off. - */ - TRACE_IRQS_OFF - movq %rsp, %rdi call do_fast_syscall_32 /* XEN PV guests always use IRET path */ @@ -403,12 +391,6 @@ SYM_CODE_START(entry_INT80_compat) xorl %r15d, %r15d /* nospec r15 */ cld - /* - * User mode is traced as though IRQs are on, and the interrupt - * gate turned them off. - */ - TRACE_IRQS_OFF - movq %rsp, %rdi call do_int80_syscall_32 .Lsyscall_32_done: