From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E281BC4708E for ; Tue, 6 Dec 2022 14:46:43 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4NRNXf1Yq2z3bhN for ; Wed, 7 Dec 2022 01:46:42 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=smtpout1 header.b=Ea1ZwCpS; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=efficios.com (client-ip=167.114.26.122; helo=smtpout.efficios.com; envelope-from=mathieu.desnoyers@efficios.com; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=efficios.com header.i=@efficios.com header.a=rsa-sha256 header.s=smtpout1 header.b=Ea1ZwCpS; dkim-atps=neutral X-Greylist: delayed 460 seconds by postgrey-1.36 at boromir; Wed, 07 Dec 2022 01:45:46 AEDT Received: from smtpout.efficios.com (smtpout.efficios.com [167.114.26.122]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4NRNWZ6Ynvz2xmg for ; Wed, 7 Dec 2022 01:45:45 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=efficios.com; s=smtpout1; t=1670337473; bh=Kd0jjz1CjqcV+7piYClIjIJneBLKFwnv523KTTiO8hc=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=Ea1ZwCpSugdyNqlfCe26vLk7eouQGBO16z+sABZ+AEhPAoLqpWdhIDQeEtbGdLtH/ Jv0ExQFuElzvCxZDepj4uNvxW9Ax1PjfXxqRp0FrtpysjqGqGij5zJb2PSy8LGnvjY K3hdxKdz9uuAiQ4hZA5eJnKOGTIl2mr/yvEUf43qdn0fsTuyKkapurJ7YEqABZS8zQ tH/WHgQorXsQXgz/uU8wmLA6pfZSMSKcRKDFEwI4AhewU4F91iKppX9ZjUlIOSF8yh 7h6+nUfBIbbqWRkqBLb99QUKwzGZbzdwf5FMQoNcPy+3+ZswlGBngbsgC5T2ymC2zh W3F9L1UL+utyQ== Received: from [172.16.0.118] (192-222-180-24.qc.cable.ebox.net [192.222.180.24]) by smtpout.efficios.com (Postfix) with ESMTPSA id 4NRNLT2jlDzZx8; Tue, 6 Dec 2022 09:37:53 -0500 (EST) Message-ID: <484763aa-e77b-b599-4786-ef4cdf16d7bd@efficios.com> Date: Tue, 6 Dec 2022 09:38:11 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: Re: [PATCH] powerpc/ftrace: fix syscall tracing on PPC64_ELF_ABI_V1 Content-Language: en-US To: Michael Ellerman , Michael Jeanson , Christophe Leroy , Steven Rostedt References: <20221201161442.2127231-1-mjeanson@efficios.com> <87pmcys9ae.fsf@mpe.ellerman.id.au> <219580de-7473-f142-5ef2-1ed40e41d13d@csgroup.eu> <323f83c7-38fe-8a12-d77a-0a7249aad316@efficios.com> <87mt81sbxb.fsf@mpe.ellerman.id.au> From: Mathieu Desnoyers In-Reply-To: <87mt81sbxb.fsf@mpe.ellerman.id.au> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , "linux-kernel@vger.kernel.org" , Nicholas Piggin , Masami Hiramatsu , "stable@vger.kernel.org" , Michal Suchanek , "linuxppc-dev@lists.ozlabs.org" Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On 2022-12-05 17:50, Michael Ellerman wrote: > Michael Jeanson writes: >> On 2022-12-05 15:11, Michael Jeanson wrote: >>>>>> Michael Jeanson writes: >>>>>>> In v5.7 the powerpc syscall entry/exit logic was rewritten in C, on >>>>>>> PPC64_ELF_ABI_V1 this resulted in the symbols in the syscall table >>>>>>> changing from their dot prefixed variant to the non-prefixed ones. >>>>>>> >>>>>>> Since ftrace prefixes a dot to the syscall names when matching them to >>>>>>> build its syscall event list, this resulted in no syscall events being >>>>>>> available. >>>>>>> >>>>>>> Remove the PPC64_ELF_ABI_V1 specific version of >>>>>>> arch_syscall_match_sym_name to have the same behavior across all powerpc >>>>>>> variants. >>>>>> >>>>>> This doesn't seem to work for me. >>>>>> >>>>>> Event with it applied I still don't see anything in >>>>>> /sys/kernel/debug/tracing/events/syscalls >>>>>> >>>>>> Did we break it in some other way recently? >>>>>> >>>>>> cheers >> >> I did some further testing, my config also enabled KALLSYMS_ALL, when I remove >> it there is indeed no syscall events. > > Aha, OK that explains it I guess. > > I was using ppc64_guest_defconfig which has ABI_V1 and FTRACE_SYSCALLS, > but does not have KALLSYMS_ALL. So I guess there's some other bug > lurking in there. I don't have the setup handy to validate it, but I suspect it is caused by the way scripts/kallsyms.c:symbol_valid() checks whether a symbol entry needs to be integrated into the assembler output when --all-symbols is not specified. It only keeps symbols which addresses are in the text range. On PPC64_ELF_ABI_V1, this means only the dot-prefixed symbols will be kept (those point to the function begin), leaving out the non-dot-prefixed symbols (those point to the function descriptors). So I see two possible solutions there: either we ensure that FTRACE_SYSCALLS selects KALLSYMS_ALL on PPC64_ELF_ABI_V1, or we modify scripts/kallsyms.c:symbol_valid() to also include function descriptor symbols. This would mean accepting symbols pointing into the .opd ELF section. IMHO the second option would be better because it does not increase the kernel image size as much as KALLSYMS_ALL. Thoughts ? Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15641C352A1 for ; Tue, 6 Dec 2022 14:45:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235008AbiLFOpr (ORCPT ); Tue, 6 Dec 2022 09:45:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44344 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234997AbiLFOpq (ORCPT ); Tue, 6 Dec 2022 09:45:46 -0500 X-Greylist: delayed 468 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Tue, 06 Dec 2022 06:45:43 PST Received: from smtpout.efficios.com (smtpout.efficios.com [167.114.26.122]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DE5951AD90 for ; Tue, 6 Dec 2022 06:45:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=efficios.com; s=smtpout1; t=1670337473; bh=Kd0jjz1CjqcV+7piYClIjIJneBLKFwnv523KTTiO8hc=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=Ea1ZwCpSugdyNqlfCe26vLk7eouQGBO16z+sABZ+AEhPAoLqpWdhIDQeEtbGdLtH/ Jv0ExQFuElzvCxZDepj4uNvxW9Ax1PjfXxqRp0FrtpysjqGqGij5zJb2PSy8LGnvjY K3hdxKdz9uuAiQ4hZA5eJnKOGTIl2mr/yvEUf43qdn0fsTuyKkapurJ7YEqABZS8zQ tH/WHgQorXsQXgz/uU8wmLA6pfZSMSKcRKDFEwI4AhewU4F91iKppX9ZjUlIOSF8yh 7h6+nUfBIbbqWRkqBLb99QUKwzGZbzdwf5FMQoNcPy+3+ZswlGBngbsgC5T2ymC2zh W3F9L1UL+utyQ== Received: from [172.16.0.118] (192-222-180-24.qc.cable.ebox.net [192.222.180.24]) by smtpout.efficios.com (Postfix) with ESMTPSA id 4NRNLT2jlDzZx8; Tue, 6 Dec 2022 09:37:53 -0500 (EST) Message-ID: <484763aa-e77b-b599-4786-ef4cdf16d7bd@efficios.com> Date: Tue, 6 Dec 2022 09:38:11 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: Re: [PATCH] powerpc/ftrace: fix syscall tracing on PPC64_ELF_ABI_V1 Content-Language: en-US To: Michael Ellerman , Michael Jeanson , Christophe Leroy , Steven Rostedt Cc: "stable@vger.kernel.org" , Masami Hiramatsu , Mark Rutland , Nicholas Piggin , Michal Suchanek , "linuxppc-dev@lists.ozlabs.org" , "linux-kernel@vger.kernel.org" References: <20221201161442.2127231-1-mjeanson@efficios.com> <87pmcys9ae.fsf@mpe.ellerman.id.au> <219580de-7473-f142-5ef2-1ed40e41d13d@csgroup.eu> <323f83c7-38fe-8a12-d77a-0a7249aad316@efficios.com> <87mt81sbxb.fsf@mpe.ellerman.id.au> From: Mathieu Desnoyers In-Reply-To: <87mt81sbxb.fsf@mpe.ellerman.id.au> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org On 2022-12-05 17:50, Michael Ellerman wrote: > Michael Jeanson writes: >> On 2022-12-05 15:11, Michael Jeanson wrote: >>>>>> Michael Jeanson writes: >>>>>>> In v5.7 the powerpc syscall entry/exit logic was rewritten in C, on >>>>>>> PPC64_ELF_ABI_V1 this resulted in the symbols in the syscall table >>>>>>> changing from their dot prefixed variant to the non-prefixed ones. >>>>>>> >>>>>>> Since ftrace prefixes a dot to the syscall names when matching them to >>>>>>> build its syscall event list, this resulted in no syscall events being >>>>>>> available. >>>>>>> >>>>>>> Remove the PPC64_ELF_ABI_V1 specific version of >>>>>>> arch_syscall_match_sym_name to have the same behavior across all powerpc >>>>>>> variants. >>>>>> >>>>>> This doesn't seem to work for me. >>>>>> >>>>>> Event with it applied I still don't see anything in >>>>>> /sys/kernel/debug/tracing/events/syscalls >>>>>> >>>>>> Did we break it in some other way recently? >>>>>> >>>>>> cheers >> >> I did some further testing, my config also enabled KALLSYMS_ALL, when I remove >> it there is indeed no syscall events. > > Aha, OK that explains it I guess. > > I was using ppc64_guest_defconfig which has ABI_V1 and FTRACE_SYSCALLS, > but does not have KALLSYMS_ALL. So I guess there's some other bug > lurking in there. I don't have the setup handy to validate it, but I suspect it is caused by the way scripts/kallsyms.c:symbol_valid() checks whether a symbol entry needs to be integrated into the assembler output when --all-symbols is not specified. It only keeps symbols which addresses are in the text range. On PPC64_ELF_ABI_V1, this means only the dot-prefixed symbols will be kept (those point to the function begin), leaving out the non-dot-prefixed symbols (those point to the function descriptors). So I see two possible solutions there: either we ensure that FTRACE_SYSCALLS selects KALLSYMS_ALL on PPC64_ELF_ABI_V1, or we modify scripts/kallsyms.c:symbol_valid() to also include function descriptor symbols. This would mean accepting symbols pointing into the .opd ELF section. IMHO the second option would be better because it does not increase the kernel image size as much as KALLSYMS_ALL. Thoughts ? Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com