Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp1602817pxb; Mon, 11 Oct 2021 09:16:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyAarf9ZQb2aBy82Y7VR61RnIBt6dSRNGO0FQa4thKwLzo0xLMwY7xUpoDd06/S+2hiR5bW X-Received: by 2002:a05:6402:50d0:: with SMTP id h16mr42330935edb.303.1633969015435; Mon, 11 Oct 2021 09:16:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633969015; cv=none; d=google.com; s=arc-20160816; b=OA6MmZO8gSIhsjAsCQ+fl4GBNQYHLl4qgGkEvwvnS3+uXLMHSJ1xWaSt6tUq0vt2DD x1eDoEtKZsWFpZqGAA3f44nXwHJfzmOxGUoQ31LVT1fkZ3lQhhu6DxQ+/qJisoaTHXyL pwm1OcbRDdKvWMvSlQ/0qROg45pnHeNXXEfeqNRnnoNjGytTnXD9laQxIipwyINh6qxJ bUiY9YSRK/1XxWwgWl40EUQ7w4NHA0xo9qAb1jh407Ndg4dg4a1v/sKQoj78sxSFK3G1 6I0LbxszwlEekXh9HIdzduRsIVMAnEccnHo7F6xpky9g8WkxQItyzZB2ZmnMWrA6cbK0 MxQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=tyAHSc9TYn6qT8+31N3j7ki1hJ95qPHDylHJAqlyR9s=; b=SvfqHRaPAUWBA6xGhTW8NqkUVTsqlf7qKqJBNmNT112qpZRtcfGivwNW/rReDBdC+j 6TyTymwHO3bTqo4naWymHRCALk+6momr+MDQuAnD8Rv0Ux4Jk3Ndu6sBfWDP0sVPJCy/ k5iGQu/r2FQjzWyFUfFRdY5+/uvpmwRMom1rx7FZ01CROnUlKXWnh5NsdmkKFR0jGmuW HfqP0vb7bXYlhV1VzEMf1NfggAhAqrkrD1iBJTWRPoSIKf/t8JHyf+CENcj7Q0COpD2U Mi8hSeAJmhSsDumnKcJfGJ4Ba/z7AsLPALQehc9IO5azWQZKLQMKLkDK96NrQQhoPHvt m+Nw== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bh21si12841539ejb.428.2021.10.11.09.16.28; Mon, 11 Oct 2021 09:16:55 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235541AbhJKJlh (ORCPT + 99 others); Mon, 11 Oct 2021 05:41:37 -0400 Received: from out30-130.freemail.mail.aliyun.com ([115.124.30.130]:48186 "EHLO out30-130.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235500AbhJKJle (ORCPT ); Mon, 11 Oct 2021 05:41:34 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R301e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04357;MF=yun.wang@linux.alibaba.com;NM=1;PH=DS;RN=5;SR=0;TI=SMTPD_---0UrPazJ3_1633945172; Received: from testdeMacBook-Pro.local(mailfrom:yun.wang@linux.alibaba.com fp:SMTPD_---0UrPazJ3_1633945172) by smtp.aliyun-inc.com(127.0.0.1); Mon, 11 Oct 2021 17:39:33 +0800 Subject: Re: [RESEND PATCH v2] trace: prevent preemption in perf_ftrace_function_call() To: Peter Zijlstra Cc: Steven Rostedt , Ingo Molnar , open list , Jiri Olsa References: <20211008200328.5b88422d@oasis.local.home> From: =?UTF-8?B?546L6LSH?= Message-ID: <87aeef5b-c457-d4df-8abf-f9f035d73dbc@linux.alibaba.com> Date: Mon, 11 Oct 2021 17:39:32 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2021/10/11 下午4:48, Peter Zijlstra wrote: > On Mon, Oct 11, 2021 at 10:32:46AM +0200, Peter Zijlstra wrote: >> diff --git a/include/linux/trace_recursion.h b/include/linux/trace_recursion.h >> index a9f9c5714e65..ca12e2d8e060 100644 >> --- a/include/linux/trace_recursion.h >> +++ b/include/linux/trace_recursion.h >> @@ -214,7 +214,14 @@ static __always_inline void trace_clear_recursion(int bit) >> static __always_inline int ftrace_test_recursion_trylock(unsigned long ip, >> unsigned long parent_ip) >> { >> - return trace_test_and_set_recursion(ip, parent_ip, TRACE_FTRACE_START, TRACE_FTRACE_MAX); >> + bool ret; >> + >> + preempt_disable_notrace(); >> + ret = trace_test_and_set_recursion(ip, parent_ip, TRACE_FTRACE_START, TRACE_FTRACE_MAX); >> + if (!ret) >> + preempt_enable_notrace(); >> + >> + return ret; >> } >> >> /** > > Oh, I might've gotten that wrong, I assumed regular trylock semantics, > but it doesn't look like that's right. I will use bit instead ret and give some testing :-) BTW, would you prefer to merge these changes into this patch or maybe send another patch with your suggested-by? Regards, Michael Wang >