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 342A3CDD1D5 for ; Mon, 30 Sep 2024 19:43:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 95FE9280027; Mon, 30 Sep 2024 15:43:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 90F8E280025; Mon, 30 Sep 2024 15:43:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7D7CC280027; Mon, 30 Sep 2024 15:43:54 -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 5EFBD280025 for ; Mon, 30 Sep 2024 15:43:54 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id C3671C0460 for ; Mon, 30 Sep 2024 19:43:53 +0000 (UTC) X-FDA: 82622429946.23.954329C Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by imf14.hostedemail.com (Postfix) with ESMTP id D6B49100009 for ; Mon, 30 Sep 2024 19:43:51 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=KO+OVRqz; dkim=pass header.d=linutronix.de header.s=2020e header.b="w9vogcV/"; dmarc=pass (policy=none) header.from=linutronix.de; spf=pass (imf14.hostedemail.com: domain of tglx@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=tglx@linutronix.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727725339; a=rsa-sha256; cv=none; b=PHIK6ekBzpOhQqjO6Cy17Zk/v2IFgvB6le+cF1VsoeoTLmuwXElEDFG5FPuXsURGJR0yxX q4mlCAa9Fr6LE0m/0qeN6l8CUV/N2Vv7b+TjrcRSzd56690PJVpl0Mhl3iQOZeLRae918s F2J5k+NzswF+Ni8juGEbTyX6pwDcBa4= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=KO+OVRqz; dkim=pass header.d=linutronix.de header.s=2020e header.b="w9vogcV/"; dmarc=pass (policy=none) header.from=linutronix.de; spf=pass (imf14.hostedemail.com: domain of tglx@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=tglx@linutronix.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727725339; 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=GpO/Uf31chhDoKlO5eskAbUukIkZXG2KIl9wBiuvDPA=; b=hpT90974zlHOQO4oJJyzmUOCytSmKER//P1Zim3ZntAT/R3zxBg0vfL7OgpOnHHShZs0Z/ urQ8rm7e50qH+wbKkmyiji1EdQRuvLhVdOX7WqFEELlx5NbcCcJsoiNdtz+NvmQ8LR0YmH /kji+L1vTf/iftRnlNt1MzORjdAss1o= From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1727725429; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=GpO/Uf31chhDoKlO5eskAbUukIkZXG2KIl9wBiuvDPA=; b=KO+OVRqzVi6sUV/fyu63klu3oJiUuf9/VfwRXew8W1SVc54Wbo8HfflBVekilLpl8a/HGj S3maiancfOsZY9D78Aqsnk70D5yQHyImRjTj/A077kmgV28jWnuLibn+0hLTfPoo6nSEjA gu4ocMdykcgQiF+RvnAAxg2WB36cixVIHw5Zk6hXtfx6yk+4kSy3u0vxgPKMEwhKUUvwNi L4B8sKPVwSrZvQs6G94vKzPXjoMNY3FXgOHVbwi5SV3QUdilY4MAXTNoskokiCWwbHpuJs R5VLiGpP5y1J3/3e0dDh8M4RGrHVwnpLKpFJlSEURbH/w+18fDg4T/Rry8Dwsg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1727725429; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=GpO/Uf31chhDoKlO5eskAbUukIkZXG2KIl9wBiuvDPA=; b=w9vogcV/yej7LJh+X7wME7l3i6splvsGWVj1rfDXK4lp/s4jDlR8KWvMmvf/qb//0jKyET FFo7SK4M7cJpeZDA== To: Jeff Layton , John Stultz , Stephen Boyd , Alexander Viro , Christian Brauner , Jan Kara , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Jonathan Corbet , Chandan Babu R , "Darrick J. Wong" , Theodore Ts'o , Andreas Dilger , Chris Mason , Josef Bacik , David Sterba , Hugh Dickins , Andrew Morton , Chuck Lever , Vadim Fedorenko Cc: Randy Dunlap , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-nfs@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v8 01/11] timekeeping: move multigrain timestamp floor handling into timekeeper In-Reply-To: References: <20240914-mgtime-v8-0-5bd872330bed@kernel.org> <20240914-mgtime-v8-1-5bd872330bed@kernel.org> <87a5g79aag.ffs@tglx> Date: Mon, 30 Sep 2024 21:43:49 +0200 Message-ID: <874j5x0vwq.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain X-Rspamd-Queue-Id: D6B49100009 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: ucuaqo51qtjcejcqtikhc4beec1iprsj X-HE-Tag: 1727725431-156461 X-HE-Meta: U2FsdGVkX1+90TQ7PeDiTRreNC8XzeRZoB9hzPR/gYexS7GJUW2v09NBf3ukchJDt9Vh2uWb74IQQpUlN5xad/5jyvgGTMhzBEJkuI5w0NgxEWoLXaGpY3X6fXab3WCKx0Lb8bpHyBrjHChhvHh80p7SgRFx5ZRsL+on29geyxC/BfFQLZVtcTK//N3A69QYACxcm3lB0VC4KtKXqh6LDMpoqF8ybfj4ULQ0GUUnKO5QaFVydx7WQJE6ITcxgSICwnIwsazrvP8VF11lVcyI8G1rqkGCnkN2pZVs0OZqjG5yKP6UtF7NM2CWmNDf1JiHhCjKuAWRv3f1MHmO4PvZkczyem+1C2AEKjZrPRuozpVWW/7fI/Q/Y+uWuf2LB3PlSPj9MVP4vzwG8+Cok8byjKgv1ahG65E7KnpChQ4VUzUH56GkTcWsfgqm17NoGAW8kj7YoXJd00JLtEPCLQ/9m9ReQmMweCGgg9kkwzcRXXmUEGxaY47fF/UZ6/80Dj4tXUsLnqaKRQFE5KKfcBQjG4zr937AFqbAKRsFtvRnRFqLNFr5qSUSdom5JUaNvHRooKzUW7pPKL7VeBkVYT44BP1M03Lc+qCN7XwUUrMUk+7/bcJW6l/lWNkd7//wmZobdDzyc9N0bHK9qtWt9m+J0xaX1d01WwGzNFsPIazhKqlzEgTX8elV0CEdIU8WLQlOPZAjh+kp8bqxjb8NdfIihT1zblEkoPl+d1iT4rex/q0Hj6D8GDw+pBf6QspolLtygQSaeYqLwsVU8ZaDSK+fVQXFRU4c70NPicC9b75hJEaGDa6ec3/hAAzzEDKSF93bLXKMZqXqQib+XTkGJnRYEQIAtfMn08wQIyMsJv/D/B9lD8INxqKRdDkUBh/FMOO7/Tb/jTnDnMrY3rgAsFB7PqkhVRyX6yqsqKkMfVzyWG26c7Pubj7JxFzJuz2fc/hfZ4j+8YTU0Ek+QQW7NOT BYOQSzph Z6i+Ta9u46QF2/mDCmhnSF0F6js7Hr4v+A2n00okMKvC4mUjl8jroRX3FgwXncp8fRC9qZYkBOC2hp9AQkZe/bM1HadDJPsBXc+2It5UiK09vo2bEcpBTMhYBvZ7md5oiH/5v8lm81iZGLhVIsfxF8V9LzU3PvV9dx1Es 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, Sep 19 2024 at 18:50, Jeff Layton wrote: > The fix for this is to establish a floor value for the coarse-grained > clock. When stamping a file with a fine-grained timestamp, we update > the floor value with the current monotonic time (using cmpxchg). Then > later, when a coarse-grained timestamp is requested, check whether the > floor is later than the current coarse-grained time. If it is, then the > kernel will return the floor value (converted to realtime) instead of > the current coarse-grained clock. That allows us to maintain the > ordering guarantees. > > My original implementation of this tracked the floor value in > fs/inode.c (also using cmpxchg), but that caused a performance > regression, mostly due to multiple calls into the timekeeper functions > with seqcount loops. By adding the floor to the timekeeper we can get > that back down to 1 seqcount loop. > > Let me know if you have more questions about this, or suggestions about > how to do this better. The timekeeping code is not my area of expertise > (obviously) so I'm open to doing this a better way if there is one. The comments I made about races and the clock_settime() inconsistency vs. the change log aside, I don't see room for improvement there. What worries me is the atomic_cmpxchg() under contention on large machines, but as it is not a cmpxchg() loop it might be not completely horrible. Thanks, tglx