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 CA9D7C41513 for ; Wed, 18 Oct 2023 21:31:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DBB28D016E; Wed, 18 Oct 2023 17:31:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 464F88D0016; Wed, 18 Oct 2023 17:31:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2DEE28D016E; Wed, 18 Oct 2023 17:31:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 15F8D8D0016 for ; Wed, 18 Oct 2023 17:31:58 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id DE2BFB5F97 for ; Wed, 18 Oct 2023 21:31:57 +0000 (UTC) X-FDA: 81359879874.14.5182B49 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) by imf23.hostedemail.com (Postfix) with ESMTP id E0AD4140003 for ; Wed, 18 Oct 2023 21:31:55 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=DU10xu3S; spf=pass (imf23.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.53 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697664716; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ECKpgvAUzJR9x6tmoRvOJm7k5hgaq6eXpehPithmdco=; b=WpioqAOTyVyRQGEjdP2XgZf3ntM9UYkVr7FSzCV+g0TBPclXS3J0oRJQV/xZLjEegjbO4D bvzg6JDE0LOQjjbM0fHWj/FqRWmwq8LEvURmYB1doNXEJ93ctsTTXq9whNhXfQaWTbGP5H mZhMV2YFycIlO79kC7CGtQJLo9Ynpko= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697664716; a=rsa-sha256; cv=none; b=Mir/i2E/VUVUOvOyJngN30wcok9kM+GsZZlyxuha2pJ+iQzjHQP2dFqqoULTxJ3UljM/0B 1cPcqW0b0tnNPSgi0T2c8MuZaqZXnJmvdmEs42xbVW6HZsdzGB0MIMoZUD/d6X599PqXaH nvPUGnTHpidjKOMZTCBkuZ3AgMZmdH0= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=DU10xu3S; spf=pass (imf23.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.53 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-53dfc28a2afso12373132a12.1 for ; Wed, 18 Oct 2023 14:31:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1697664714; x=1698269514; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ECKpgvAUzJR9x6tmoRvOJm7k5hgaq6eXpehPithmdco=; b=DU10xu3Sy/UtKNAL8lubMjarSLacYbk+m/2xfs4q12SJkrmRqeiL0ij6mK2CaFAKFD bU8VtKT+BCJoxTNHIfRts9eru0GCFGZNK7MfH293zH1+vaAdjPTXEiYR8CIIz5Y6zk54 4wIHMW/j1h3nXzMqr1thhHZfqD2Usb/clGgtU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697664714; x=1698269514; h=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=ECKpgvAUzJR9x6tmoRvOJm7k5hgaq6eXpehPithmdco=; b=rf89faiK4q8W04eZxsBS8a+CbgxI+dixrhiukHI9Brv3BXdgbEWEUMPRJB5Swbibhf XE3ikPpKybVQPBlL6cg9MM8nSrStoJIJ6P/N23Fb1QfBnofhQchDWgFbowXdvBKuULRH nCD2U88w5Ie6HGIRrruoYtZhYrvm2ExaDq4zyXhhErOr1zhBz23mjkpjTzgNvuHv9m0/ Qk/4le6VytDcjLsPTPbZnfeVa8kba3jn0GcmYZzlq2hU+eG2wveP1yU7RgmAujFIP1vE iDPcYkS61oD58q5xVdIkEK2FcXvt6WZvD/JhAHlJiGcoNJIKXpmim9bFwqzuj7cx9Xud og4A== X-Gm-Message-State: AOJu0YwIEKRh7bFdZA2+pgMQwryNCNKGskr/L4GYLjkIsdc6/KQRQOPI cSxuJC+VzC3sSnKP4qbGIj84PaBcZ4HUXN/xQZX8cNc3 X-Google-Smtp-Source: AGHT+IEWrKVlUZUdMuLk632/QwRJERC30Z/zpITDXzxVmOVfcyS55L7sT/iWxecn5aEx07wh2WyYqQ== X-Received: by 2002:a50:d51d:0:b0:53e:3d9f:3c74 with SMTP id u29-20020a50d51d000000b0053e3d9f3c74mr146013edi.14.1697664714379; Wed, 18 Oct 2023 14:31:54 -0700 (PDT) Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com. [209.85.218.44]) by smtp.gmail.com with ESMTPSA id cx11-20020a05640222ab00b0053da777f7d1sm3332786edb.10.2023.10.18.14.31.53 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 18 Oct 2023 14:31:53 -0700 (PDT) Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-9ba1eb73c27so1204879166b.3 for ; Wed, 18 Oct 2023 14:31:53 -0700 (PDT) X-Received: by 2002:a17:907:c0d:b0:9be:7b67:1674 with SMTP id ga13-20020a1709070c0d00b009be7b671674mr409722ejc.3.1697664692747; Wed, 18 Oct 2023 14:31:32 -0700 (PDT) MIME-Version: 1.0 References: <20231018-mgtime-v1-0-4a7a97b1f482@kernel.org> <20231018-mgtime-v1-2-4a7a97b1f482@kernel.org> In-Reply-To: From: Linus Torvalds Date: Wed, 18 Oct 2023 14:31:15 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH RFC 2/9] timekeeping: new interfaces for multigrain timestamp handing To: Jeff Layton Cc: Alexander Viro , Christian Brauner , John Stultz , Thomas Gleixner , Stephen Boyd , Chandan Babu R , "Darrick J. Wong" , Dave Chinner , "Theodore Ts'o" , Andreas Dilger , Chris Mason , Josef Bacik , David Sterba , Hugh Dickins , Andrew Morton , Amir Goldstein , Jan Kara , David Howells , linux-fsdevel@vger.kernel.org, linux-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 Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: xaem8ttfn1f7z393pcsbb96kj59ndr8i X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: E0AD4140003 X-Rspam-User: X-HE-Tag: 1697664715-252768 X-HE-Meta: U2FsdGVkX1+zbBe1wHbxMsrGB+iBpe/WA6ft/Wep+PmBQsU8J+a+SprcmiLVK7/MmMb97lVl4vWV1Rv7j5CTnFSDqoYzyRg1tAO/uvmR5dGuEBeepuGA4vlUUKV5mIGPncCwoT2q9sFpDYgS9VW7hvXgIGWVV/feEZ77rHsKYAe9Z/LLt6qJeY5TfJOdPmJ6anvCuM8dRyN3+gSdTS/n3Y5yRDiHbBXzdH/G95ExXw7y4HoxgtZ3mbF6BAFyOTJtUIeSLI7w3ARW38GkLQDblWIWTkvjfQKOQjRquL63m+KPqLfR3MeA+gTwTS4pN9KDrI7MiCwtJFDoLZat0OY8ODXlGglmURUXPJlTv0sZIij9DnXVUtLy0j9szjl2qsLLRrZfbV8FPfmBSxEA72948mxVYIwqjyGJurLDr9Dl4siPcVgbcz6x3bgPTB7vUMhTLOn7Byz2IGdqwREXSw6Ri/ShJ27h3UfGw8Z/Kg8UhPIBUIN0DMmG2OeBcK7CTrklxgDI90fvO8JqQGlpCIvpuMDdXNyRQmvtOzkreDRYaYy1vyGAXmDjzmEPWCNyZDEZMl0ZmOBe6nnY5TvynlcVRe2Bz4FACtQLzJePlU/HM5p5vVwnSr2hV9bA/XW7k6WTLQHpO38p96dWVKS2kgortJ4/O5jmgmzTkiBfDyPbTRmH/ufetyWW1lLGv534KOymfZgb/QSim++5z6ydW5XILGxuYHHearC11SlxTmqPxzLQ44fYQBjHmfVDY78SLVVGxGajg3PBS3LMHbgG0GCsqsonO6OYbPi6nKX8ACSFnZ4LVOfBvAxKAs9aAIFZQIMhtLBQlbyGXG98B+eFLGe4UPU9BCrQQJohrFeUvmQ5lI2wLegri2MjJRopxtHr2VFhzzEEHheYxOvuBFLcDwvq25n3eaqb18Ll7GN08k/9bdGuzHMEmt5nQBuj0+yzCQM9fn8+Ea5CD6hWVFBSe5n uZ5x39ZZ asLw6mVdydHYinSffzwtvZ5eyyA2O8UOH7s8qOCyBVRQrU3D/iWRDy3AT1EP9RAXvzDRHWgSEGtB4xw8wkYud0Rvdvq+lJhDq07fzV+5Ll3e3qEN+oCjbjUFW779aRSMf7fOPq/4WqChyaTDFsTtkqMNtCGt1RvTtk4gi/dlyuUJ7MqY+6quzmLI+IkCoGpK9OEh3la3xx9avo9i88Kn4GmeZjOYu2xsw+vKPy1gZfjvk3LFL1e3/xwM/du8sn7but63rrt4rfB5ehb93sgPiuGhBrSnKG7pvuZt4PVEC7p9ZW3L/MFP2RZ/mfxR/f0s77KlPENzUUaG35R0IlnQL9/m4Abzzz6zH0COyiEzIRmGeM3OCv6UAg+IeNfKnnnhCLWw40y62yqWWd1fcOyEF+owVzvEX0LsyMd1CIeNc9lPmrK7DJPbKgg1MWdUj0GwgOCZMhphvizurJRDEJQLJIxKU4HXtsX3eqG5iWctUOqQEOhc0C3cVd76+oOnkOrBzbK8MfL8NkDrzMlwy9Qvv9l0hQiE4QedaVgB5KLE3eAcRCLPCTB5fXaSrGQ== 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: On Wed, 18 Oct 2023 at 13:47, Jeff Layton wrote: > > > old_ctime_nsec &= ~I_CTIME_QUERIED; > > if (ts64.tv_nsec > old_ctime_nsec + inode->i_sb->s_time_gran) > > return ts64; > > > > Does that really do what you expect here? current_time will return a > value that has already been through timestamp_truncate. Yeah, you're right. I think you can actually remove the s_time_gran addition. Both the old_ctime_nsec and the current ts64,tv_nsec are already rounded, so just doing if (ts64.tv_nsec > old_ctime_nsec) return ts64; would already guarantee that it's different enough. > current_mgtime is calling ktime_get_real_ts64, which is an existing > interface that does not take the global spinlock and won't advance the > global offset. That call should be quite cheap. Ahh, I did indeed mis-read that as the new one with the lock. I did react to the fact that is_mgtime(inode) itself is horribly expensive if it's not cached (following three quite possibly cold pointers), which was part of that whole "look at I_CTIME_QUERIED instead". I see the pointer chasing as a huge VFS timesink in all my profiles, although usually it's the disgusting security pointer (because selinux creates separate security nodes for each inode, even when the contents are often identical). So I'm a bit sensitive to "follow several pointers from 'struct inode'" patterns from looking at too many instruction profiles. Linus