Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2980646ybz; Mon, 27 Apr 2020 07:58:34 -0700 (PDT) X-Google-Smtp-Source: APiQypJwWx+v+VBov0gu+I+T8uZLjZ/o5E3SFcLbsg6PeEqlp9I5Ak1AEC7hWN+2xR1wmjGXj0Qb X-Received: by 2002:a50:d71e:: with SMTP id t30mr19823549edi.246.1587999514018; Mon, 27 Apr 2020 07:58:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587999514; cv=none; d=google.com; s=arc-20160816; b=s1bGJzZ7l8wNMtmwo6ay0tiXddaxjoHQsixk/jKc1LI1mUJRhVpsQtaWo+ALeQb/PH pCBC13ou5EKcYEvbfYmwBZ1LBQ43VKXrLG6sR9Fy1hZCzh2L85M3X0q225gpTeSOzvxF hTO8xMGpqh5KxTZ7f+0yQwuA5qpzfe5Xe8SIhnsKfABwaxppYcVfaUGs+1EErdXeRSRq liek7VYUM5sYBPTn9z4HmKDMNfZxA7E3sH0BsllcAhWDyygtvj4H/bR6mMXDLRHymdfY Udo+qNy0JyWqVDnXVp96+4SUjZ2Shl71y/5vdbYUIA+nBHBxVi8OJ/1qfPQQhff6EtOd ovsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=H7dCXaMeeM1AF2bYRY1Lq3DIQoyRXWX0piVU+eJYfvg=; b=OUlT2KlLwP9y319c3pPPi4+icdFnd/8wiqmtjt/GHil4Ji7ZSj7FgrL7uELOz/sfSq vlNt9/NyaqoUxWcty1y4Wy1sqSs4cUpPg7yM87DqusOC70QCwR7z7tNx79icw8sZ8iIv Md13hUEEZ8WbtTqd3vz1aI+eq6zstF6nQoRSlSCnKhkmefCLf1VBz0RmmFSfS7cpl2+s +CpRPbY8DKwMh+vHPNEgrzgSoqEiYofBv6zSeWuQGOnjRDdj5BeECbDifDdJZtywgioP SCJksmWsnnU4wVh0NGD7gqMJ2Nlj2sC4+7o5K4RUOuDZfYGyR5eUHCJkThDkvLvgvS1g zlng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@yandex-team.ru header.s=default header.b=ktrFiqZy; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=yandex-team.ru Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x2si8108913ejw.475.2020.04.27.07.58.09; Mon, 27 Apr 2020 07:58:34 -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; dkim=pass header.i=@yandex-team.ru header.s=default header.b=ktrFiqZy; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=yandex-team.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728109AbgD0Oz7 (ORCPT + 99 others); Mon, 27 Apr 2020 10:55:59 -0400 Received: from forwardcorp1o.mail.yandex.net ([95.108.205.193]:46626 "EHLO forwardcorp1o.mail.yandex.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726651AbgD0Oz6 (ORCPT ); Mon, 27 Apr 2020 10:55:58 -0400 Received: from mxbackcorp2j.mail.yandex.net (mxbackcorp2j.mail.yandex.net [IPv6:2a02:6b8:0:1619::119]) by forwardcorp1o.mail.yandex.net (Yandex) with ESMTP id F06CB2E0DEC; Mon, 27 Apr 2020 17:55:51 +0300 (MSK) Received: from iva4-7c3d9abce76c.qloud-c.yandex.net (iva4-7c3d9abce76c.qloud-c.yandex.net [2a02:6b8:c0c:4e8e:0:640:7c3d:9abc]) by mxbackcorp2j.mail.yandex.net (mxbackcorp/Yandex) with ESMTP id F0tEcqNMpb-toHG4qg0; Mon, 27 Apr 2020 17:55:51 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1587999351; bh=H7dCXaMeeM1AF2bYRY1Lq3DIQoyRXWX0piVU+eJYfvg=; h=In-Reply-To:Message-ID:From:Date:References:To:Subject:Cc; b=ktrFiqZycvqUOCLhaDihKuXqEcXjeeucE5/OD2LIdjFi4fVpCwxGKWypMzE4LLRFr gVn8Vc33KuuybDPshohLbAcRErcCM6irXHpD9jrAcx87XREu3wW/B8lZL4+zsPoWCf ff5uJLIoEj946qG0dmdzf/Z/dX+OExxAh3x9W1Bw= Authentication-Results: mxbackcorp2j.mail.yandex.net; dkim=pass header.i=@yandex-team.ru Received: from dynamic-vpn.dhcp.yndx.net (dynamic-vpn.dhcp.yndx.net [2a02:6b8:b080:7208::1:1]) by iva4-7c3d9abce76c.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id KRR2uBQ19L-toWKZ9W2; Mon, 27 Apr 2020 17:55:50 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) Subject: Re: [PATCH] tracing/x86: fix trace event registration for syscalls without arguments To: Thomas Gleixner , Brian Gerst , linux-kernel@vger.kernel.org Cc: Dominik Brodowski , Andy Lutomirski References: <158636958997.7900.16485049455470033557.stgit@buzz> <87368pq97n.fsf@nanos.tec.linutronix.de> From: Konstantin Khlebnikov Message-ID: <1727d83e-5a3d-952e-d7e8-0e3d52bbafa2@yandex-team.ru> Date: Mon, 27 Apr 2020 17:55:50 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <87368pq97n.fsf@nanos.tec.linutronix.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-CA Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 27/04/2020 17.44, Thomas Gleixner wrote: > Konstantin Khlebnikov writes: > >> Syscalls without arguments now has no ABI subs, instead of that macro > > What is 'ABI subs'? typo. ABI stubs That commmit d2b5de495ee9 ("x86/entry: Refactor SYSCALL_DEFINE0 macros") replaced usual wrapper long __x64_syscall() { return __do_sys_syscall(); } with alias long __x64_syscall() __alias__(__do_sys_syscall); And now symbol lookup for entry point return "__do_sys_syscall" rather than "__x64_syscall" and ftrace magic cannot determine syscall number for entry point and vise versa. > >> SYSCALL_DEFINE0() defines __abi_sys_name as aliase to __do_sys_name. >> >> As a result in find_syscall_meta() kallsyms_lookup() returns >> "__do_sys_name" which does not match with declared trace event. >> >> Also see commit 1c758a2202a6 ("tracing/x86: Update syscall trace events >> to handle new prefixed syscall func names") >> >> Fixes: d2b5de495ee9 ("x86/entry: Refactor SYSCALL_DEFINE0 macros") >> Signed-off-by: Konstantin Khlebnikov >> --- >> arch/x86/include/asm/ftrace.h | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/arch/x86/include/asm/ftrace.h b/arch/x86/include/asm/ftrace.h >> index 85be2f506272..70b96cae5b42 100644 >> --- a/arch/x86/include/asm/ftrace.h >> +++ b/arch/x86/include/asm/ftrace.h >> @@ -61,11 +61,12 @@ static inline bool arch_syscall_match_sym_name(const char *sym, const char *name >> { >> /* >> * Compare the symbol name with the system call name. Skip the >> - * "__x64_sys", "__ia32_sys" or simple "sys" prefix. >> + * "__x64_sys", "__ia32_sys", "__do_sys" or simple "sys" prefix. >> */ >> return !strcmp(sym + 3, name + 3) || >> (!strncmp(sym, "__x64_", 6) && !strcmp(sym + 9, name + 3)) || >> - (!strncmp(sym, "__ia32_", 7) && !strcmp(sym + 10, name + 3)); >> + (!strncmp(sym, "__ia32_", 7) && !strcmp(sym + 10, name + 3)) || >> + (!strncmp(sym, "__do_sys", 8) && !strcmp(sym + 8, name + 3)); >> } >> >> #ifndef COMPILE_OFFSETS