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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2AB96C46CD2 for ; Tue, 2 Jan 2024 15:16:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B6D856B00F9; Tue, 2 Jan 2024 10:16:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B1D5C6B00FB; Tue, 2 Jan 2024 10:16:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9E56A6B0103; Tue, 2 Jan 2024 10:16:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 8F2356B00F9 for ; Tue, 2 Jan 2024 10:16:18 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 6389180855 for ; Tue, 2 Jan 2024 15:16:18 +0000 (UTC) X-FDA: 81634722036.08.D1761C1 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf09.hostedemail.com (Postfix) with ESMTP id 9F111140031 for ; Tue, 2 Jan 2024 15:16:16 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf09.hostedemail.com: domain of "SRS0=Ki6p=IM=goodmis.org=rostedt@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=Ki6p=IM=goodmis.org=rostedt@kernel.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1704208576; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=o/WoUacpzG/LT+V1UD+A00Ic2hE0p5pNeZMdfXTVf8E=; b=a8xKkeC7Bu2j5mPyAw7Jwkre2PNcGqrMyo1WV16nW52fVrJyYxawcWITTLWKF9QR9/a4BV x9YvKM/GwMWionCf8yuac0OYQMqRcv7ESfxNaaPYsBLpaf7q5zInqgv6M3AW+Y2is2Zby2 m4wrx9qx8DRAHfM+ovCmQ0VPz0s1pUc= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf09.hostedemail.com: domain of "SRS0=Ki6p=IM=goodmis.org=rostedt@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=Ki6p=IM=goodmis.org=rostedt@kernel.org" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1704208576; a=rsa-sha256; cv=none; b=It0bNCEJJ/C83c2A6hKtX2bhvKA1Q8IYOnq150u11ch6CbfMNCyapPT7HTImkNcUhjklSL UlG/uGSVHqyEvxulQ1NIxpvKqOu8+T/Y4+cDW1Ic4k89I+OB3kb9rLSfNKae6ebqgIVwT7 1ENAeYBQeXg3wFScLRmCXvwM8ZvOYK8= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 9807661185; Tue, 2 Jan 2024 15:16:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8D46C433C8; Tue, 2 Jan 2024 15:16:12 +0000 (UTC) Date: Tue, 2 Jan 2024 10:17:12 -0500 From: Steven Rostedt To: Ilya Leoshkevich Cc: Alexander Gordeev , Alexander Potapenko , Andrew Morton , Christoph Lameter , David Rientjes , Heiko Carstens , Joonsoo Kim , Marco Elver , Masami Hiramatsu , Pekka Enberg , Vasily Gorbik , Vlastimil Babka , Christian Borntraeger , Dmitry Vyukov , Hyeonggon Yoo <42.hyeyoo@gmail.com>, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-s390@vger.kernel.org, linux-trace-kernel@vger.kernel.org, Mark Rutland , Roman Gushchin , Sven Schnelle Subject: Re: [PATCH v3 01/34] ftrace: Unpoison ftrace_regs in ftrace_ops_list_func() Message-ID: <20240102101712.515e0fe3@gandalf.local.home> In-Reply-To: <20231213233605.661251-2-iii@linux.ibm.com> References: <20231213233605.661251-1-iii@linux.ibm.com> <20231213233605.661251-2-iii@linux.ibm.com> X-Mailer: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 9F111140031 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: b4b3whjkpfcixmefi9y97739th96tbc4 X-HE-Tag: 1704208576-204664 X-HE-Meta: U2FsdGVkX1/EekrF8Ys288RHpoW5XjtR49gwcmS6an3FvmjOlYGasZqhnBQnljxcwG2cvbpFgalz3YD0YqfW+byUGRpHr6UE5WzwRNqG8QJCtTALInBc3g78PFM7IGbsejqBfMfoNB5HbsUflL/5IT730PWotm7OatWGvdBnIC+iC660OmHAUTkmRT8C+GpOe0SbOoXvMsFxmJf8ZscBWiwEu9sCM8PALj8yKGQ8Z8mhglBn8eNKeujyt3KJb7kJHyKPx6G7koOtsENcc2qbKw9VMEboRnIO+nBgPjrn+n/3spRorfDdFHHMLNJWqAlZCGq4TZcs54A4k14EyG/wC/CyJlh0gvFkHzkKEI8dV0CdrfrCcHdXWe2GTad+uapu7eN97BWwSZib/LDe/TWCYZVJB91EzRfas42o7j6GTBpoHYlRZLQCTyqI/B53y+1nw5fZwYfM/dd6GE9aY1thfy8VF9b1FZl3ciTgqoJuIYN5b0Ditx/erlAhPTfSXjM+VT9xGwXSh10KmoOBlAz+7JrSEE6oknluuEoGJtB0fBBc1vbIMpahHoDbZH+de+tpA7BPswNy6Un6cogipDTfQxBfHUMJmm+41ufZQXjTvFMDy402A9gdAXlwhK6ylhCXcZXHvMt64AbRJ85hlDAT/RjkXiIHNjI9g1/XZApIwgt5T1Wln3mHOXvLE+gOi3tcL6P581pojXGme4F8yXOK92AaMAyL8TNdgbH18lZLKl00sAYqaZpVEh2vh5hEr3EPB3wzziVsAdUB6sz+bGI51Sn9QtGuMB6Q48IGP/Ca5HUYKiC4mCZXSOTpDBITdTFPbOrO3gDowAfKKS6ScdA9dcnllQmRn4VHcECNKtqgJF/CH9KAsqLizFgWDieHbtA6OLUHUByISW0RM087V/5A0BjLdQIKLcTfnJCWUi9Er0Aufx9w6abfKm7R0Il+xELQAdbsCZ9tThMQCZuyMQU 5EJi2WqR cdMe+Gsb+7ttdb4oom2ypUHbkAY5G2NoXmuRqYumPIsoQsc52ISX83MTWz9Ae+6PwhxmO8ods57giojDQf3rxYII6rPjSa/Sp1mS+xb6SyHk1tyAUxjXpOIZ7Kwsz+mHJt0MOIQJ5JqM7uspZWOMzhlX1fx/4Ps84/RjzN/0/LKSRxGhn9ZECaGs64KVlCanAcTGxZLqyfRW3EkKXSJCYp0UbBMWYmY3L9H1+ifH7RzVq2PP2FtBeB7vX410zG149vAnChYmPjmH6I1nBxdozRS8YanqqVVbEhY/XeMPguHxTEoRnV344OZEDhVt/wgPkIt4oW+5WuXNafXtgZa+A9OZ7ofY18a0ObXXW8cBlqJXKZVVFxdUWB+fk2u1AoWK4uIacKCHifCAofcX2Y8hbCsw6Bk0XDaIHqPGOm3QgjQ6aQ3+Y+R3UOm7bHnZF2fP5fz4ENF5/Hhx5maFDoNxgfB1SoSZj2z98UFrk X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, 14 Dec 2023 00:24:21 +0100 Ilya Leoshkevich wrote: > Architectures use assembly code to initialize ftrace_regs and call > ftrace_ops_list_func(). Therefore, from the KMSAN's point of view, > ftrace_regs is poisoned on ftrace_ops_list_func entry(). This causes > KMSAN warnings when running the ftrace testsuite. BTW, why is this only a problem for s390 and no other architectures? If it is only a s390 thing, then we should do this instead: in include/linux/ftrace.h: /* Add a comment here to why this is needed */ #ifndef ftrace_list_func_unpoison # define ftrace_list_func_unpoison(fregs) do { } while(0) #endif In arch/s390/include/asm/ftrace.h: /* Add a comment to why s390 is special */ # define ftrace_list_func_unpoison(fregs) kmsan_unpoison_memory(fregs, sizeof(*fregs)) > > Fix by trusting the architecture-specific assembly code and always > unpoisoning ftrace_regs in ftrace_ops_list_func. > > Acked-by: Steven Rostedt (Google) I'm taking my ack away for this change in favor of what I'm suggesting now. > Reviewed-by: Alexander Potapenko > Signed-off-by: Ilya Leoshkevich > --- > kernel/trace/ftrace.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c > index 8de8bec5f366..dfb8b26966aa 100644 > --- a/kernel/trace/ftrace.c > +++ b/kernel/trace/ftrace.c > @@ -7399,6 +7399,7 @@ __ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip, > void arch_ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip, > struct ftrace_ops *op, struct ftrace_regs *fregs) > { > + kmsan_unpoison_memory(fregs, sizeof(*fregs)); And here have: ftrace_list_func_unpoison(fregs); That way we only do it for archs that really need it, and do not affect archs that do not. I want to know why this only affects s390, because if we are just doing this because "it works", it could be just covering up a symptom of something else and not actually doing the "right thing". -- Steve > __ftrace_ops_list_func(ip, parent_ip, NULL, fregs); > } > #else