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 E2078C3DA49 for ; Thu, 11 Jul 2024 17:29:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 582EE6B00AB; Thu, 11 Jul 2024 13:29:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 532B86B00AC; Thu, 11 Jul 2024 13:29:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3D3816B00AD; Thu, 11 Jul 2024 13:29:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 17D016B00AB for ; Thu, 11 Jul 2024 13:29:01 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id B133BA07DB for ; Thu, 11 Jul 2024 17:29:00 +0000 (UTC) X-FDA: 82328157240.08.C24E0DF Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf05.hostedemail.com (Postfix) with ESMTP id 2B1B6100014 for ; Thu, 11 Jul 2024 17:28:57 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="XyPt/Hhu"; spf=pass (imf05.hostedemail.com: domain of jlayton@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=jlayton@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720718894; 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=V3plEaVJHaS1tmVmdTyDIQwUSyzXo+lcNjPj3TMiMSY=; b=rPdBxaOQjQSRlmYootSl6ko7CXTMzE5h3/MnIIBqTRQgju8XbARvAyH4HoOPXUQ29KGqxi RVLCRCobiyNwsTF1DJuNBplBvi+QPEn5iUdyMF0qgIZTdwPTITbgVm0sT+jCSV2ymiHi+c pgfAG1g+mmv6pTn63PnlWxsNjMh9mXg= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="XyPt/Hhu"; spf=pass (imf05.hostedemail.com: domain of jlayton@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=jlayton@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720718894; a=rsa-sha256; cv=none; b=sG0ayhafqHNzcH3vUY+jcS5r+oTZaViu3N1P67tBW3t/D13kBByjutq7TLmlb5ghjHqT+v 08Av4WLWf8sA10DDmFZbJ7sylvxUW9IttCJk9s/nme5wsR9qFjzrHY/fFKBQ/eeSaoioh5 QUZKKrzItt8iEaUXuJv+l/62PgZYdKU= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id A4698CE1986; Thu, 11 Jul 2024 17:28:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08162C116B1; Thu, 11 Jul 2024 17:28:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1720718932; bh=ec3cDaXtRVujypARvqbg7o31Xt25d2K5x/3vnI52u/I=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=XyPt/HhuWXbLLDT9NqSf10X0ZEtEpQuV8aS19+pEMKjfeoWv+T1dgyJfFQs5gJAzP HH2Sgdz2MW1rnBUkX/3Sn07v4J9xTG6Q4p4wkyYiZ96QuRt9CgiaHbV6FFgSD8W/0q e0xB9oQpd0qUNKeRzWqBb7hnhTrUA9g9BagSD8wI4todQ6JLlUh3WSpvlRVRhL+TCq 5gmEp1469tGrCq1+fU96neMmHW/WCB2NeWOgvEcWh+XNSKSXq7bq+OKHSoWT/L3jJ6 ErzpnHhxgxWHFk/uL1bqEz9MuHqv9fAZrB+6o6y+XQSyUYStlyW/d2nfEqeSxpJAAY A3TgdaKPcNuFw== Message-ID: <52659b4f2bf3334de824f480fac25c6e028814d2.camel@kernel.org> Subject: Re: [PATCH v5 2/9] fs: tracepoints around multigrain timestamp events From: Jeff Layton To: "Darrick J. Wong" Cc: Alexander Viro , Christian Brauner , Jan Kara , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Chandan Babu R , Theodore Ts'o , Andreas Dilger , Chris Mason , Josef Bacik , David Sterba , Hugh Dickins , Andrew Morton , Jonathan Corbet , Dave Chinner , Andi Kleen , Christoph Hellwig , Uros Bizjak , Kent Overstreet , Arnd Bergmann , Randy Dunlap , kernel-team@fb.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-mm@kvack.org, linux-nfs@vger.kernel.org, linux-doc@vger.kernel.org Date: Thu, 11 Jul 2024 13:28:48 -0400 In-Reply-To: <20240711164950.GO612460@frogsfrogsfrogs> References: <20240711-mgtime-v5-0-37bb5b465feb@kernel.org> <20240711-mgtime-v5-2-37bb5b465feb@kernel.org> <20240711164950.GO612460@frogsfrogsfrogs> Autocrypt: addr=jlayton@kernel.org; prefer-encrypt=mutual; keydata=mQINBE6V0TwBEADXhJg7s8wFDwBMEvn0qyhAnzFLTOCHooMZyx7XO7dAiIhDSi7G1NPxwn8jdFUQMCR/GlpozMFlSFiZXiObE7sef9rTtM68ukUyZM4pJ9l0KjQNgDJ6Fr342Htkjxu/kFV1WvegyjnSsFt7EGoDjdKqr1TS9syJYFjagYtvWk/UfHlW09X+jOh4vYtfX7iYSx/NfqV3W1D7EDi0PqVT2h6v8i8YqsATFPwO4nuiTmL6I40ZofxVd+9wdRI4Db8yUNA4ZSP2nqLcLtFjClYRBoJvRWvsv4lm0OX6MYPtv76hka8lW4mnRmZqqx3UtfHX/hF/zH24Gj7A6sYKYLCU3YrI2Ogiu7/ksKcl7goQjpvtVYrOOI5VGLHge0awt7bhMCTM9KAfPc+xL/ZxAMVWd3NCk5SamL2cE99UWgtvNOIYU8m6EjTLhsj8snVluJH0/RcxEeFbnSaswVChNSGa7mXJrTR22lRL6ZPjdMgS2Km90haWPRc8Wolcz07Y2se0xpGVLEQcDEsvv5IMmeMe1/qLZ6NaVkNuL3WOXvxaVT9USW1+/SGipO2IpKJjeDZfehlB/kpfF24+RrK+seQfCBYyUE8QJpvTZyfUHNYldXlrjO6n5MdOempLqWpfOmcGkwnyNRBR46g/jf8KnPRwXs509yAqDB6sELZH+yWr9LQZEwARAQABtCBKZWZmIExheXRvbiA8amxheXRvbkBrZXJuZWwub3JnPokCOAQTAQIAIgUCWe8u6AIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQAA5oQRlWghUuCg/+Lb/xGxZD2Q1oJVAE37uW308UpVSD2tAMJUvFTdDbfe3zKlPDTuVsyNsALBGclPLagJ5ZTP+Vp2irAN9uwBuacBOTtmOdz4ZN2tdvNgozzuxp4CHBDVzAslUi2idy+xpsp47DWPxYFIRP3M8QG/aNW052L aPc0cedY xp8+9eiVUNpxF4SiU4i9JDfX/sn9XcfoVZIxMpCRE750zvJvcCUz9HojsrMQ1NFc7MFT1z3MOW2/RlzPcog7xvR5ENPH19ojRDCHqumUHRry+RF0lH00clzX/W8OrQJZtoBPXv9ahka/Vp7kEulcBJr1cH5Wz/WprhsIM7U9pse1f1gYy9YbXtWctUz8uvDR7shsQxAhX3qO7DilMtuGo1v97I/Kx4gXQ52syh/w6EBny71CZrOgD6kJwPVVAaM1LRC28muq91WCFhs/nzHozpbzcheyGtMUI2Ao4K6mnY+3zIuXPygZMFr9KXE6fF7HzKxKuZMJOaEZCiDOq0anx6FmOzs5E6Jqdpo/mtI8beK+BE7Va6ni7YrQlnT0i3vaTVMTiCThbqsB20VrbMjlhpf8lfK1XVNbRq/R7GZ9zHESlsa35ha60yd/j3pu5hT2xyy8krV8vGhHvnJ1XRMJBAB/UYb6FyC7S+mQZIQXVeAA+smfTT0tDrisj1U5x6ZB9b3nBg65ke5Ag0ETpXRPAEQAJkVmzCmF+IEenf9a2nZRXMluJohnfl2wCMmw5qNzyk0f+mYuTwTCpw7BE2H0yXk4ZfAuA+xdj14K0A1Dj52j/fKRuDqoNAhQe0b6ipo85Sz98G+XnmQOMeFVp5G1Z7r/QP/nus3mXvtFsu9lLSjMA0cam2NLDt7vx3l9kUYlQBhyIE7/DkKg+3fdqRg7qJoMHNcODtQY+n3hMyaVpplJ/l0DdQDbRSZi5AzDM3DWZEShhuP6/E2LN4O3xWnZukEiz688d1ppl7vBZO9wBql6Ft9Og74diZrTN6lXGGjEWRvO55h6ijMsLCLNDRAVehPhZvSlPldtUuvhZLAjdWpwmzbRIwgoQcO51aWeKthpcpj8feDdKdlVjvJO9fgFD5kqZQiErRVPpB7VzA/pYV5Mdy7GMbPjmO0IpoL0tVZ8JvUzUZXB3ErS/dJflvboAAQeLpLCk QjqZiQ/D CmgJCrBJst9Xc7YsKKS379Tc3GU33HNSpaOxs2NwfzoesyjKU+P35czvXWTtj7KVVSj3SgzzFk+gLx8y2Nvt9iESdZ1Ustv8tipDsGcvIZ43MQwqU9YbLg8k4V9ch+Mo8SE+C0jyZYDCE2ZGf3OztvtSYMsTnF6/luzVyej1AFVYjKHORzNoTwdHUeC+9/07GO0bMYTPXYvJ/vxBFm3oniXyhgb5FtABEBAAGJAh8EGAECAAkFAk6V0TwCGwwACgkQAA5oQRlWghXhZRAAyycZ2DDyXh2bMYvI8uHgCbeXfL3QCvcw2XoZTH2l2umPiTzrCsDJhgwZfG9BDyOHaYhPasd5qgrUBtjjUiNKjVM+Cx1DnieR0dZWafnqGv682avPblfi70XXr2juRE/fSZoZkyZhm+nsLuIcXTnzY4D572JGrpRMTpNpGmitBdh1l/9O7Fb64uLOtA5Qj5jcHHOjL0DZpjmFWYKlSAHmURHrE8M0qRryQXvlhoQxlJR4nvQrjOPMsqWD5F9mcRyowOzr8amasLv43w92rD2nHoBK6rbFE/qC7AAjABEsZq8+TQmueN0maIXUQu7TBzejsEbV0i29z+kkrjU2NmK5pcxgAtehVxpZJ14LqmN6E0suTtzjNT1eMoqOPrMSx+6vOCIuvJ/MVYnQgHhjtPPnU86mebTY5Loy9YfJAC2EVpxtcCbx2KiwErTndEyWL+GL53LuScUD7tW8vYbGIp4RlnUgPLbqpgssq2gwYO9m75FGuKuB2+2bCGajqalid5nzeq9v7cYLLRgArJfOIBWZrHy2m0C+pFu9DSuV6SNr2dvMQUv1V58h0FaSOxHVQnJdnoHn13g/CKKvyg2EMrMt/EfcXgvDwQbnG9we4xJiWOIOcsvrWcB6C6lWBDA+In7w7SXnnokkZWuOsJdJQdmwlWC5L5ln9xgfr/4mOY38B0U= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.50.4 (3.50.4-1.fc39) MIME-Version: 1.0 X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 2B1B6100014 X-Stat-Signature: ft3ceky5rgeow1wgjwqxrch4em3mqzrq X-Rspam-User: X-HE-Tag: 1720718937-891638 X-HE-Meta: U2FsdGVkX18Oy+XYTzzAFvPCqA8MkRoRopr3G1M4Sd1igkZssAm40X1CgeVam+A7YGQTFKvw5yITGDHf6L+DxC29T+T3or8YklX9WC/6tGMi1jacnjOVpbDtv4tXzVsZ5Qf9KYVu1xiBngL2icBRpSW1VNpfYTUsKnIq8TF1NrqnTav2BbxBnHaGx7ban9cRCwKI5m6/2/aTqXPdyerQtIek9a5QpQO2YcyObCehI9tSlkKgIIPbtYWXBNi+CGzc9qnj7U3hIzzfe2n3FuwzPVDICoKSk9NoMyFDRtRQoY/5GRJPyzhhDgCD+yk9+SVWEy2dexR/jbwa++JCfEerqA0viRPlpBJeoneeuOvRW7sv2ROGNdsxehc1cqQKmbe1Jjn+D2QyLOwZQUL+kEkhgxLF5xi+gP3jJPFheQ86blUKT8rz/53S7Teg8UNcL0sgpKXrNKEUQIm/Bt8k4xbtuUM8xDnwWK/6pOaFDmUSRbnY9cGsW2NTAa0twbilOCllfzpYj5O8DzNt9vb7SehsxeMEzAo6NLB2klahg4hXl6VodtWc2c7Kmbyq7aObHMNbrwZI7WBgAO/cZd2WPauZYQWzTvCpa226S2std4HVHZIaBvnZ01uyQ4wjGh/+dWRFArVaQguWEFOYC+r7zYoYsEgSpLvi8LQeqArgpp/BHTJsICTbWoIpqnRHSuVHm9uUh6Gzt2Xbd8BASafmtDxtgArsDOGkXr2RpsZnMgfdILUUOYmP7pF5GSZJJkISYwJ2hSf+vYkDnrBev9txVqpHpxVt8LTuYtEJ76BIeRQ/ZTP4pbTwvUnGU9IzKgIirZh0Kx7LEXdplJYaj/P63yb9KPRfgc/I410wVAMTZFRidDZGUv20e4BJoczz03iKtALGDLLW9G63yxdxyXBjXLHmH1veHeW5+azqXPe7LFNvrGLwtzabXOiLvR5cgyhnK34Z6TQ8HTExaj/JFf6tTA0 m4inHpNc yBtXOjr0RGWqopyxEphyDt1g2fnvutp599M5lVFbnI8NjnG13MnrjBEdayNprDeKYp91FzUZj10fa1d+u+TLTgU+FSMWC+HU3oyclS0d9TERHk1F44zIfrUP0kYhjOWsoieh3kTSZ2Fh1R6Cf7vgBoDq4WO71RUAGTWzeNYDxd9P8cAa+I9gjn91/AGwo4rPSqV7vKMVrxYGK/Jd3fBo4EJl3Zk+lwEXpWp2tW17kR/w7ydO2fFxqm5U3kQ== 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, 2024-07-11 at 09:49 -0700, Darrick J. Wong wrote: > On Thu, Jul 11, 2024 at 07:08:06AM -0400, Jeff Layton wrote: > > Add some tracepoints around various multigrain timestamp events. > >=20 > > Signed-off-by: Jeff Layton > > --- > > =C2=A0fs/inode.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 |=C2=A0=C2=A0 5 ++ > > =C2=A0fs/stat.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 |=C2=A0=C2=A0 3 ++ > > =C2=A0include/trace/events/timestamp.h | 109 > > +++++++++++++++++++++++++++++++++++++++ > > =C2=A03 files changed, 117 insertions(+) > >=20 > > diff --git a/fs/inode.c b/fs/inode.c > > index 2b5889ff7b36..81b45e0a95a6 100644 > > --- a/fs/inode.c > > +++ b/fs/inode.c > > @@ -22,6 +22,9 @@ > > =C2=A0#include > > =C2=A0#include > > =C2=A0#include > > +#define CREATE_TRACE_POINTS > > +#include > > + > > =C2=A0#include "internal.h" > > =C2=A0 > > =C2=A0/* > > @@ -2571,6 +2574,7 @@ struct timespec64 > > inode_set_ctime_to_ts(struct inode *inode, struct timespec64 t > > =C2=A0{ > > =C2=A0 inode->i_ctime_sec =3D ts.tv_sec; > > =C2=A0 inode->i_ctime_nsec =3D ts.tv_nsec & ~I_CTIME_QUERIED; > > + trace_inode_set_ctime_to_ts(inode, &ts); > > =C2=A0 return ts; > > =C2=A0} > > =C2=A0EXPORT_SYMBOL(inode_set_ctime_to_ts); > > @@ -2670,6 +2674,7 @@ struct timespec64 > > inode_set_ctime_current(struct inode *inode) > > =C2=A0 if (try_cmpxchg(&inode->i_ctime_nsec, &cur, > > now_ts.tv_nsec)) { > > =C2=A0 /* If swap occurred, then we're (mostly) done */ > > =C2=A0 inode->i_ctime_sec =3D now_ts.tv_sec; > > + trace_ctime_ns_xchg(inode, cns, now_ts.tv_nsec, > > cur); > > =C2=A0 } else { > > =C2=A0 /* > > =C2=A0 * Was the change due to someone marking the old > > ctime QUERIED? > > diff --git a/fs/stat.c b/fs/stat.c > > index df7fdd3afed9..552dfd67688b 100644 > > --- a/fs/stat.c > > +++ b/fs/stat.c > > @@ -23,6 +23,8 @@ > > =C2=A0#include > > =C2=A0#include > > =C2=A0 > > +#include > > + > > =C2=A0#include "internal.h" > > =C2=A0#include "mount.h" > > =C2=A0 > > @@ -49,6 +51,7 @@ void fill_mg_cmtime(struct kstat *stat, u32 > > request_mask, struct inode *inode) > > =C2=A0 stat->mtime =3D inode_get_mtime(inode); > > =C2=A0 stat->ctime.tv_sec =3D inode->i_ctime_sec; > > =C2=A0 stat->ctime.tv_nsec =3D > > ((u32)atomic_fetch_or(I_CTIME_QUERIED, pcn)) & ~I_CTIME_QUERIED; > > + trace_fill_mg_cmtime(inode, &stat->ctime, &stat->mtime); > > =C2=A0} > > =C2=A0EXPORT_SYMBOL(fill_mg_cmtime); > > =C2=A0 > > diff --git a/include/trace/events/timestamp.h > > b/include/trace/events/timestamp.h > > new file mode 100644 > > index 000000000000..3a603190b46c > > --- /dev/null > > +++ b/include/trace/events/timestamp.h > > @@ -0,0 +1,109 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > +#undef TRACE_SYSTEM > > +#define TRACE_SYSTEM timestamp > > + > > +#if !defined(_TRACE_TIMESTAMP_H) || > > defined(TRACE_HEADER_MULTI_READ) > > +#define _TRACE_TIMESTAMP_H > > + > > +#include > > +#include > > + > > +TRACE_EVENT(inode_set_ctime_to_ts, > > + TP_PROTO(struct inode *inode, > > + struct timespec64 *ctime), > > + > > + TP_ARGS(inode, ctime), > > + > > + TP_STRUCT__entry( > > + __field(dev_t, dev) > > + __field(ino_t, ino) > > + __field(time64_t, ctime_s) > > + __field(u32, ctime_ns) > > + __field(u32, gen) > > + ), > > + > > + TP_fast_assign( > > + __entry->dev =3D inode->i_sb->s_dev; >=20 > Odd indenting of the second columns between the struct definition > above > and the assignment code here. >=20 > > + __entry->ino =3D inode->i_ino; > > + __entry->gen =3D inode->i_generation; > > + __entry->ctime_s =3D ctime->tv_sec; > > + __entry->ctime_ns =3D ctime->tv_nsec; > > + ), > > + > > + TP_printk("ino=3D%d:%d:%ld:%u ctime=3D%lld.%u", > > + MAJOR(__entry->dev), MINOR(__entry->dev), __entry- > > >ino, __entry->gen, > > + __entry->ctime_s, __entry->ctime_ns > > + ) > > +); > > + > > +TRACE_EVENT(ctime_ns_xchg, > > + TP_PROTO(struct inode *inode, > > + u32 old, > > + u32 new, > > + u32 cur), > > + > > + TP_ARGS(inode, old, new, cur), > > + > > + TP_STRUCT__entry( > > + __field(dev_t, dev) > > + __field(ino_t, ino) > > + __field(u32, gen) > > + __field(u32, old) > > + __field(u32, new) > > + __field(u32, cur) > > + ), > > + > > + TP_fast_assign( > > + __entry->dev =3D inode->i_sb->s_dev; > > + __entry->ino =3D inode->i_ino; > > + __entry->gen =3D inode->i_generation; > > + __entry->old =3D old; > > + __entry->new =3D new; > > + __entry->cur =3D cur; > > + ), > > + > > + TP_printk("ino=3D%d:%d:%ld:%u old=3D%u:%c new=3D%u cur=3D%u:%c", > > + MAJOR(__entry->dev), MINOR(__entry->dev), __entry- > > >ino, __entry->gen, > > + __entry->old & ~I_CTIME_QUERIED, __entry->old & > > I_CTIME_QUERIED ? 'Q' : '-', > > + __entry->new, > > + __entry->cur & ~I_CTIME_QUERIED, __entry->cur & > > I_CTIME_QUERIED ? 'Q' : '-' >=20 > This /might/ be overkill for a single flag, but anything you put in > the > TP_printk seems to end up in the format file: >=20 > # cat > /sys/kernel/debug/tracing/events/xfs/xfbtree_create_root_buf/format > name: xfbtree_create_root_buf > ID: 1644 > format: > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field:unsigned short common_ty= pe;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 offset:0;=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 > size:2; signed:0; > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field:unsigned char common_fla= gs;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 offset:2;=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 > size:1; signed:0; > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field:unsigned char common_pre= empt_count;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 > offset:3;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 size:1; signed:0; > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field:int common_pid;=C2=A0=C2= =A0 offset:4;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 size:4; signed:1; >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field:unsigned long xfino;=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 offset:8;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 s= ize:8; > signed:0; > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field:xfs_daddr_t bno;=C2=A0 o= ffset:16;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 size:8; signed:1; > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field:int nblks;=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 offset:24;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 siz= e:4; signed:1; > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field:int hold; offset:28;=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 size:4; signed:1; > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field:int pincount;=C2=A0=C2= =A0=C2=A0=C2=A0 offset:32;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 size:4; signed:1; > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field:unsigned int lockval;=C2= =A0=C2=A0=C2=A0=C2=A0 offset:36;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 size:4; > signed:0; > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 field:unsigned int flags;=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 offset:40;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = size:4; > signed:0; >=20 > print fmt: "xfino 0x%lx daddr 0x%llx bbcount 0x%x hold %d pincount %d > lock %d flags %s", REC->xfino, (unsigned long long)REC->bno, REC- > >nblks, REC->hold, REC->pincount, REC->lockval, __print_flags(REC- > >flags, "|", { (1u << 0), "READ" }, { (1u << 1), "WRITE" }, { (1u << > 2), "READ_AHEAD" }, { (1u << 3), "NO_IOACCT" }, { (1u << 4), "ASYNC" > }, { (1u << 5), "DONE" }, { (1u << 6), "STALE" }, { (1u << 7), > "WRITE_FAIL" }, { (1u << 16), "INODES" }, { (1u << 17), "DQUOTS" }, { > (1u << 18), "LOG_RECOVERY" }, { (1u << 20), "PAGES" }, { (1u << 21), > "KMEM" }, { (1u << 22), "DELWRI_Q" }, { (1u << 28), "LIVESCAN" }, { > (1u << 29), "INCORE" }, { (1u << 30), "TRYLOCK" }, { (1u << 31), > "UNMAPPED" }) >=20 > I /think/ all that code gets compiled (interpreted?) as if it were C > code, but a more compact format might be: >=20 > #define CTIME_QUERIED_FLAGS \ > { I_CTIME_QUERIED, "queried" } >=20 > TP_printk("ino=3D%d:%d:%ld:%u old=3D%u:%s new=3D%u cur=3D%u:%c", > MAJOR(__entry->dev), MINOR(__entry->dev), __entry- > >ino, __entry->gen, > __entry->old & ~I_CTIME_QUERIED, > __print_flags(__entry->old & I_CTIME_QUERIED, "|", > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 CTIME_QUERIED_FLAGS), > ... >=20 > But, again, that could be overkill for a single flag.=C2=A0 Aside from my > minor bikeshedding, this all looks good, and I like that we can now > monitor what's going on wrt ctime. :) >=20 That seems reasonable. I hadn't looked at the unrolled format monstrosity, but making it more compact is good. I'll make that change and see how it looks. Thanks for the reviews so far! > > + ) > > +); > > + > > +TRACE_EVENT(fill_mg_cmtime, > > + TP_PROTO(struct inode *inode, > > + struct timespec64 *ctime, > > + struct timespec64 *mtime), > > + > > + TP_ARGS(inode, ctime, mtime), > > + > > + TP_STRUCT__entry( > > + __field(dev_t, dev) > > + __field(ino_t, ino) > > + __field(time64_t, ctime_s) > > + __field(time64_t, mtime_s) > > + __field(u32, ctime_ns) > > + __field(u32, mtime_ns) > > + __field(u32, gen) > > + ), > > + > > + TP_fast_assign( > > + __entry->dev =3D inode->i_sb->s_dev; > > + __entry->ino =3D inode->i_ino; > > + __entry->gen =3D inode->i_generation; > > + __entry->ctime_s =3D ctime->tv_sec; > > + __entry->mtime_s =3D mtime->tv_sec; > > + __entry->ctime_ns =3D ctime->tv_nsec; > > + __entry->mtime_ns =3D mtime->tv_nsec; > > + ), > > + > > + TP_printk("ino=3D%d:%d:%ld:%u ctime=3D%lld.%u mtime=3D%lld.%u", > > + MAJOR(__entry->dev), MINOR(__entry->dev), __entry- > > >ino, __entry->gen, > > + __entry->ctime_s, __entry->ctime_ns, > > + __entry->mtime_s, __entry->mtime_ns > > + ) > > +); > > +#endif /* _TRACE_TIMESTAMP_H */ > > + > > +/* This part must be outside protection */ > > +#include > >=20 > > --=20 > > 2.45.2 > >=20 > >=20 --=20 Jeff Layton