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 4DB71E95A95 for ; Mon, 9 Oct 2023 14:27:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 941D78D0077; Mon, 9 Oct 2023 10:27:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8F22D8D0031; Mon, 9 Oct 2023 10:27:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7E04C8D0077; Mon, 9 Oct 2023 10:27:22 -0400 (EDT) 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 6B3CD8D0031 for ; Mon, 9 Oct 2023 10:27:22 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 40716402D0 for ; Mon, 9 Oct 2023 14:27:22 +0000 (UTC) X-FDA: 81326150724.30.2FF4A2C Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf28.hostedemail.com (Postfix) with ESMTP id 7789EC0008 for ; Mon, 9 Oct 2023 14:27:20 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf28.hostedemail.com: domain of "SRS0=JNeK=FX=goodmis.org=rostedt@kernel.org" designates 145.40.68.75 as permitted sender) smtp.mailfrom="SRS0=JNeK=FX=goodmis.org=rostedt@kernel.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696861640; 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=5h7jhp/8wFnlswKTG+NksRpGPKQutV9sqb06rLS1LU4=; b=d/2TbOR9kET8bhcciizDFMZpCm69ls+6yZ+8hs4jDYi2Fohxx6AmyvnXCZZeZRA86UhTJU vWeAGAgnZDISmdw7nucJca68mHuoBZA1n3DUrCfo/1fscK+oAX/EoMmyPYL7BdsG6o1p+Q 3pobkO1v72o3OlW9d7HdB1yoX8jkKGI= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf28.hostedemail.com: domain of "SRS0=JNeK=FX=goodmis.org=rostedt@kernel.org" designates 145.40.68.75 as permitted sender) smtp.mailfrom="SRS0=JNeK=FX=goodmis.org=rostedt@kernel.org" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696861640; a=rsa-sha256; cv=none; b=5fhtK6QMxO95gA8ROJEEGg+l0xDPXzWb84aKWCvgUOyk2d7Jmc3LZCeakY/9ShkPbwDe14 8K/p/cDpoCdxi84PwxuQ2jkc79UZ+LCaJbjOHsE6MwrnS48Xw/FTxqUhI3O8Sca92LSRPN eCOQmdcglDMU8bbRigkDlruvfwTomds= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by ams.source.kernel.org (Postfix) with ESMTP id A425BB81243; Mon, 9 Oct 2023 14:27:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 66577C433C7; Mon, 9 Oct 2023 14:27:16 +0000 (UTC) Date: Mon, 9 Oct 2023 10:28:33 -0400 From: Steven Rostedt To: Yajun Deng Cc: Eric Dumazet , 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 Subject: Re: [PATCH net-next v7] net/core: Introduce netdev_core_stats_inc() Message-ID: <20231009102833.1b0d35e3@gandalf.local.home> In-Reply-To: <078f662d-a73f-766b-3a07-c82cd37026c5@linux.dev> References: <20231007050621.1706331-1-yajun.deng@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> <68eb65c5-1870-0776-0878-694a8b002a6d@linux.dev> <078f662d-a73f-766b-3a07-c82cd37026c5@linux.dev> 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: 7789EC0008 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: rpjp7qnoozafg54buz1sjhm189p1qh5t X-HE-Tag: 1696861640-710049 X-HE-Meta: U2FsdGVkX1+m2bygNGu52wlc2O93L/Dhni41uedM8RN8EhdsXQcvjGNuGOxEIR5ySPrsEK7utGxajs9SLmu70MhLu0fkRbLbLo84WeyQZni5l8+rrnKQ1krSX0M7R6C/l/K7l6VecGOHjmaGjq3GllOthgGJdmL20HpAYKdA+0rRH/D9xMoprbA2q5ZtBY5dX2DrljDvnt9z1Uff4dVImoxOyLEO2lL7hnA1Gzf0uZ7vMjd/Nb3kNJ5vV7VGOPMlwANWwUToCjyoJgk6fdUbp88Zf5zsDZKaA+eqkdkazEw4NlN94iz5PwrXWS8RybwQy9gp8Ugg0WAt6Um7bNTXo3U5uy8RQFV8eqva1i4jPJ0Nvg2SWHo0Ajg1oOMG/SB0XmhexaqNxFe39qvkvKifuXQFyipCmyGQSx6yNHmWX8MHEp2E9e0vHGZdXxPXUVbuo3zF7Qqz/goxqpcZLOqEKd/EIkze+7E5caxqqXZvPscLE3v65h3sSMux+FmHU/BTM9BYTZA1Tqaf7QbtmUdx2xkmNQh8ycsELLst+df2DA1pm2yroUB3ybpfxqjI7W5vH3WniUsbL7e7R0+m++mWSKGbEWMC/0gR5c7BkT73QWhD+DGCDiD1S8F4vlZMJREUp63SgwjInS+Wu5nER3LbnDjJzbyaYyG1XQ2wzVtd8NZGqhGlkta7k9C35BPAvymoQGAi0yg3tfYpuqECgzDRsQJxfZcRO/+4Rj2efi8FahjDQXHb1mZAcXMBbhhWWKNdV66+nabvZ3LQn7mojYY5FyiHGTrdI4LKOtWQ+ea3eOHSvGkPuHgsBQe0gOP03kY+fgfrkB7yNb5zOHFxILiD/DQ2JuVMD0ZUa1wkQKvka+Gogiyh3vI9P7+SrySZtCCMtrQCDXHFjWcM4Lv89QgGqhSisxGijW5HlyeeeFQbfwMVXnXXvU118kP+lf62dw6Dl6P5NfqOnWcG2VqV35u ZVkZZUCZ SCushes40c7ps+iEH16l39RonD/ghohIqi1Go6MJ7+RO58niLvDknWWHIWH3HppvXGyacy5ONavR0peGDB/exsPrt4ASsF4GFyVTh7KbI2bbI0PsNgZj+Q3MdsSk7ROX5AMhzLZJs1Lo4DmtCldLiM6M/toet2uhX4A8ysngwAhfppJftxaY3ugyeoESLMcMcEEaOFVwwi4ChLPBX69BH5cocpVbhWIHGwVXas3rulCBG00DxK1SPjFgnbEpYnSrytqWotO/w9013kw9EW9ABmjwdv3R4HmOwCSp1SVTHHmNd23UgsnLq0BHwoQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Mon, 9 Oct 2023 18:58:27 +0800 Yajun Deng wrote: > > C compiler decides to inline or not, depending on various factors. > > > > The most efficient (and small) code is generated by this_cpu_inc() > > version, allowing the compiler to inline it. > > > > If you copy/paste this_cpu_inc() twenty times, then the compiler > > would not inline the function anymore. Yes, if you want something to be visible by ftrace, it must not be inlined (as inlined functions are not function calls by definition). And as Eric stated, the compiler is perfectly allowed to inline something if it believes it will be more efficient. i.e. There may be code around the function call that could be more efficient if it wasn't change to parameters. If you want to make sure a function stays out of line, you must explicitly tell the compiler you want the function not to ever be inlined (hence the "noinline" attribute). > > > Got it. Thank you. Great. -- Steve