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 45CF8E95A8E for ; Mon, 9 Oct 2023 09:30:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7A8A48D0035; Mon, 9 Oct 2023 05:30:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 758678D0031; Mon, 9 Oct 2023 05:30:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6200A8D0035; Mon, 9 Oct 2023 05:30:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 532F48D0031 for ; Mon, 9 Oct 2023 05:30:33 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0587A1401A9 for ; Mon, 9 Oct 2023 09:30:33 +0000 (UTC) X-FDA: 81325402746.13.0958C58 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by imf01.hostedemail.com (Postfix) with ESMTP id 352DA40014 for ; Mon, 9 Oct 2023 09:30:30 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=seKv2zup; spf=pass (imf01.hostedemail.com: domain of edumazet@google.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=edumazet@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696843831; 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:dkim-signature; bh=TLyudqSMOhmAh3CWo49NCC+vFjpCOk99m8pKFm0PjdI=; b=ZQBmI9JnB+/Xf3QKT5S/BTMyv3TYqvXNvvxTBRkb/WLMuCrEvFBCiJWZS/PUyD5XomAR2t B7tylpgVa/cdabNKBML0SYMFhl1FyY0maVLMzIhSgLG2+f+e3rkePFaW5M3ICwbu9p/RrC CG5tTdoqPR0E0gcJcKyihLONTtlf1Is= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696843831; a=rsa-sha256; cv=none; b=bgDey92wvVQ42TDJq9C6s17uz2VsS6Skf1AU43Rz5MzfDmTdqDWsRPAU4U6yv1TbY9Y4GT bCO1EwWAbahhKlYz1og9Mq9/E9eCuXOkpRGzENzGA7TrG3J5r6pA/7ge1YoM6VjWYSs936 O3ukTMdoSWMQm4FbPBN/91ZO51V5R0U= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=seKv2zup; spf=pass (imf01.hostedemail.com: domain of edumazet@google.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=edumazet@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-51e24210395so13076a12.0 for ; Mon, 09 Oct 2023 02:30:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1696843829; x=1697448629; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=TLyudqSMOhmAh3CWo49NCC+vFjpCOk99m8pKFm0PjdI=; b=seKv2zupAGazVHYMpw6ENd3bpWDCEZWYsq+uztnM1gz1VVpJR38Iz/AAqWKyh4BTG9 V+x74eqY6G8dH4RG5xpWVXbfdjpVd3OHVvc3qYSFEq4Dxurp3uTgywSHusYEUOEJfVfF 2LXoguYjZ7ax7rKkKHVH1+b3ikqVRfS9wAuYiXqie0jDtJe9K2s7RZlsAJEqQCUOPw86 FImA4NvwVsEC5chqLi6tRzGQzZNw/GFQr4M2bEHsA+kMTmvweao2fBk4C6vRWbjcnYTC VeoyI0C90pcJfJFC4lauGnP7mRiOxT5D0VNVMCmB6+Tq8HWFS05MnlqAZzoiPEZDe6AQ IPbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696843829; x=1697448629; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TLyudqSMOhmAh3CWo49NCC+vFjpCOk99m8pKFm0PjdI=; b=pNIHdclXFzIyBkYHDc7vz3NYRPSxK2pwu7CtD7V0O7sW2jQTOu0zf3i1HnmKIbUWms 2UM0rKq22P1NA9x+kctMqPX8Qa+ZsjtcHuk7M7xgS6Oeoe7ouJ2hsUnuWWZ0/7sseJzD 3tRZiKnH1stS45KIHK0e+bdKqxCsoMJgMT0ipI9DB5kQR2fD+fotMVZ52lM5eQcMjf7Z MSg2PS8y4EVp0+c5OjVM5FudCPUCr6/rHPU5Bd+Mu1OCJ2uG6zk1J69mQdvcxHEcoQB9 KGzjBhGXACdGMM5B5aqDvHqHb4h1SLxiUSaWorR3PXtkpO38hMn5OFseJ7JjWLRvr2WH Ez2g== X-Gm-Message-State: AOJu0YzyUbjqB4Ulm7u9uVG5YPLJVtXls+aVIVkOU7e5UzQHJ2IshnaT 8IuMtE7uxHPuM/DvOPTbj9q6DmFFM56rAV3gWBqXMg== X-Google-Smtp-Source: AGHT+IH7RuJLlU9VtC9SLyybEZiZajTmMC0WMqzGd7Km+auMypxpw0+MwbkeqMcolnOdB0KiX2W1XHJoOY0T3sx9t0k= X-Received: by 2002:a50:8d5a:0:b0:538:2941:ad10 with SMTP id t26-20020a508d5a000000b005382941ad10mr358835edt.5.1696843829278; Mon, 09 Oct 2023 02:30:29 -0700 (PDT) MIME-Version: 1.0 References: <20231007050621.1706331-1-yajun.deng@linux.dev> <917708b5-cb86-f233-e878-9233c4e6c707@linux.dev> <9f4fb613-d63f-9b86-fe92-11bf4dfb7275@linux.dev> <4a747fda-2bb9-4231-66d6-31306184eec2@linux.dev> <814b5598-5284-9558-8f56-12a6f7a67187@linux.dev> <508b33f7-3dc0-4536-21f6-4a5e7ade2b5c@linux.dev> <296ca17d-cff0-2d19-f620-eedab004ddde@linux.dev> In-Reply-To: <296ca17d-cff0-2d19-f620-eedab004ddde@linux.dev> From: Eric Dumazet Date: Mon, 9 Oct 2023 11:30:15 +0200 Message-ID: Subject: Re: [PATCH net-next v7] net/core: Introduce netdev_core_stats_inc() To: Yajun Deng Cc: rostedt@goodmis.org, mhiramat@kernel.org, dennis@kernel.org, tj@kernel.org, cl@linux.com, mark.rutland@arm.com, davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Alexander Lobakin , linux-trace-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 352DA40014 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: z9boncswwktg8c1a5jr7rb4f73ymzg9i X-HE-Tag: 1696843830-194190 X-HE-Meta: U2FsdGVkX1/gK6pP3a+MEgrD3q926fFJXsmZnPVhuXBP1NGtbu4Q7laXmMipZ53f+jeifqExKCCNiA61+nl+5rVLRAxp31lLJg8/6chlbkj/1M60K7+iZhGXefN6iZvUZe0uMMtbgKkWS0+EH0e104uxxi8i1DL+MZidVXZ0vceWJDO9ZrK09ZDh4trrhszdVuN34r7Uctx+R3CYWEfwi2zxcLC7PO/FxPPT+GXfuJWh8ccf1goFo6rW4W31QdTFRhBMZMK98QARBOMmL2vzw6cKBVdScIFbJO5QMmmo6ecsUOCe9Mnx0htMNU1ywK5LYCOOXTOPTe+4jskRlNHoiKYixnLZCSWisfU8N7tRyOo4uToFFcjEq1Cz8oLf09GOxl2cPfIZ6jtEZVH9nqmrsnFC5BhTg8ROhLwwnMTBfTe1W5wQQSu5g5PyuBxFLHy8qk1/56iMYAl+JSZ0VW+KeYmAPya0+a1w/hpEchKf/CUqa3BlTunBTkc60eopaIDgJHhYFjdW1ZOmN3ehtiAt6D75aAhsEqjcJ5XS3rr4MzNZ0QAFOyvosEFhHRj8tdJ+LTpr08X0jdlzzT5bgLux0jHof3BUZCXDjbpD8iFsohHI2PPmMYWBJAGBocW6qFt63u33mhLNEUNEO3jxmZ+BOUQ7icLt2B6HywW4rH6yuP/+ZjEQhtyz27AO+40awEifGysVkugGsqivOZ9n6sTIWVnC8Y0BUViTWo+VJCbJaDIa8Ei4D9EmOlACATKVXUBMfyy1fIV74SGqjoQMS8ckz9bJooNuC0DMWcbFlOAEObmUulrE5NbUwfThv0DJTctVKL0X6X6f1+dsboXELRV5jCDnuYJ3uDSPehDcAWFPIxXaEzHhA4idS9DPHFYfR0aELzbA4Jf38TxGV71bBq6fA2Was+XGIiK/3QhaZgsrVVF9R/ABGlh3DY8xI8mSi13pKGn9aBo60y50HrORUtU QDnBm+U0 0hlTucZwykO+B4VZTD6wME+MaKhfoo9lgzXaiDR4fsoR0u8pl4MUy8h387djFtG8n9zgHShRYgt+q4Zbpx/pT9hRc3g26sdkDb55pQvD1BWHFeaqr/gVdzVST5Pw4Hq+g6sdgeFz49P2tYJvuBOTN2wxkf9oorHgOfEXZpcFtGfs40aicFNmS59GGcyqlB1iWcm67jHFCuLpd0A17uQEW7gT+nOYAAn02Gm92LcKF2F1FFuJwQkHjva8L06DiDqnTmafNIe/4epixoiqQwtvGxjqhjA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.002462, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Mon, Oct 9, 2023 at 10:36=E2=80=AFAM Yajun Deng w= rote: > > > On 2023/10/9 16:20, Eric Dumazet wrote: > > On Mon, Oct 9, 2023 at 10:14=E2=80=AFAM Yajun Deng wrote: > >> > >> On 2023/10/9 15:53, Eric Dumazet wrote: > >>> On Mon, Oct 9, 2023 at 5:07=E2=80=AFAM Yajun Deng wrote: > >>> > >>>> 'this_cpu_read + this_cpu_write' and 'pr_info + this_cpu_inc' will m= ake > >>>> the trace work well. > >>>> > >>>> They all have 'pop' instructions in them. This may be the key to mak= ing > >>>> the trace work well. > >>>> > >>>> Hi all, > >>>> > >>>> I need your help on percpu and ftrace. > >>>> > >>> I do not think you made sure netdev_core_stats_inc() was never inline= d. > >>> > >>> Adding more code in it is simply changing how the compiler decides to > >>> inline or not. > >> > >> Yes, you are right. It needs to add the 'noinline' prefix. The > >> disassembly code will have 'pop' > >> > >> instruction. > >> > > The function was fine, you do not need anything like push or pop. > > > > The only needed stuff was the call __fentry__. > > > > The fact that the function was inlined for some invocations was the > > issue, because the trace point > > is only planted in the out of line function. > > > But somehow the following code isn't inline? They didn't need to add the > 'noinline' prefix. > > + field =3D (unsigned long *)((void *)this_cpu_ptr(p) + off= set); > + WRITE_ONCE(*field, READ_ONCE(*field) + 1); > > Or > + (*(unsigned long *)((void *)this_cpu_ptr(p) + offset))++; > I think you are very confused. You only want to trace netdev_core_stats_inc() entry point, not arbitrary pieces of it.